Commit 4f1f59a4 by zadi francice

desactivation du guard sur les routes

parent 1481f24e
import { Injectable } from '@angular/core';
import {
CanActivate,
ActivatedRouteSnapshot,
RouterStateSnapshot,
UrlTree,
Router,
CanActivate,
} from '@angular/router';
import type { Observable } from 'rxjs';
import { Observable } from 'rxjs';
import { AuthService } from './services/auth.service';
@Injectable({
providedIn: 'root',
})
export class AuthGuard implements CanActivate {
constructor(private router: Router) {}
constructor(
private authService: AuthService,
private router: Router
) {}
canActivate(
route: ActivatedRouteSnapshot,
next: ActivatedRouteSnapshot,
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;
}
} else {
this.router.navigate(['/auth']);
return false;
}
public isLoggedIn(): boolean {
let status = false;
if (localStorage.getItem('isLoggedIn')) {
status = true;
} else {
status = false;
}
return status;
}
}
......@@ -35,6 +35,12 @@ export class AuthService {
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(
token: string
// eslint-disable-next-line @typescript-eslint/no-explicit-any
......@@ -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
private updateData(token: string) {
public updateData(token: string) {
this.token = token;
this.errors = [];
......
......@@ -12,7 +12,7 @@ import { MatInputModule } from '@angular/material/input';
import { MatButtonModule } from '@angular/material/button';
import { MatIconModule } from '@angular/material/icon';
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';
@Component({
......@@ -31,7 +31,7 @@ import { AuthService } from 'src/app/_helpers/services/auth.service';
],
templateUrl: './login-standard-user.component.html',
styleUrls: ['./login-standard-user.component.scss'],
providers: [AuthService],
providers: [AuthService, RouterLink, RouterOutlet],
})
export class LoginStandardUserComponent implements OnInit {
router = inject(Router);
......@@ -83,27 +83,37 @@ export class LoginStandardUserComponent implements OnInit {
password: '',
};
}
login() {
console.log('Username:', this.user.username);
console.log('Password:', this.user.password);
this.authService.login(this.user.username, this.user.password).subscribe(
// eslint-disable-next-line @typescript-eslint/no-explicit-any
(response: any) => {
console.log('currentUser=>', response.data);
(response: { status: boolean; data?: any; error?: string }) => {
console.log('currentUser =>', response.data);
console.log('response.status', response.status);
if (response.status) {
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;
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
this.router.navigate(['/admin']);
console.log('Redirection vers la page admin');
this.router.navigateByUrl('/admin');
} else {
console.error('Échec de la connexion :', response.error);
}
},
error => {
(error: any) => {
console.error('Erreur lors de la connexion :', error);
// Gérer l'erreur de connexion ici
}
......
......@@ -9,7 +9,6 @@ import { provideAnimations } from '@angular/platform-browser/animations';
import { provideEnvironmentNgxMask } from 'ngx-mask';
import { HttpClientModule } from '@angular/common/http'; // Import de HttpClientModule
import { provideNativeDateAdapter } from '@angular/material/core';
import { provideClientHydration } from '@angular/platform-browser';
export const appConfig: ApplicationConfig = {
providers: [
......@@ -19,6 +18,6 @@ export const appConfig: ApplicationConfig = {
provideNativeDateAdapter(),
{ provide: LOCALE_ID, useValue: 'fr-FR' },
//HttpClientModule,
importProvidersFrom(HttpClientModule), provideClientHydration(),
importProvidersFrom(HttpClientModule),
],
};
......@@ -3,6 +3,7 @@ import type { Routes } from '@angular/router';
import { MainLayoutComponent } from './core/layout/main-layout/main-layout.component';
import { AuthGuard } from './_helpers/auth.guard';
import { LoginStandardUserComponent } from './account/auth/login-standard-user/login-standard-user.component';
import { AdminTestComponent } from './admin-test/admin-test.component';
export const routes: Routes = [
{
......@@ -15,23 +16,16 @@ export const routes: Routes = [
{
path: '',
component: MainLayoutComponent,
canActivate: [AuthGuard],
children: [
{
path: 'admin',
loadComponent: () =>
import('./admin-test/admin-test.component').then(
c => c.AdminTestComponent
),
canActivate: [AuthGuard],
},
{ path: 'admin', component: AdminTestComponent },
{
path: 'transactions',
loadChildren: () =>
import('./trafics/transactions/transaction.routes').then(
c => c.transactionsRoutes
),
canActivate: [AuthGuard],
},
{
path: 'integrations',
......@@ -39,19 +33,19 @@ export const routes: Routes = [
import('./integrations/integration/integration.routes').then(
c => c.integrationRoutes
),
canActivate: [AuthGuard],
},
{
path: 'utilisateurs',
loadChildren: () =>
import('./utilisateurs/user.routes').then(c => c.userRoutes),
canActivate: [AuthGuard],
},
{
path: 'assistances',
loadChildren: () =>
import('./assistances/service.routes').then(c => c.userRoutes),
canActivate: [AuthGuard],
},
{
path: 'reversements',
......@@ -59,7 +53,7 @@ export const routes: Routes = [
import('./reversements/reversement/reversement.routes').then(
c => c.reversementRoutes
),
canActivate: [AuthGuard],
},
{
path: 'dash',
......@@ -67,7 +61,7 @@ export const routes: Routes = [
import(
'./admin/dashboards/beasy-dashboard/beasy-dashboard.component'
).then(c => c.BeasyDashboardComponent),
canActivate: [AuthGuard],
},
{
path: 'application-android',
......@@ -75,7 +69,7 @@ export const routes: Routes = [
import('./application-android/application-android.component').then(
c => c.ApplicationAndroidComponent
),
canActivate: [AuthGuard],
},
{
path: 'compte-associe',
......@@ -83,7 +77,7 @@ export const routes: Routes = [
import('./compte-associe/compte-associe.component').then(
c => c.CompteAssocieComponent
),
canActivate: [AuthGuard],
},
{
path: 'utilisateurs',
......@@ -91,7 +85,7 @@ export const routes: Routes = [
import('./utilisateurs/utilisateurs.component').then(
c => c.UtilisateursComponent
),
canActivate: [AuthGuard],
},
{
path: 'facturation',
......@@ -99,9 +93,9 @@ export const routes: Routes = [
import('./facturation/facturation.component').then(
c => c.FacturationComponent
),
canActivate: [AuthGuard],
//
},
],
],canActivate: [AuthGuard],
},
{
path: '**',
......
......@@ -53,7 +53,7 @@
</bgui-navbar>
<!-- content @s -->
<div class="nk-content">
<div class="nk-content" style="z-index: -1;">
<div class="container-fluid">
<div class="nk-content-inner">
<div class="nk-content-body">
......
......@@ -9,10 +9,12 @@
></a>
</div>
<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 class="nk-header-tools">
<!-- ajouter un div qui comporter la date et l'heure du jour -->
<ul class="nk-quick-nav">
<li class="dropdown user-dropdown">
<a href="#" class="dropdown-toggle me-n1" data-bs-toggle="dropdown">
<div class="user-toggle">
......@@ -27,7 +29,7 @@
</div>
</div>
</a>
<div class="dropdown-menu dropdown-menu-md dropdown-menu-end">
<div class="dropdown-menu dropdown-menu-md dropdown-menu-end" >
<div
class="dropdown-inner user-card-wrap bg-lighter d-none d-md-block">
<div class="user-card">
......
import { Component, inject } from '@angular/core';
import { CommonModule } from '@angular/common';
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({
selector: 'bgui-navbar',
standalone: true,
imports: [CommonModule, MatIconModule],
providers: [AuthService, RouterLink, RouterOutlet],
templateUrl: './navbar.component.html',
styleUrls: ['./navbar.component.scss'],
})
export class NavbarComponent {
userEmail: string | null | undefined;
private router = inject(Router);
constructor(private http: HttpClient) {}
ngOnInit() {
this.userEmail = localStorage.getItem('username');
console.log(this.userEmail);
}
private router = inject(Router);
deconnxionlogin() {
localStorage.setItem('isLoggedIn', 'false');
localStorage.removeItem('token');
......
......@@ -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
//////////////////////////
......
......@@ -49,8 +49,10 @@
&-header{
background: $header-bg-color;
border-bottom: 1px solid $header-border-bottom;
border-radius: 12px;
padding: 0 $header-main-gap-x;
// border-radius: 12px;
padding: 0;
margin: 0 !important;
height: 4rem;
box-shadow: 0px 1px 3px 0px rgba($base-color, 0.05);
z-index: 0;
@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