ajout de auth guard

thierry
Tmadkaud 7 years ago
parent 759a89dce5
commit a72b86db52

@ -29,6 +29,8 @@ import { EditProfilComponent } from './components/profil/edit-profil/edit-profil
import { DebiterCarteComponent } from './components/opCommercial/debiter-carte/debiter-carte.component';
import { CarteEnvoyerComponent } from './components/carteParrainage/carte-envoyer/carte-envoyer.component';
import { AuthGuard } from './core/auth.guard';
import { AuthService } from './services/auth/auth.service';
@NgModule({
@ -64,7 +66,7 @@ import { CarteEnvoyerComponent } from './components/carteParrainage/carte-envoye
// apiKey: 'google_maps_api_key'
// })
],
providers: [],
providers: [AuthGuard, AuthService],
bootstrap: [AppComponent],
schemas: [NO_ERRORS_SCHEMA]
})

@ -10,6 +10,7 @@ import { ScannerCarteComponent } from './components/opCommercial/scanner-carte/s
import { EditProfilComponent } from './components/profil/edit-profil/edit-profil.component'
import { DebiterCarteComponent } from './components/opCommercial/debiter-carte/debiter-carte.component';
import { CarteEnvoyerComponent } from './components/carteParrainage/carte-envoyer/carte-envoyer.component';
import {AuthGuard} from './core/auth.guard';
@ -17,13 +18,13 @@ export const AppRoutes = [
{path: '', component: HomeComponent},
{path: 'login', component: LoginComponent},
{path: 'register', component: RegisterComponent},
{path: 'profil', component: ProfilComponent},
{path: 'opCommercial', component: OpCommercialComponent},
{path: 'creationOpCommercial', component: CreationOpComComponent},
{path: 'carteParrainageComponent', component: CarteParrainageComponent},
{path: 'EnvoyerCarte/:idOp', component: EnvoyerCarteComponent},
{path: 'scannerCarte/:idOp', component: ScannerCarteComponent},
{path: 'debiterCarte/:idOp', component: DebiterCarteComponent},
{path: 'editProfil', component: EditProfilComponent},
{path: 'historiqueCarte', component: CarteEnvoyerComponent }
{path: 'profil', component: ProfilComponent, canActivate: [AuthGuard]},
{path: 'opCommercial', component: OpCommercialComponent, canActivate: [AuthGuard]},
{path: 'creationOpCommercial', component: CreationOpComComponent, canActivate: [AuthGuard]},
{path: 'carteParrainageComponent', component: CarteParrainageComponent, canActivate: [AuthGuard]},
{path: 'EnvoyerCarte/:idOp', component: EnvoyerCarteComponent, canActivate: [AuthGuard]},
{path: 'scannerCarte/:idOp', component: ScannerCarteComponent, canActivate: [AuthGuard]},
{path: 'debiterCarte/:idOp', component: DebiterCarteComponent, canActivate: [AuthGuard]},
{path: 'editProfil', component: EditProfilComponent, canActivate: [AuthGuard]},
{path: 'historiqueCarte', component: CarteEnvoyerComponent, canActivate: [AuthGuard]}
];

@ -44,6 +44,7 @@ export class OpCommercialComponent implements OnInit, OnDestroy {
commercant: Commercant;
constructor(public afAuth: AngularFireAuth, public afDb: AngularFireDatabase,
private router: Router, private authService: AuthService, private opComService: OpCommercialService) {
this.opComm = new OperationCommerciale();
this.user = afAuth.authState;

@ -0,0 +1,15 @@
import { TestBed, async, inject } from '@angular/core/testing';
import { AuthGuard } from './auth.guard';
describe('AuthGuard', () => {
beforeEach(() => {
TestBed.configureTestingModule({
providers: [AuthGuard]
});
});
it('should ...', inject([AuthGuard], (guard: AuthGuard) => {
expect(guard).toBeTruthy();
}));
});

@ -0,0 +1,21 @@
import { Injectable } from '@angular/core';
import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';
import { Observable } from 'rxjs/Observable';
import { AuthService } from '../services/auth/auth.service';
import { Router } from '@angular/router';
@Injectable()
export class AuthGuard implements CanActivate {
constructor(private auth: AuthService, private router: Router){}
canActivate(
next: ActivatedRouteSnapshot,
state: RouterStateSnapshot): Observable<boolean> | Promise<boolean> | boolean {
if (this.auth.authenticated){
return true;
}
console.log('access denied!');
this.router.navigate(['/']);
return false;
}
}

@ -9,6 +9,7 @@ import * as firebase from 'firebase/app';
// import * as functions from 'firebase-functions';
// import * as functions from 'firebase/functions';
import { AngularFireAuth } from 'angularfire2/auth';
import { AngularFireDatabase, FirebaseListObservable } from 'angularfire2/database';
import { User } from '../../../models/User';
@ -32,14 +33,24 @@ export class AuthService {
test: string;
uti: firebase.User;
authState: firebase.User;
@Input() folder: string;
//fileList: FirebaseListObservable<Image[]>;
constructor(private http: HttpModule, public afAuth: AngularFireAuth, public afDb: AngularFireDatabase, public router: Router) {
constructor(private http: HttpModule, private afAuth: AngularFireAuth, private afDb: AngularFireDatabase, private router: Router) {
this.parrain = new Parrain();
afAuth.authState.subscribe(
(auth) => {
this.authState = auth;
});
this.databaseRef = firebase.database().ref();
//var nodemailer = require('nodemailer');
}
get authenticated(): boolean {
return this.authState !== null;
}
saveInfo(user: firebase.User, infoUser: any) {
if (infoUser.status === 'Parrain') {
const userRef = this.databaseRef.child('Parrain').child(user.uid);

Loading…
Cancel
Save