Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
B
beasy-front-angular
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
zadi francice
beasy-front-angular
Commits
4f1f59a4
Commit
4f1f59a4
authored
Jun 14, 2024
by
zadi francice
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
desactivation du guard sur les routes
parent
1481f24e
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
86 additions
and
55 deletions
+86
-55
auth.guard.ts
src/app/_helpers/auth.guard.ts
+17
-16
auth.service.ts
src/app/_helpers/services/auth.service.ts
+7
-1
login-standard-user.component.ts
...auth/login-standard-user/login-standard-user.component.ts
+18
-8
app.config.ts
src/app/app.config.ts
+1
-2
app.routes.ts
src/app/app.routes.ts
+14
-20
main-layout.component.html
src/app/core/layout/main-layout/main-layout.component.html
+1
-1
navbar.component.html
src/app/core/layout/navbar/navbar.component.html
+4
-2
navbar.component.ts
src/app/core/layout/navbar/navbar.component.ts
+9
-3
_users.scss
src/assets/scss/core/components/_users.scss
+11
-0
_header.scss
src/assets/scss/core/layouts/_header.scss
+4
-2
No files found.
src/app/_helpers/auth.guard.ts
View file @
4f1f59a4
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
;
}
}
else
{
this
.
router
.
navigate
([
'/auth'
]);
this
.
router
.
navigate
([
'/auth'
]);
return
false
;
return
false
;
}
}
public
isLoggedIn
():
boolean
{
let
status
=
false
;
if
(
localStorage
.
getItem
(
'isLoggedIn'
))
{
status
=
true
;
}
else
{
status
=
false
;
}
return
status
;
}
}
}
}
src/app/_helpers/services/auth.service.ts
View file @
4f1f59a4
...
@@ -35,6 +35,12 @@ export class AuthService {
...
@@ -35,6 +35,12 @@ export class AuthService {
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
p
rivate
updateData
(
token
:
string
)
{
p
ublic
updateData
(
token
:
string
)
{
this
.
token
=
token
;
this
.
token
=
token
;
this
.
errors
=
[];
this
.
errors
=
[];
...
...
src/app/account/auth/login-standard-user/login-standard-user.component.ts
View file @
4f1f59a4
...
@@ -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
}
}
...
...
src/app/app.config.ts
View file @
4f1f59a4
...
@@ -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
),
],
],
};
};
src/app/app.routes.ts
View file @
4f1f59a4
...
@@ -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
:
'**'
,
...
...
src/app/core/layout/main-layout/main-layout.component.html
View file @
4f1f59a4
...
@@ -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"
>
...
...
src/app/core/layout/navbar/navbar.component.html
View file @
4f1f59a4
...
@@ -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"
>
...
...
src/app/core/layout/navbar/navbar.component.ts
View file @
4f1f59a4
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'
);
...
...
src/assets/scss/core/components/_users.scss
View file @
4f1f59a4
...
@@ -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
//////////////////////////
//////////////////////////
...
...
src/assets/scss/core/layouts/_header.scss
View file @
4f1f59a4
...
@@ -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
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment