diff --git a/src/app/guards/inactivity.guard.ts b/src/app/guards/inactivity.guard.ts index d23bfb54e..a712a50e1 100644 --- a/src/app/guards/inactivity.guard.ts +++ b/src/app/guards/inactivity.guard.ts @@ -3,15 +3,20 @@ import { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, UrlTr import { Observable } from 'rxjs'; import { SessionStore } from '../store/session.service'; import { AlertController, Platform } from '@ionic/angular'; +import { PermissionService } from '../services/permission.service'; +import { PermissionList } from '../models/permissionList'; @Injectable({ providedIn: 'root' }) export class InactivityGuard implements CanActivate { + permissionList = new PermissionList(); + constructor( private router:Router, private platform: Platform, + public permissionService: PermissionService, ){} canActivate( @@ -19,17 +24,34 @@ export class InactivityGuard implements CanActivate { state: RouterStateSnapshot): Observable | Promise | boolean | UrlTree { if (this.platform.is('desktop') || this.platform.is('mobileweb')) { - this.router.navigate(['/home/events']); + if(this.permissionService.userPermission(this.permissionList.Agenda) || this.permissionService.userPermission(this.permissionList.Gabinete)){ + this.router.navigate(['/home/events']); + } + else if(this.permissionService.userPermission(this.permissionList.Chat)){ + this.router.navigate(['/home/chat']); + } + else if(this.permissionService.userPermission(this.permissionList.Actions)){ + this.router.navigate(['/home/publications']); + } return false } else if(SessionStore.exist && SessionStore.user.Inactivity && !SessionStore.hasPin ) { return true } else if(SessionStore.exist && !SessionStore.user.Inactivity) { return true - } else { - this.router.navigate(['/home/events']); + }//Mobile or Tablet without session + else { + if(this.permissionService.userPermission(this.permissionList.Agenda) || this.permissionService.userPermission(this.permissionList.Gabinete)){ + this.router.navigate(['/home/events']); + } + else if(this.permissionService.userPermission(this.permissionList.Chat)){ + this.router.navigate(['/home/chat']); + } + else if(this.permissionService.userPermission(this.permissionList.Actions)){ + this.router.navigate(['/home/publications']); + } return false } - + } - + } diff --git a/src/app/home/home.page.html b/src/app/home/home.page.html index a923fb919..80c3b0444 100644 --- a/src/app/home/home.page.html +++ b/src/app/home/home.page.html @@ -2,7 +2,7 @@ - + diff --git a/src/app/models/beast-orm.ts b/src/app/models/beast-orm.ts index 4e795c7a0..4be13f499 100644 --- a/src/app/models/beast-orm.ts +++ b/src/app/models/beast-orm.ts @@ -1,7 +1,7 @@ import { models } from 'beast-orm' import { AESEncrypt } from '../services/aesencrypt.service' -const _AESEncrypt = new AESEncrypt() +const _AESEncrypt = new AESEncrypt() const { ArrayField, JsonField} = models.indexedDB.fields export class MessageModel extends models.Model { @@ -36,10 +36,10 @@ export class DeleteMessageModel extends models.Model { models.register({ databaseName: 'chat-storage', - type: 'indexedDB', + type: 'indexedDB', version: 4, models: [MessageModel, DeleteMessageModel] }) -window['MessageModel'] = MessageModel \ No newline at end of file +window['MessageModel'] = MessageModel diff --git a/src/app/pages/chat/messages/messages.page.ts b/src/app/pages/chat/messages/messages.page.ts index 236932ab4..3c2914b19 100644 --- a/src/app/pages/chat/messages/messages.page.ts +++ b/src/app/pages/chat/messages/messages.page.ts @@ -395,7 +395,7 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy { const roomId = this.roomId let audioFile; this.storage.get('recordData').then((recordData) => { - console.log(recordData); + audioFile = recordData; if(recordData?.value?.recordDataBase64.includes('data:audio')){ this.audioRecorded = recordData?.value?.recordDataBase64; @@ -404,6 +404,8 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy { this.audioRecorded = `data:${recordData.value.mimeType};base64,${recordData?.value?.recordDataBase64}`; } + console.log(this.audioRecorded); + //Converting base64 to blob const encodedData = btoa(this.audioRecorded); const blob = this.base64toBlob(encodedData, recordData.value.mimeType) diff --git a/src/app/pages/login/login.page.ts b/src/app/pages/login/login.page.ts index 37a27b44f..9072eb405 100644 --- a/src/app/pages/login/login.page.ts +++ b/src/app/pages/login/login.page.ts @@ -12,6 +12,8 @@ import { ChangeProfileService } from 'src/app/services/change-profile.service'; import { ThemeService } from 'src/app/services/theme.service'; import { StorageService } from 'src/app/services/storage.service'; import { ChatService } from 'src/app/services/chat.service'; +import { PermissionService } from 'src/app/services/permission.service'; +import { PermissionList } from 'src/app/models/permissionList'; @Component({ selector: 'app-login', @@ -29,7 +31,8 @@ export class LoginPage implements OnInit { hasPin: boolean loginPreference: string - sessionStore = SessionStore + sessionStore = SessionStore; + permissionList = new PermissionList(); constructor( private notificatinsservice: NotificationsService, @@ -40,7 +43,8 @@ export class LoginPage implements OnInit { private clearStoreService: ClearStoreService, private changeProfileService: ChangeProfileService, public ThemeService: ThemeService, - private storageservice: StorageService + private storageservice: StorageService, + public permissionService: PermissionService, ) {} ngOnInit() { @@ -101,26 +105,29 @@ export class LoginPage implements OnInit { // login to API successfully if (attempt) { if (attempt.UserId == SessionStore.user.UserId) { + await this.authService.SetSession(attempt, this.userattempt); await this.authService.loginChat(); - await this.authService.loginToChatWs() + await this.authService.loginToChatWs(); this.getToken(); SessionStore.setInativity(true); - this.goback() + this.goback(); + } else { - this.clearStoreService.clear() - SessionStore.delete() + this.clearStoreService.clear(); + SessionStore.delete(); window.localStorage.clear(); await this.authService.SetSession(attempt, this.userattempt); - this.changeProfileService.run() + this.changeProfileService.run(); await this.authService.loginChat(); - await this.authService.loginToChatWs() + await this.authService.loginToChatWs(); this.getToken(); this.router.navigateByUrl('/pin', { replaceUrl: true }); + } } else{ @@ -141,7 +148,15 @@ export class LoginPage implements OnInit { if(pathName) { this.router.navigate([pathName]); } else { - this.router.navigate(['/home/events']); + if(this.permissionService.userPermission(this.permissionList.Agenda) || this.permissionService.userPermission(this.permissionList.Gabinete)){ + this.router.navigate(['/home/events']); + } + else if(this.permissionService.userPermission(this.permissionList.Chat)){ + this.router.navigate(['/home/chat']); + } + else if(this.permissionService.userPermission(this.permissionList.Actions)){ + this.router.navigate(['/home/publications']); + } } } diff --git a/src/app/services/auth.service.ts b/src/app/services/auth.service.ts index b2790df57..f4f015d41 100644 --- a/src/app/services/auth.service.ts +++ b/src/app/services/auth.service.ts @@ -131,7 +131,6 @@ export class AuthService { let responseChat = await this.httpService.post('login', postData).toPromise(); if(responseChat) { - console.log('Login to Rocket chat OK', responseChat); this.ValidatedUserChat = responseChat; localStorage.setItem('userChat', JSON.stringify(responseChat)); diff --git a/src/app/services/chat/message.service.ts b/src/app/services/chat/message.service.ts index 68108025a..de1e78de2 100644 --- a/src/app/services/chat/message.service.ts +++ b/src/app/services/chat/message.service.ts @@ -187,6 +187,7 @@ export class MessageService { } + if(this.NetworkServiceService.getCurrentNetworkStatus() == ConnectionStatus.Online) { this.WsChatService.send(params).then( @@ -318,6 +319,7 @@ export class MessageService { async save() { const message = this.getChatObj() + console.log(message); await MessageModel.update(message) diff --git a/src/app/shared/chat/messages/messages.page.ts b/src/app/shared/chat/messages/messages.page.ts index 3e3b4afd3..bba14b36c 100644 --- a/src/app/shared/chat/messages/messages.page.ts +++ b/src/app/shared/chat/messages/messages.page.ts @@ -253,7 +253,7 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy this.storage.get('fileName').then((fileName) => { this.lastAudioRecorded = fileName; }) - + this.storage.get('recordData').then((recordData) => { console.log(recordData); if(recordData?.value?.recordDataBase64.includes('data:audio')){ @@ -265,7 +265,7 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy }); } catch (error) {} - + } startRecording() { @@ -389,6 +389,8 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy this.audioRecorded = `data:${recordData.value.mimeType};base64,${recordData?.value?.recordDataBase64}`; } + console.log(this.audioRecorded); + //Converting base64 to blob const encodedData = btoa(this.audioRecorded); const blob = this.base64toBlob(encodedData, recordData.value.mimeType) diff --git a/src/app/shared/header/header.page.html b/src/app/shared/header/header.page.html index d0db46512..7769fc17e 100644 --- a/src/app/shared/header/header.page.html +++ b/src/app/shared/header/header.page.html @@ -66,7 +66,7 @@
-