Merge branch 'dev' of https://github.com/AlineRinquin/organizee-front into sana
This commit is contained in:
commit
11e4d7321e
@ -19,6 +19,7 @@ export class AuthGuard implements CanActivate {
|
||||
this.tokenKey = environment.tokenKey;
|
||||
}
|
||||
|
||||
//s'il n'y a pas de token, le user ne peut pas naviguer sur les url où cette option est activée
|
||||
canActivate(
|
||||
route: ActivatedRouteSnapshot,
|
||||
state: RouterStateSnapshot
|
||||
@ -35,20 +36,17 @@ export class AuthGuard implements CanActivate {
|
||||
console.log('decodedToken : ', decodedToken);
|
||||
|
||||
if (decodedToken.exp) {
|
||||
console.log("Date d'exp decodedToken : ", decodedToken.exp);
|
||||
const dateExp = new Date(decodedToken.exp * 1000);
|
||||
if (new Date() >= dateExp) {
|
||||
// le token a expiré, je n'autorise pas l'accès
|
||||
// le token a expiré, je n'autorise pas l'accès et je redirige pour connexion
|
||||
this.router.navigate(['accueil']);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
console.log("C'est ok ! ");
|
||||
return true;
|
||||
} else {
|
||||
console.log('You shall not pass !!!!');
|
||||
this.router.navigate(['accueil']); // redirection de notre utilisateur vers une url de notre application (dans notre code TS)
|
||||
this.router.navigate(['accueil']);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@ -58,6 +58,11 @@
|
||||
</button>
|
||||
|
||||
<div class="container mt-5 menu">
|
||||
<app-alert
|
||||
*ngIf="isShow"
|
||||
[alert]="alert"
|
||||
(eventClose)="onClickCloseAlert()"
|
||||
></app-alert>
|
||||
<div class="row d-flex justify-content-center">
|
||||
<div class="col-md-auto" *ngFor="let menu of listMenus">
|
||||
<div class="card p-3 py-4 align-items" style="width: 14rem">
|
||||
|
@ -19,6 +19,8 @@ import {
|
||||
})
|
||||
export class CardMenuComponent implements OnInit {
|
||||
closeResult = '';
|
||||
alert : any;
|
||||
isShow : boolean;
|
||||
public listMenus:any[];
|
||||
public menuId : any;
|
||||
public menuForm : FormGroup;
|
||||
@ -35,30 +37,21 @@ public upMenuForm : FormGroup;
|
||||
this.listMenus=[];
|
||||
this.menuForm = new FormGroup({});
|
||||
this.upMenuForm = new FormGroup({});
|
||||
this.upMenuForm = this.initForm();
|
||||
}
|
||||
|
||||
//Méthode qui initialise les champs du formulaire avec les infos de la BDD
|
||||
private initForm(menu?: Menu): FormGroup {
|
||||
return this.fb.group({
|
||||
dateMenu: [menu ? menu.dateMenu : ''],
|
||||
repasMidi: [menu ? menu.repasMidi : ''],
|
||||
repasSoir: [menu ? menu.repasSoir : ''],
|
||||
|
||||
});
|
||||
this.isShow = false;
|
||||
}
|
||||
|
||||
//delete d'un menu
|
||||
|
||||
//delete d'un menu - fait appel au service dédié MenuService qui gère les observables
|
||||
deleteMenu(id_menu : number): void {
|
||||
// window.alert("Le menu a bien été supprimé!")
|
||||
this.menusService.deleteMenu(id_menu)?.subscribe((resp) => {
|
||||
// this.router.navigate(['menu']);
|
||||
window.location.reload();
|
||||
this.alert={"type":"danger", "content":"Le menu a bien été supprimé"};
|
||||
this.isShow = true;
|
||||
this.menusService.deleteMenu(id_menu)?.subscribe((resp) => {
|
||||
window.location.reload();
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
//updateMenu
|
||||
//updateMenu - fait appel au service dédié MenuService qui gère les observables
|
||||
updateMenu(id_menu : number): void {
|
||||
|
||||
const dateValue = this.upMenuForm.value['dateMenuFc'];
|
||||
@ -83,14 +76,14 @@ updateMenu(id_menu : number): void {
|
||||
|
||||
|
||||
|
||||
//ajout d'un menu
|
||||
//ajout d'un menu - fait appel au service dédié MenuService qui gère les observables
|
||||
saveMenu(): void {
|
||||
|
||||
const dateValue = this.menuForm.value['dateMenuFc'];
|
||||
const repasMidiValue = this.menuForm.value['repasMidiFc'];
|
||||
const repasSoirValue = this.menuForm.value['repasSoirFc'];
|
||||
|
||||
|
||||
//permet de construire l'objet à passer en base
|
||||
const menu: Menu = {
|
||||
dateMenu: dateValue,
|
||||
repasMidi: repasMidiValue,
|
||||
@ -102,7 +95,7 @@ saveMenu(): void {
|
||||
|
||||
console.log(menu.dateMenu);
|
||||
this.menusService.addMenu(menu)?.subscribe((resp) => {
|
||||
window.location.reload();
|
||||
window.location.reload(); //rechargement de la page pour affichage des modifications
|
||||
|
||||
});
|
||||
} else {
|
||||
@ -113,10 +106,10 @@ saveMenu(): void {
|
||||
|
||||
|
||||
ngOnInit(): void {
|
||||
//affichage des menus d'une team
|
||||
//affichage des menus d'une team - fait appel au service dédié MenuService qui gère les observables
|
||||
this.menusService.getMenu()?.subscribe((listMenus: any[])=>{
|
||||
console.log(listMenus);
|
||||
this.listMenus=listMenus;
|
||||
this.listMenus=listMenus; //socke les objets récupérés de la base
|
||||
|
||||
});
|
||||
|
||||
@ -129,7 +122,6 @@ this.menusService.getMenu()?.subscribe((listMenus: any[])=>{
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
this.upMenuForm = this.fb.group(
|
||||
{
|
||||
dateMenuFc: new FormControl('',[Validators.required]),
|
||||
@ -141,7 +133,7 @@ this.menusService.getMenu()?.subscribe((listMenus: any[])=>{
|
||||
|
||||
|
||||
}
|
||||
|
||||
//gestion de la fenêtre modale, open au click
|
||||
open(content: any) {
|
||||
this.modalService.open(content,
|
||||
{ariaLabelledBy: 'menu'}).result.then((result)=> {
|
||||
@ -152,6 +144,7 @@ open(content: any) {
|
||||
});
|
||||
}
|
||||
|
||||
//gestion de la fenêtre modale, mode de fermeture
|
||||
private getDismissReason(reason: any): string {
|
||||
if (reason === ModalDismissReasons.ESC) {
|
||||
return 'by pressing ESC';
|
||||
@ -161,6 +154,11 @@ open(content: any) {
|
||||
return `with: ${reason}`;
|
||||
}
|
||||
}
|
||||
|
||||
//fermeture du message d'alerte quand un menu est supprimé
|
||||
onClickCloseAlert(){
|
||||
this.isShow = ! this.isShow;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -16,7 +16,7 @@ export class DeconnexionComponent implements OnInit {
|
||||
ngOnInit(): void {
|
||||
}
|
||||
|
||||
|
||||
//au click on fait appel au ServiceToken pour supprimer le token et on redirige l'utilisateur
|
||||
onClickDeco(){
|
||||
this.tokenService.eraseToken();
|
||||
this.router.navigate(['accueil']);
|
||||
|
@ -22,8 +22,9 @@ export class SigninComponent implements OnInit {
|
||||
|
||||
ngOnInit(): void {}
|
||||
|
||||
//quand on se connecte - appel au service d'authentification
|
||||
public onSubmit(submittedForm: any): void {
|
||||
console.log(submittedForm.form.value);
|
||||
|
||||
const email = submittedForm.form.value['email'];
|
||||
const password = submittedForm.form.value['password'];
|
||||
if (email !== '' && password !== '') {
|
||||
@ -32,19 +33,20 @@ export class SigninComponent implements OnInit {
|
||||
next: resp => {
|
||||
this.router.navigate(['tableau-de-bord']);
|
||||
},
|
||||
error: err => {
|
||||
error: err => { //gestion des alertes si les id/pwd sont faux
|
||||
this.alert={"type":"danger", "content":"Le login ou paswword est invalide"};
|
||||
this.isShow = true;
|
||||
},
|
||||
complete: () => console.log('DONE!')
|
||||
});
|
||||
} else {
|
||||
// afficher une erreur à l'utilisateur
|
||||
// affiche une erreur à l'utilisateur
|
||||
this.alert={"type":"danger", "content":"Le login ou password est invalide"};
|
||||
this.isShow = true;
|
||||
}
|
||||
}
|
||||
|
||||
//fermeture du message d'alerte
|
||||
onClickCloseAlert(){
|
||||
console.log('fermeture');
|
||||
this.isShow = ! this.isShow;
|
||||
|
@ -10,7 +10,7 @@ import { TokenService } from 'src/app/services/token.service';
|
||||
})
|
||||
export class PageAccueilComponent implements OnInit {
|
||||
|
||||
constructor(private http: HttpClient, private router: Router, private tokenService: TokenService) {
|
||||
constructor(private http: HttpClient, private router: Router, private tokenService: TokenService) {
|
||||
|
||||
}
|
||||
|
||||
|
@ -54,7 +54,7 @@ export class PageAgendaComponent implements AfterViewInit {
|
||||
|
||||
ngAfterViewInit(): void {
|
||||
}
|
||||
|
||||
|
||||
ngOnInit(): void {
|
||||
this.userId = this.tokenService.getCurrentMembreId();
|
||||
this.teamId = this.tokenService.getCurrentTeamId();
|
||||
@ -92,7 +92,7 @@ export class PageAgendaComponent implements AfterViewInit {
|
||||
{
|
||||
next: result => {
|
||||
this.viewChange();
|
||||
this.alert={"type":"success", "content":"L'évènement à bien été modifié"};
|
||||
this.alert={"type":"success", "content":"L'évènement a bien été modifié"};
|
||||
this.isShow = true;
|
||||
},
|
||||
error: err => {
|
||||
@ -102,11 +102,11 @@ export class PageAgendaComponent implements AfterViewInit {
|
||||
},
|
||||
complete: () => console.log('DONE!')
|
||||
}
|
||||
);
|
||||
);
|
||||
}else{
|
||||
this.viewChange();
|
||||
this.alert={"type":"danger", "content":"Vous ne pouvez pas modifié cet évènement !"};
|
||||
this.isShow = true;
|
||||
this.alert={"type":"danger", "content":"Vous ne pouvez pas modifier cet évènement !"};
|
||||
this.isShow = true;
|
||||
}
|
||||
|
||||
},
|
||||
@ -172,7 +172,7 @@ export class PageAgendaComponent implements AfterViewInit {
|
||||
}else{
|
||||
this.viewChange();
|
||||
this.alert={"type":"danger", "content":"Vous ne pouvez pas suprimé cet évènement !"};
|
||||
this.isShow = true;
|
||||
this.isShow = true;
|
||||
}
|
||||
},
|
||||
eventResizeHandling: "Update",
|
||||
@ -206,7 +206,7 @@ export class PageAgendaComponent implements AfterViewInit {
|
||||
}else{
|
||||
this.viewChange();
|
||||
this.alert={"type":"danger", "content":"Vous ne pouvez pas déplacé cet évènement !"};
|
||||
this.isShow = true;
|
||||
this.isShow = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -20,7 +20,7 @@ export class PageForgotPasswordComponent implements OnInit {
|
||||
|
||||
alert : any;
|
||||
isShow : boolean;
|
||||
|
||||
|
||||
constructor(private authService: AuthService, private router: Router, private mailService: MailService,) {
|
||||
this.alert = "";
|
||||
this.isShow = false;
|
||||
@ -41,9 +41,7 @@ export class PageForgotPasswordComponent implements OnInit {
|
||||
};
|
||||
|
||||
console.log(membre);
|
||||
// this.authService.forgotPassword(membre).subscribe((resp) => {
|
||||
// console.log('----'+resp)
|
||||
// });
|
||||
|
||||
|
||||
this.authService.forgotPassword(membre).subscribe(
|
||||
{
|
||||
@ -70,7 +68,7 @@ export class PageForgotPasswordComponent implements OnInit {
|
||||
},
|
||||
complete: () => console.log('DONE!')
|
||||
}
|
||||
);
|
||||
);
|
||||
|
||||
|
||||
|
||||
|
@ -11,3 +11,4 @@
|
||||
</main>
|
||||
</div>
|
||||
</div>
|
||||
<app-footer></app-footer>
|
||||
|
@ -36,16 +36,6 @@ export class PageResetPasswordComponent implements OnInit {
|
||||
);
|
||||
}
|
||||
|
||||
// public onSubmit(submittedForm: any): void {
|
||||
// console.log(submittedForm.form.value);
|
||||
// const password = submittedForm.form.value['password'];
|
||||
// console.log(email);
|
||||
// this.authService.resetPassword(email, password).subscribe((resp: any) => {
|
||||
// window.alert("Votre mot de passe est bien ré-initialisé !")
|
||||
// this.router.navigate(['accueil']);
|
||||
|
||||
// });
|
||||
// }
|
||||
|
||||
public onSubmit(): void {
|
||||
console.log('value : ', this.resetForm.value);
|
||||
|
@ -14,7 +14,6 @@ export class AuthInterceptor implements HttpInterceptor {
|
||||
constructor(private tokenService: TokenService) {}
|
||||
|
||||
intercept(request: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> {
|
||||
console.log('Coucou je suis le videur ! ');
|
||||
const token = this.tokenService.getToken();
|
||||
if(token) {
|
||||
|
||||
|
@ -19,6 +19,7 @@ export class AuthService {
|
||||
this.tokenKey = environment.tokenKey;
|
||||
}
|
||||
|
||||
//methode pour s'inscrire - on passe l'objet en entier
|
||||
signup(membre: Membre): Observable<any> {
|
||||
console.log(membre);
|
||||
|
||||
@ -26,17 +27,15 @@ export class AuthService {
|
||||
|
||||
}
|
||||
|
||||
|
||||
//methode pour se connecter - on passe id et pwd
|
||||
signin(email: string, password: string): Observable<any> {
|
||||
const body = {
|
||||
email: email,
|
||||
password: password,
|
||||
};
|
||||
|
||||
console.log('Mon body : ', body);
|
||||
return this.http.post(`${this.apiUrl}/membres/sign-in`, body).pipe(
|
||||
map((x: any) => {
|
||||
console.log('Service : ', x.token);
|
||||
localStorage.setItem(this.tokenKey, x.token);
|
||||
return x; // permet de renvoyer la réponse à l'initiateur (page Signin) après le traitement du map
|
||||
})
|
||||
@ -44,10 +43,12 @@ export class AuthService {
|
||||
|
||||
}
|
||||
|
||||
//permet d'envoyer un mail à l'utilisateur pour qu'il change son pwd
|
||||
forgotPassword(membre: Membre): Observable<any> {
|
||||
return this.http.post(`${this.apiUrl}/membres/forgot-password`, membre, {responseType: "text"});
|
||||
}
|
||||
|
||||
//permet à l'utilisateur de changer son pwd
|
||||
resetPassword(membre: Membre, uuid:string): Observable<any> {
|
||||
console.log('--'+uuid+' / '+membre);
|
||||
return this.http.put(`${this.apiUrl}/membres/reset-password/${uuid}`, membre);
|
||||
|
@ -19,7 +19,7 @@ apiUrl: string;
|
||||
this.apiUrl = environment.apiUrl;
|
||||
}
|
||||
|
||||
//on affiche les menus d'une team
|
||||
//on affiche les menus d'une team - on récupère l'id de la team dans le token
|
||||
getMenu(): Observable<any> | void {
|
||||
const teamId = this.tokenService.getCurrentTeamId();
|
||||
if (teamId){
|
||||
@ -33,6 +33,7 @@ apiUrl: string;
|
||||
return this.http.get(`${this.apiUrl}/menus/` + id);
|
||||
}
|
||||
|
||||
//permet d'ajouter un menu et de lui attribuer l'id de la bonne team
|
||||
addMenu(menu: Menu): Observable<any> | void {
|
||||
console.log(menu);
|
||||
const teamId = this.tokenService.getCurrentTeamId();
|
||||
@ -44,11 +45,12 @@ apiUrl: string;
|
||||
|
||||
}
|
||||
|
||||
//suppression d'un menu
|
||||
deleteMenu(id:number): Observable<any> {
|
||||
return this.http.delete(`${this.apiUrl}/menus/delete/${id}`, {responseType:"text"});
|
||||
}
|
||||
|
||||
|
||||
//modification d'un menu - avec id du menu et id de la team
|
||||
updateMenu(menu: Menu, id:number): Observable<any> | void {
|
||||
const teamId = this.tokenService.getCurrentTeamId();
|
||||
if (teamId){
|
||||
|
@ -11,6 +11,7 @@ tokenKey = environment.tokenKey;
|
||||
|
||||
constructor() { }
|
||||
|
||||
//récupère le token
|
||||
public getToken(): string | null {
|
||||
const token = localStorage.getItem(this.tokenKey);
|
||||
if(token) {
|
||||
@ -20,17 +21,18 @@ tokenKey = environment.tokenKey;
|
||||
}
|
||||
}
|
||||
|
||||
//supprime le token
|
||||
public eraseToken(): string | null {
|
||||
const token = localStorage.getItem(this.tokenKey);
|
||||
if(token) {
|
||||
localStorage.removeItem(this.tokenKey);
|
||||
return token;
|
||||
localStorage.removeItem(this.tokenKey); //.clear() supprime tous les token du localStorage !
|
||||
return token; //utiliser remove()
|
||||
}else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//recupère l'id du membre stocké dans le token
|
||||
public getCurrentMembreId(): number | null {
|
||||
const token = this.getToken();
|
||||
if(token) {
|
||||
@ -42,6 +44,7 @@ tokenKey = environment.tokenKey;
|
||||
}
|
||||
}
|
||||
|
||||
//recupère l'id de la team stocké dans le token
|
||||
public getCurrentTeamId(): number | null {
|
||||
const token = this.getToken();
|
||||
if(token){
|
||||
@ -55,6 +58,7 @@ return null;
|
||||
|
||||
}
|
||||
|
||||
//recupère le role du membre stocké dans le token
|
||||
public getRole(): string | null {
|
||||
const token = this.getToken();
|
||||
if(token){
|
||||
|
Loading…
Reference in New Issue
Block a user