Commit 4f1f59a4 by zadi francice

desactivation du guard sur les routes

parent 1481f24e
import { Injectable } from '@angular/core'; import { Injectable } from '@angular/core';
import { import {
CanActivate,
ActivatedRouteSnapshot, ActivatedRouteSnapshot,
RouterStateSnapshot, RouterStateSnapshot,
UrlTree,
Router, Router,
CanActivate,
} from '@angular/router'; } from '@angular/router';
import type { Observable } from 'rxjs'; import { Observable } from 'rxjs';
import { AuthService } from './services/auth.service';
@Injectable({ @Injectable({
providedIn: 'root', providedIn: 'root',
}) })
export class AuthGuard implements CanActivate { export class AuthGuard implements CanActivate {
constructor(private router: Router) {} constructor(
private authService: AuthService,
private router: Router
) {}
canActivate( canActivate(
route: ActivatedRouteSnapshot, next: ActivatedRouteSnapshot,
state: RouterStateSnapshot state: RouterStateSnapshot
): Observable<boolean> | Promise<boolean> | boolean { ):
if (this.isLoggedIn()) { | Observable<boolean | UrlTree>
| Promise<boolean | UrlTree>
| boolean
| UrlTree {
const isAuthenticated = this.authService.isAuthenticated();
if (isAuthenticated) {
return true; return true;
}
this.router.navigate(['/auth']);
return false;
}
public isLoggedIn(): boolean {
let status = false;
if (localStorage.getItem('isLoggedIn')) {
status = true;
} else { } else {
status = false; this.router.navigate(['/auth']);
return false;
} }
return status;
} }
} }
...@@ -34,7 +34,13 @@ export class AuthService { ...@@ -34,7 +34,13 @@ export class AuthService {
public errors: any[] = []; public errors: any[] = [];
constructor(private http: HttpClient) {} constructor(private http: HttpClient) {}
isAuthenticated(): boolean {
// implémenter la logique pour vérifier si l'utilisateur est authentifié
// cela peut impliquer de vérifier un token dans le localStorage ou sessionStorage
return !!sessionStorage.getItem('username');
}
public verifyToken( public verifyToken(
token: string token: string
// eslint-disable-next-line @typescript-eslint/no-explicit-any // eslint-disable-next-line @typescript-eslint/no-explicit-any
...@@ -124,7 +130,7 @@ export class AuthService { ...@@ -124,7 +130,7 @@ export class AuthService {
} }
// Met à jour les données utilisateur après une connexion réussie ou un rafraîchissement de jeton // Met à jour les données utilisateur après une connexion réussie ou un rafraîchissement de jeton
private updateData(token: string) { public updateData(token: string) {
this.token = token; this.token = token;
this.errors = []; this.errors = [];
......
...@@ -12,7 +12,7 @@ import { MatInputModule } from '@angular/material/input'; ...@@ -12,7 +12,7 @@ import { MatInputModule } from '@angular/material/input';
import { MatButtonModule } from '@angular/material/button'; import { MatButtonModule } from '@angular/material/button';
import { MatIconModule } from '@angular/material/icon'; import { MatIconModule } from '@angular/material/icon';
import { MatCheckboxModule } from '@angular/material/checkbox'; import { MatCheckboxModule } from '@angular/material/checkbox';
import { Router } from '@angular/router'; import { Router, RouterLink, RouterOutlet } from '@angular/router';
import { AuthService } from 'src/app/_helpers/services/auth.service'; import { AuthService } from 'src/app/_helpers/services/auth.service';
@Component({ @Component({
...@@ -31,7 +31,7 @@ import { AuthService } from 'src/app/_helpers/services/auth.service'; ...@@ -31,7 +31,7 @@ import { AuthService } from 'src/app/_helpers/services/auth.service';
], ],
templateUrl: './login-standard-user.component.html', templateUrl: './login-standard-user.component.html',
styleUrls: ['./login-standard-user.component.scss'], styleUrls: ['./login-standard-user.component.scss'],
providers: [AuthService], providers: [AuthService, RouterLink, RouterOutlet],
}) })
export class LoginStandardUserComponent implements OnInit { export class LoginStandardUserComponent implements OnInit {
router = inject(Router); router = inject(Router);
...@@ -83,27 +83,37 @@ export class LoginStandardUserComponent implements OnInit { ...@@ -83,27 +83,37 @@ export class LoginStandardUserComponent implements OnInit {
password: '', password: '',
}; };
} }
login() { login() {
console.log('Username:', this.user.username); console.log('Username:', this.user.username);
console.log('Password:', this.user.password); console.log('Password:', this.user.password);
this.authService.login(this.user.username, this.user.password).subscribe( this.authService.login(this.user.username, this.user.password).subscribe(
// eslint-disable-next-line @typescript-eslint/no-explicit-any (response: { status: boolean; data?: any; error?: string }) => {
(response: any) => { console.log('currentUser =>', response.data);
console.log('currentUser=>', response.data); console.log('response.status', response.status);
if (response.status) { if (response.status) {
console.log('Connexion réussie'); console.log('Connexion réussie');
// Stocker l'username dans une variable ou dans le localStorage si nécessaire
// Stocker l'username dans une variable ou dans le sessionStorage si nécessaire
const username = response.data; const username = response.data;
console.log('userInfos', username); console.log('userInfos', username);
try {
sessionStorage.setItem('username', username);
} catch (error) {
console.warn('Could not store username in sessionStorage', error);
}
// Redirection vers la page admin // Redirection vers la page admin
this.router.navigate(['/admin']); console.log('Redirection vers la page admin');
this.router.navigateByUrl('/admin');
} else { } else {
console.error('Échec de la connexion :', response.error); console.error('Échec de la connexion :', response.error);
} }
}, },
error => { (error: any) => {
console.error('Erreur lors de la connexion :', error); console.error('Erreur lors de la connexion :', error);
// Gérer l'erreur de connexion ici // Gérer l'erreur de connexion ici
} }
......
...@@ -9,7 +9,6 @@ import { provideAnimations } from '@angular/platform-browser/animations'; ...@@ -9,7 +9,6 @@ import { provideAnimations } from '@angular/platform-browser/animations';
import { provideEnvironmentNgxMask } from 'ngx-mask'; import { provideEnvironmentNgxMask } from 'ngx-mask';
import { HttpClientModule } from '@angular/common/http'; // Import de HttpClientModule import { HttpClientModule } from '@angular/common/http'; // Import de HttpClientModule
import { provideNativeDateAdapter } from '@angular/material/core'; import { provideNativeDateAdapter } from '@angular/material/core';
import { provideClientHydration } from '@angular/platform-browser';
export const appConfig: ApplicationConfig = { export const appConfig: ApplicationConfig = {
providers: [ providers: [
...@@ -19,6 +18,6 @@ export const appConfig: ApplicationConfig = { ...@@ -19,6 +18,6 @@ export const appConfig: ApplicationConfig = {
provideNativeDateAdapter(), provideNativeDateAdapter(),
{ provide: LOCALE_ID, useValue: 'fr-FR' }, { provide: LOCALE_ID, useValue: 'fr-FR' },
//HttpClientModule, //HttpClientModule,
importProvidersFrom(HttpClientModule), provideClientHydration(), importProvidersFrom(HttpClientModule),
], ],
}; };
...@@ -3,6 +3,7 @@ import type { Routes } from '@angular/router'; ...@@ -3,6 +3,7 @@ import type { Routes } from '@angular/router';
import { MainLayoutComponent } from './core/layout/main-layout/main-layout.component'; import { MainLayoutComponent } from './core/layout/main-layout/main-layout.component';
import { AuthGuard } from './_helpers/auth.guard'; import { AuthGuard } from './_helpers/auth.guard';
import { LoginStandardUserComponent } from './account/auth/login-standard-user/login-standard-user.component'; import { LoginStandardUserComponent } from './account/auth/login-standard-user/login-standard-user.component';
import { AdminTestComponent } from './admin-test/admin-test.component';
export const routes: Routes = [ export const routes: Routes = [
{ {
...@@ -15,23 +16,16 @@ export const routes: Routes = [ ...@@ -15,23 +16,16 @@ export const routes: Routes = [
{ {
path: '', path: '',
component: MainLayoutComponent, component: MainLayoutComponent,
canActivate: [AuthGuard],
children: [ children: [
{ { path: 'admin', component: AdminTestComponent },
path: 'admin',
loadComponent: () =>
import('./admin-test/admin-test.component').then(
c => c.AdminTestComponent
),
canActivate: [AuthGuard],
},
{ {
path: 'transactions', path: 'transactions',
loadChildren: () => loadChildren: () =>
import('./trafics/transactions/transaction.routes').then( import('./trafics/transactions/transaction.routes').then(
c => c.transactionsRoutes c => c.transactionsRoutes
), ),
canActivate: [AuthGuard],
}, },
{ {
path: 'integrations', path: 'integrations',
...@@ -39,19 +33,19 @@ export const routes: Routes = [ ...@@ -39,19 +33,19 @@ export const routes: Routes = [
import('./integrations/integration/integration.routes').then( import('./integrations/integration/integration.routes').then(
c => c.integrationRoutes c => c.integrationRoutes
), ),
canActivate: [AuthGuard],
}, },
{ {
path: 'utilisateurs', path: 'utilisateurs',
loadChildren: () => loadChildren: () =>
import('./utilisateurs/user.routes').then(c => c.userRoutes), import('./utilisateurs/user.routes').then(c => c.userRoutes),
canActivate: [AuthGuard],
}, },
{ {
path: 'assistances', path: 'assistances',
loadChildren: () => loadChildren: () =>
import('./assistances/service.routes').then(c => c.userRoutes), import('./assistances/service.routes').then(c => c.userRoutes),
canActivate: [AuthGuard],
}, },
{ {
path: 'reversements', path: 'reversements',
...@@ -59,7 +53,7 @@ export const routes: Routes = [ ...@@ -59,7 +53,7 @@ export const routes: Routes = [
import('./reversements/reversement/reversement.routes').then( import('./reversements/reversement/reversement.routes').then(
c => c.reversementRoutes c => c.reversementRoutes
), ),
canActivate: [AuthGuard],
}, },
{ {
path: 'dash', path: 'dash',
...@@ -67,7 +61,7 @@ export const routes: Routes = [ ...@@ -67,7 +61,7 @@ export const routes: Routes = [
import( import(
'./admin/dashboards/beasy-dashboard/beasy-dashboard.component' './admin/dashboards/beasy-dashboard/beasy-dashboard.component'
).then(c => c.BeasyDashboardComponent), ).then(c => c.BeasyDashboardComponent),
canActivate: [AuthGuard],
}, },
{ {
path: 'application-android', path: 'application-android',
...@@ -75,7 +69,7 @@ export const routes: Routes = [ ...@@ -75,7 +69,7 @@ export const routes: Routes = [
import('./application-android/application-android.component').then( import('./application-android/application-android.component').then(
c => c.ApplicationAndroidComponent c => c.ApplicationAndroidComponent
), ),
canActivate: [AuthGuard],
}, },
{ {
path: 'compte-associe', path: 'compte-associe',
...@@ -83,7 +77,7 @@ export const routes: Routes = [ ...@@ -83,7 +77,7 @@ export const routes: Routes = [
import('./compte-associe/compte-associe.component').then( import('./compte-associe/compte-associe.component').then(
c => c.CompteAssocieComponent c => c.CompteAssocieComponent
), ),
canActivate: [AuthGuard],
}, },
{ {
path: 'utilisateurs', path: 'utilisateurs',
...@@ -91,7 +85,7 @@ export const routes: Routes = [ ...@@ -91,7 +85,7 @@ export const routes: Routes = [
import('./utilisateurs/utilisateurs.component').then( import('./utilisateurs/utilisateurs.component').then(
c => c.UtilisateursComponent c => c.UtilisateursComponent
), ),
canActivate: [AuthGuard],
}, },
{ {
path: 'facturation', path: 'facturation',
...@@ -99,9 +93,9 @@ export const routes: Routes = [ ...@@ -99,9 +93,9 @@ export const routes: Routes = [
import('./facturation/facturation.component').then( import('./facturation/facturation.component').then(
c => c.FacturationComponent c => c.FacturationComponent
), ),
canActivate: [AuthGuard], //
}, },
], ],canActivate: [AuthGuard],
}, },
{ {
path: '**', path: '**',
......
...@@ -53,7 +53,7 @@ ...@@ -53,7 +53,7 @@
</bgui-navbar> </bgui-navbar>
<!-- content @s --> <!-- content @s -->
<div class="nk-content"> <div class="nk-content" style="z-index: -1;">
<div class="container-fluid"> <div class="container-fluid">
<div class="nk-content-inner"> <div class="nk-content-inner">
<div class="nk-content-body"> <div class="nk-content-body">
......
...@@ -9,10 +9,12 @@ ...@@ -9,10 +9,12 @@
></a> ></a>
</div> </div>
<div class="nk-header-brand d-xl-none"> <div class="nk-header-brand d-xl-none">
<a href="html/index.html" class="logo-link"> </a> <!-- <a href="html/index.html" class="logo-link"> </a> -->
</div> </div>
<div class="nk-header-tools"> <div class="nk-header-tools">
<!-- ajouter un div qui comporter la date et l'heure du jour -->
<ul class="nk-quick-nav"> <ul class="nk-quick-nav">
<li class="dropdown user-dropdown"> <li class="dropdown user-dropdown">
<a href="#" class="dropdown-toggle me-n1" data-bs-toggle="dropdown"> <a href="#" class="dropdown-toggle me-n1" data-bs-toggle="dropdown">
<div class="user-toggle"> <div class="user-toggle">
...@@ -27,7 +29,7 @@ ...@@ -27,7 +29,7 @@
</div> </div>
</div> </div>
</a> </a>
<div class="dropdown-menu dropdown-menu-md dropdown-menu-end"> <div class="dropdown-menu dropdown-menu-md dropdown-menu-end" >
<div <div
class="dropdown-inner user-card-wrap bg-lighter d-none d-md-block"> class="dropdown-inner user-card-wrap bg-lighter d-none d-md-block">
<div class="user-card"> <div class="user-card">
......
import { Component, inject } from '@angular/core'; import { Component, inject } from '@angular/core';
import { CommonModule } from '@angular/common'; import { CommonModule } from '@angular/common';
import { MatIconModule } from '@angular/material/icon'; import { MatIconModule } from '@angular/material/icon';
import { Router } from '@angular/router'; import { Router, RouterLink, RouterOutlet } from '@angular/router';
import { HttpClient } from '@angular/common/http';
import { AuthService } from 'src/app/_helpers/services/auth.service';
@Component({ @Component({
selector: 'bgui-navbar', selector: 'bgui-navbar',
standalone: true, standalone: true,
imports: [CommonModule, MatIconModule], imports: [CommonModule, MatIconModule],
providers: [AuthService, RouterLink, RouterOutlet],
templateUrl: './navbar.component.html', templateUrl: './navbar.component.html',
styleUrls: ['./navbar.component.scss'], styleUrls: ['./navbar.component.scss'],
}) })
export class NavbarComponent { export class NavbarComponent {
userEmail: string | null | undefined; userEmail: string | null | undefined;
private router = inject(Router);
constructor(private http: HttpClient) {}
ngOnInit() { ngOnInit() {
this.userEmail = localStorage.getItem('username'); this.userEmail = localStorage.getItem('username');
console.log(this.userEmail); console.log(this.userEmail);
} }
private router = inject(Router);
deconnxionlogin() { deconnxionlogin() {
localStorage.setItem('isLoggedIn', 'false'); localStorage.setItem('isLoggedIn', 'false');
localStorage.removeItem('token'); localStorage.removeItem('token');
......
...@@ -175,6 +175,17 @@ $avatar-adj-colors: ( ...@@ -175,6 +175,17 @@ $avatar-adj-colors: (
} }
} }
.user-status-unverified {
color: #e1e7e5 !important;
font-size: 15px !important;
}
.user-name {
color: #edf0f3 !important;
font-size: 20px !important;
line-height: 25px;
font-weight: 700;
}
// User Card // User Card
////////////////////////// //////////////////////////
......
...@@ -49,8 +49,10 @@ ...@@ -49,8 +49,10 @@
&-header{ &-header{
background: $header-bg-color; background: $header-bg-color;
border-bottom: 1px solid $header-border-bottom; border-bottom: 1px solid $header-border-bottom;
border-radius: 12px; // border-radius: 12px;
padding: 0 $header-main-gap-x; padding: 0;
margin: 0 !important;
height: 4rem;
box-shadow: 0px 1px 3px 0px rgba($base-color, 0.05); box-shadow: 0px 1px 3px 0px rgba($base-color, 0.05);
z-index: 0; z-index: 0;
@if($dark_option==true) { @if($dark_option==true) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment