diff --git a/src/app/guards/auth.guard.ts b/src/app/guards/auth.guard.ts index f179930b2..6c15122e6 100644 --- a/src/app/guards/auth.guard.ts +++ b/src/app/guards/auth.guard.ts @@ -22,14 +22,15 @@ export class AuthGuard implements CanActivate { route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable | Promise | boolean | UrlTree { - // if user not active - if(!SessionStore.user.Inactivity) { - this.router.navigate(['/']); - return false - } - // if session doesn't exit - else if(!SessionStore.exist) { - this.router.navigate(['/']); + // if user not active or no session + if(!SessionStore.user.Inactivity || !SessionStore.exist) { + + if(SessionStore.user.LoginPreference == 'Pin') { + this.router.navigate(['/pin']); + } else { + this.router.navigate(['/']); + } + return false } else { diff --git a/src/app/guards/inactivity.guard.ts b/src/app/guards/inactivity.guard.ts index bf19b3a05..5118c8a3f 100644 --- a/src/app/guards/inactivity.guard.ts +++ b/src/app/guards/inactivity.guard.ts @@ -23,7 +23,7 @@ export class InactivityGuard implements CanActivate { console.log('hire inactinity!', state.url) - if (this.platform.is('desktop') || this.platform.is('mobileweb')) { + if ( (this.platform.is('desktop') || this.platform.is('mobileweb')) ) { if(this.p.userPermission(this.p.permissionList.Agenda.access) || this.p.userPermission(this.p.permissionList.Gabinete.access)){ this.router.navigate(['/home/events']); } @@ -56,7 +56,10 @@ export class InactivityGuard implements CanActivate { } else if(SessionStore.exist && !SessionStore.user.Inactivity && SessionStore.user.LoginPreference == 'Pin') { // inactivity login return true - } else if (SessionStore.user.LoginPreference != 'Pin' && !SessionStore.user.Inactivity) { + } else if (!SessionStore.user.Inactivity && this.platform.is('mobile')) { + // try to login + return true + } else if (SessionStore.user.LoginPreference != 'Pin' && SessionStore.hasPin) { // no right to be in this page this.router.navigateByUrl('/', { replaceUrl: true }); @@ -64,29 +67,33 @@ export class InactivityGuard implements CanActivate { }//Mobile or Tablet without session else { - if(this.p.userPermission(this.p.permissionList.Agenda.access) || this.p.userPermission(this.p.permissionList.Gabinete.access)){ - this.router.navigate(['/home/events']); + if((SessionStore?.user?.Inactivity)) { + if(this.p.userPermission(this.p.permissionList.Agenda.access) || this.p.userPermission(this.p.permissionList.Gabinete.access)){ + this.router.navigate(['/home/events']); + } + else if(this.p.userPermission(this.p.permissionList.Chat.access) && this.p.userPermission(this.p.permissionList.Actions.access)){ + this.router.navigate(['/home/chat']); + } + else if(this.p.userPermission(this.p.permissionList.Actions.access)){ + this.router.navigate(['/home/publications']); + } else { + this.alertController.create({ + cssClass: 'my-custom-class', + header: 'Utilizador sem acesso a aplicação', + buttons: [{ + text: 'Ok', + handler: () => { + + } + }] + }).then( async (alertPopup)=>{ + await alertPopup.present(); + }) + } + return false } - else if(this.p.userPermission(this.p.permissionList.Chat.access) && this.p.userPermission(this.p.permissionList.Actions.access)){ - this.router.navigate(['/home/chat']); - } - else if(this.p.userPermission(this.p.permissionList.Actions.access)){ - this.router.navigate(['/home/publications']); - } else { - this.alertController.create({ - cssClass: 'my-custom-class', - header: 'Utilizador sem acesso a aplicação', - buttons: [{ - text: 'Ok', - handler: () => { - } - }] - }).then( async (alertPopup)=>{ - await alertPopup.present(); - }) - } - return false + } } diff --git a/src/app/guards/login.guard.ts b/src/app/guards/login.guard.ts index e191945c4..b74d01a34 100644 --- a/src/app/guards/login.guard.ts +++ b/src/app/guards/login.guard.ts @@ -21,18 +21,20 @@ export class LoginGuard implements CanActivate { if(SessionStore.exist && SessionStore.user.Inactivity && SessionStore.user.LoginPreference != 'Pin' ) { + // enter app this.router.navigate(['/home/events']); return false } else if(SessionStore.exist && !SessionStore.user.Inactivity && SessionStore.user.LoginPreference == 'Pin' && SessionStore.forceToLoginWithForceToLogInWithPassword && !this.platform.is('desktop') && !this.platform.is('mobileweb')) { + // login with password while has pin SessionStore.forceToLoginWithForceToLogInWithPassword = false return true - } else if(SessionStore.exist && SessionStore.user.Inactivity && !SessionStore.hasPin && !this.platform.is('desktop') && !this.platform.is('mobileweb') ) { + } else if(SessionStore.exist && this.platform.is('mobile') && SessionStore.user.LoginPreference == 'Pin' ) { + // go to pin page this.router.navigate(['/pin']); return false } else if(SessionStore.exist && !SessionStore.user.Inactivity && SessionStore.user.LoginPreference == 'Pin' && !this.platform.is('desktop') && !this.platform.is('mobileweb')) { this.router.navigate(['/inactivity']); return false - } else { return true }