diff --git a/src/app/OtherService/permission.service.ts b/src/app/OtherService/permission.service.ts index 390fc0617..7323fc6d4 100644 --- a/src/app/OtherService/permission.service.ts +++ b/src/app/OtherService/permission.service.ts @@ -1,12 +1,12 @@ import { Injectable } from '@angular/core'; -import { UserStore } from 'src/app/store/user.service' +import { SessionStore } from '../store/session.service'; @Injectable({ providedIn: 'root' }) export class PermissionService { - userStore = UserStore + SessionStore = SessionStore constructor() { } @@ -16,7 +16,7 @@ export class PermissionService { args = [args] } - return args.includes(this.userStore.user.Profile) + return args.includes(this.SessionStore.user.Profile) } role(args: any) { diff --git a/src/app/guards/inactivity.guard.ts b/src/app/guards/inactivity.guard.ts index cca15d62a..99f6d080b 100644 --- a/src/app/guards/inactivity.guard.ts +++ b/src/app/guards/inactivity.guard.ts @@ -16,16 +16,14 @@ export class InactivityGuard implements CanActivate { route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable | Promise | boolean | UrlTree { - alert(SessionStore.exist+ ' '+SessionStore.user.Inativity+ ' '+ SessionStore.hasPin) if(SessionStore.exist && SessionStore.user.Inativity && !SessionStore.hasPin) { - alert('stay set pin') + // alert('stay set pin') return true - } else if(SessionStore.exist && SessionStore.user.Inativity) { - alert('stay cofirm') + } else if(SessionStore.exist && !SessionStore.user.Inativity) { + // alert('stay conform') return true } else { - alert('goint') this.router.navigate(['/home/events']); return false } diff --git a/src/app/home/home.page.ts b/src/app/home/home.page.ts index 05d0709f0..923910dc0 100644 --- a/src/app/home/home.page.ts +++ b/src/app/home/home.page.ts @@ -5,7 +5,8 @@ import { Component, OnInit, NgZone } from '@angular/core'; import { Event } from '../models/event.model'; import { NotificationsService } from '../services/notifications.service'; -import { AlertController, Platform } from '@ionic/angular'; +import { WebNotificationsService } from '../services/webnotifications.service'; +import { ModalController, AlertController, AnimationController, Platform } from '@ionic/angular'; import { Router, ActivatedRoute } from '@angular/router'; import { ToDayEventStorage } from '../store/to-day-event-storage.service'; import { DocumentCounterService } from 'src/app/OtherService/document-counter.service' @@ -79,7 +80,7 @@ export class HomePage implements OnInit { private notificationsService: NotificationsService, private platform: Platform, private activeroute: ActivatedRoute, - // private network: NetworkService, + private webnotification: WebNotificationsService, public p: PermissionService, public documentCounterService: DocumentCounterService, private despachoRule: DespachoService, @@ -120,7 +121,8 @@ export class HomePage implements OnInit { this.network.checkNetworkDisconnection; */ console.log('Active route ', this.router.url) if (this.platform.is('desktop') || this.platform.is('mobileweb')) { - console.log('Notifications not supported') + this.webnotification.webconnection(); + this.webnotification.onReceviNotificationWeb(); } else { this.mobilefirstConnect(); this.notificationsService.getAndpostToken2(); diff --git a/src/app/modals/create-process/create-process.page.ts b/src/app/modals/create-process/create-process.page.ts index 7092329d1..e9e23a859 100644 --- a/src/app/modals/create-process/create-process.page.ts +++ b/src/app/modals/create-process/create-process.page.ts @@ -10,7 +10,7 @@ import { DiscartExpedientModalPage } from 'src/app/pages/gabinete-digital/discar import { ExpedienteDetailPage } from 'src/app/pages/gabinete-digital/expediente/expediente-detail/expediente-detail.page'; import { SearchList } from 'src/app/models/search-document'; import { SearchPage } from 'src/app/pages/search/search.page'; -import { User } from 'src/app/models/user.model'; +import { LoginUserRespose } from 'src/app/models/user.model'; import { AttendeesPageModal } from 'src/app/pages/events/attendees/attendees.page'; import { ToastService } from 'src/app/services/toast.service'; import { FormControl, FormGroup, Validators } from '@angular/forms'; @@ -80,7 +80,7 @@ export class CreateProcessPage implements OnInit { documents:SearchList[] = []; - loggeduser: User; + loggeduser: LoginUserRespose; toppings = new FormControl(); diff --git a/src/app/modals/document-set-up-meeting/document-set-up-meeting.page.ts b/src/app/modals/document-set-up-meeting/document-set-up-meeting.page.ts index fbf944428..34972d358 100644 --- a/src/app/modals/document-set-up-meeting/document-set-up-meeting.page.ts +++ b/src/app/modals/document-set-up-meeting/document-set-up-meeting.page.ts @@ -5,7 +5,7 @@ import { Event } from 'src/app/models/event.model' import { EventPerson } from 'src/app/models/eventperson.model'; import { SearchPage } from 'src/app/pages/search/search.page'; import { SearchDocumentDetails, SearchFolderDetails, SearchFolderDetailsDocuments, SearchList } from 'src/app/models/search-document'; -import { User } from 'src/app/models/user.model'; +import { LoginUserRespose } from 'src/app/models/user.model'; import { AuthService } from 'src/app/services/auth.service'; import { AttendeesPageModal } from 'src/app/pages/events/attendees/attendees.page'; import { ToastService } from 'src/app/services/toast.service'; @@ -82,7 +82,7 @@ export class DocumentSetUpMeetingPage implements OnInit { formLocationSatus: boolean = false; showAttendees= false; - loggeduser: User; + loggeduser: LoginUserRespose; emptyTextDescription = "Sem intervenientes selecionados"; document: SearchFolderDetails | SearchDocumentDetails | any; diff --git a/src/app/modals/profile/edit-profile/edit-profile.page.ts b/src/app/modals/profile/edit-profile/edit-profile.page.ts index 35c1f7690..f528a2584 100644 --- a/src/app/modals/profile/edit-profile/edit-profile.page.ts +++ b/src/app/modals/profile/edit-profile/edit-profile.page.ts @@ -1,7 +1,7 @@ import { Component, OnInit } from '@angular/core'; import { Router } from '@angular/router'; import { AnimationController, ModalController } from '@ionic/angular'; -import { User } from 'src/app/models/user.model'; +import { LoginUserRespose } from 'src/app/models/user.model'; import { AuthService } from 'src/app/services/auth.service'; import { FingerprintPage } from 'src/app/shared/fingerprint/fingerprint.page'; import { PinPage } from 'src/app/shared/pin/pin.page'; @@ -14,7 +14,7 @@ import { LocalstoreService } from 'src/app/store/localstore.service'; }) export class EditProfilePage implements OnInit { - loggeduser: User; + loggeduser: LoginUserRespose; userLoginPreference = '' constructor(private modalController:ModalController, diff --git a/src/app/modals/profile/profile.page.ts b/src/app/modals/profile/profile.page.ts index 2639262c7..0764e07fc 100644 --- a/src/app/modals/profile/profile.page.ts +++ b/src/app/modals/profile/profile.page.ts @@ -3,7 +3,7 @@ import { Component, OnInit, NgZone } from '@angular/core'; import { Router, NavigationExtras } from '@angular/router'; import { AnimationController, ModalController,Platform } from '@ionic/angular'; -import { User } from 'src/app/models/user.model'; +import { LoginUserRespose } from 'src/app/models/user.model'; import { AuthService } from 'src/app/services/auth.service'; import { LocalstoreService } from 'src/app/store/localstore.service'; import { EditProfilePage } from './edit-profile/edit-profile.page'; @@ -18,7 +18,7 @@ import { NotificationsService } from '../../services/notifications.service'; }) export class ProfilePage implements OnInit { - loggeduser: User; + loggeduser: LoginUserRespose; userLoginPreference = '' notificationdata: any[] = []; DataArray: Array = []; diff --git a/src/app/models/user.model.ts b/src/app/models/user.model.ts index 4f97c400b..2dfb6db30 100644 --- a/src/app/models/user.model.ts +++ b/src/app/models/user.model.ts @@ -6,7 +6,7 @@ export class UserForm { } -export class User { +export class LoginUserRespose { BasicAuthKey: string; UserId: number; Authorization: string; diff --git a/src/app/pages/agenda/agenda.page.ts b/src/app/pages/agenda/agenda.page.ts index 451b33e31..f6ed35bdb 100644 --- a/src/app/pages/agenda/agenda.page.ts +++ b/src/app/pages/agenda/agenda.page.ts @@ -22,7 +22,7 @@ import { import { CustomDateFormatter } from './custom-date-formatter.provider'; import { NewEventPage } from './new-event/new-event.page'; import { AuthService } from 'src/app/services/auth.service'; -import { User } from 'src/app/models/user.model'; +import { LoginUserRespose } from 'src/app/models/user.model'; import { DateAdapter } from '@angular/material/core'; import { ToastService } from 'src/app/services/toast.service'; import { eventSource } from 'src/app/models/agenda/eventSource'; @@ -150,7 +150,7 @@ export class AgendaPage implements OnInit { */ IsEvent: "edit" | "add" | "view"; viewingEventObject: CalendarEvent ; - loggeduser: User; + loggeduser: LoginUserRespose; constructor( private alertCtrl: AlertController, diff --git a/src/app/pages/agenda/new-event/new-event.page.ts b/src/app/pages/agenda/new-event/new-event.page.ts index 2b52cab02..77d96de29 100644 --- a/src/app/pages/agenda/new-event/new-event.page.ts +++ b/src/app/pages/agenda/new-event/new-event.page.ts @@ -4,7 +4,7 @@ import { EventAttachment } from 'src/app/models/attachment.model'; import { EventBody } from 'src/app/models/eventbody.model'; import { EventPerson } from 'src/app/models/eventperson.model'; import { SearchList } from 'src/app/models/search-document'; -import { User } from 'src/app/models/user.model'; +import { LoginUserRespose } from 'src/app/models/user.model'; import { AttachmentsService } from 'src/app/services/attachments.service'; import { AuthService } from 'src/app/services/auth.service'; import { EventsService } from 'src/app/services/events.service'; @@ -56,7 +56,7 @@ export class NewEventPage implements OnInit { documents:SearchList[] = []; - loggeduser: User; + loggeduser: LoginUserRespose; members:any; constructor( diff --git a/src/app/pages/events/events.page.ts b/src/app/pages/events/events.page.ts index 4202af52f..c2643fe1c 100644 --- a/src/app/pages/events/events.page.ts +++ b/src/app/pages/events/events.page.ts @@ -11,7 +11,7 @@ import { ModalController, Platform } from '@ionic/angular'; import { EventDetailPage } from './event-detail/event-detail.page'; import { ProcessesService } from '../../services/processes.service'; import { DailyWorkTask } from '../../models/dailyworktask.model'; -import { User } from 'src/app/models/user.model'; +import { LoginUserRespose } from 'src/app/models/user.model'; import { ToDayEventStorage } from 'src/app/store/to-day-event-storage.service'; import { ScreenOrientation } from '@ionic-native/screen-orientation/ngx'; import { ExpedienteTaskPipe } from 'src/app/pipes/expediente-task.pipe'; @@ -69,7 +69,7 @@ export class EventsPage implements OnInit { @Output() openExpedientListPage:EventEmitter = new EventEmitter(); - loggeduser: User; + loggeduser: LoginUserRespose; existingScreenOrientation: string; diff --git a/src/app/pages/gabinete-digital/despachos-pr/despachos-pr.page.ts b/src/app/pages/gabinete-digital/despachos-pr/despachos-pr.page.ts index 28aa74d78..407083190 100644 --- a/src/app/pages/gabinete-digital/despachos-pr/despachos-pr.page.ts +++ b/src/app/pages/gabinete-digital/despachos-pr/despachos-pr.page.ts @@ -12,7 +12,7 @@ import { DiscartExpedientModalPage } from 'src/app/pages/gabinete-digital/discar import { AuthService } from 'src/app/services/auth.service'; import { DespachoPage } from 'src/app/pages/gabinete-digital/despachos/despacho/despacho.page'; -import { User } from 'src/app/models/user.model'; +import { LoginUserRespose } from 'src/app/models/user.model'; import { NavigationEnd, NavigationExtras, NavigationStart, Router } from '@angular/router'; import { __awaiter } from 'tslib'; import { DespachosprStore } from 'src/app/store/despachospr-store.service'; @@ -45,7 +45,7 @@ export class DespachosPrPage implements OnInit { dicIndex = 0; inicial = false - loggeduser: User; + loggeduser: LoginUserRespose; skeletonLoader = true despachoprstore = DespachosprStore diff --git a/src/app/pages/gabinete-digital/expediente/book-meeting-modal/book-meeting-modal.page.ts b/src/app/pages/gabinete-digital/expediente/book-meeting-modal/book-meeting-modal.page.ts index 477d797d1..b525a8cd9 100644 --- a/src/app/pages/gabinete-digital/expediente/book-meeting-modal/book-meeting-modal.page.ts +++ b/src/app/pages/gabinete-digital/expediente/book-meeting-modal/book-meeting-modal.page.ts @@ -10,7 +10,7 @@ import { DiscartExpedientModalPage } from '../../discart-expedient-modal/discart import { AttachmentsService } from 'src/app/services/attachments.service'; import { SearchPage } from 'src/app/pages/search/search.page'; import { SearchList } from 'src/app/models/search-document'; -import { User } from 'src/app/models/user.model'; +import { LoginUserRespose } from 'src/app/models/user.model'; import { AuthService } from 'src/app/services/auth.service'; import { AttendeesPageModal } from 'src/app/pages/events/attendees/attendees.page'; import { ToastService } from 'src/app/services/toast.service'; @@ -112,7 +112,7 @@ export class BookMeetingModalPage implements OnInit { formLocationSatus: boolean = false; showAttendees= false; - loggeduser: User; + loggeduser: LoginUserRespose; emptyTextDescription = "Sem intervenientes selecionados"; constructor( diff --git a/src/app/pages/gabinete-digital/expediente/expedient-task-modal/expedient-task-modal.page.ts b/src/app/pages/gabinete-digital/expediente/expedient-task-modal/expedient-task-modal.page.ts index eb72c91ed..e15d9e29a 100644 --- a/src/app/pages/gabinete-digital/expediente/expedient-task-modal/expedient-task-modal.page.ts +++ b/src/app/pages/gabinete-digital/expediente/expedient-task-modal/expedient-task-modal.page.ts @@ -13,7 +13,7 @@ import { ExpedienteDetailPage } from '../expediente-detail/expediente-detail.pag import { AlertService } from 'src/app/services/alert.service'; import { SearchPage } from 'src/app/pages/search/search.page'; import { SearchList } from 'src/app/models/search-document'; -import { User } from 'src/app/models/user.model'; +import { LoginUserRespose } from 'src/app/models/user.model'; import { ToastService } from 'src/app/services/toast.service'; import { AttendeesPageModal } from 'src/app/pages/events/attendees/attendees.page'; import { FormControl, FormGroup, Validators } from '@angular/forms'; @@ -84,7 +84,7 @@ export class ExpedientTaskModalPage implements OnInit { taskResult: any = {} - loggeduser: User; + loggeduser: LoginUserRespose; toppings = new FormControl(); Form: FormGroup; diff --git a/src/app/pages/gabinete-digital/expedientes-pr/expediente-pr/expediente-pr.page.ts b/src/app/pages/gabinete-digital/expedientes-pr/expediente-pr/expediente-pr.page.ts index 0b2724440..cc62a8e01 100644 --- a/src/app/pages/gabinete-digital/expedientes-pr/expediente-pr/expediente-pr.page.ts +++ b/src/app/pages/gabinete-digital/expedientes-pr/expediente-pr/expediente-pr.page.ts @@ -10,7 +10,7 @@ import { ViewEventPage } from 'src/app/pages/agenda/view-event/view-event.page'; import { DiscartExpedientModalPage } from '../../discart-expedient-modal/discart-expedient-modal.page'; import { ExpedientTaskModalPage } from '../../expediente/expedient-task-modal/expedient-task-modal.page'; import { BookMeetingModalPage } from '../../expediente/book-meeting-modal/book-meeting-modal.page'; -import { User } from 'src/app/models/user.model'; +import { LoginUserRespose } from 'src/app/models/user.model'; import { AuthService } from 'src/app/services/auth.service'; import { AddNotePage } from 'src/app/modals/add-note/add-note.page'; import { OptsExpedientePrPage } from 'src/app/shared/popover/opts-expediente-pr/opts-expediente-pr.page'; @@ -40,7 +40,7 @@ export class ExpedientePrPage implements OnInit { intervenientes: any; cc: any = []; - loggeduser: User; + loggeduser: LoginUserRespose; documents: SearchList[] = []; attachments:any; diff --git a/src/app/pages/gabinete-digital/expedientes-pr/expedientes-pr.page.ts b/src/app/pages/gabinete-digital/expedientes-pr/expedientes-pr.page.ts index f2aa80b6d..2ee19036a 100644 --- a/src/app/pages/gabinete-digital/expedientes-pr/expedientes-pr.page.ts +++ b/src/app/pages/gabinete-digital/expedientes-pr/expedientes-pr.page.ts @@ -6,7 +6,7 @@ import { ProcessesService } from 'src/app/services/processes.service'; import { ModalController } from '@ionic/angular'; import { ExpedienteDetailPage } from 'src/app/pages/gabinete-digital/expediente/expediente-detail/expediente-detail.page'; import { AlertService } from 'src/app/services/alert.service'; -import { User } from 'src/app/models/user.model'; +import { LoginUserRespose } from 'src/app/models/user.model'; import { AuthService } from 'src/app/services/auth.service'; import { Location } from '@angular/common' import { ExpedienteGdStore } from 'src/app/store/expedientegd-store.service'; @@ -25,7 +25,7 @@ export class ExpedientesPrPage implements OnInit { serialNumber:string; showLoader:boolean; - loggeduser: User; + loggeduser: LoginUserRespose; @Output() openExpedientDetail:EventEmitter = new EventEmitter(); skeletonLoader = true diff --git a/src/app/pages/gabinete-digital/gabinete-digital.page.ts b/src/app/pages/gabinete-digital/gabinete-digital.page.ts index c1c40bd29..e19ec35ec 100644 --- a/src/app/pages/gabinete-digital/gabinete-digital.page.ts +++ b/src/app/pages/gabinete-digital/gabinete-digital.page.ts @@ -3,7 +3,7 @@ import { ProcessesService } from 'src/app/services/processes.service'; import { ModalController } from '@ionic/angular'; import { ActivatedRoute, NavigationEnd, NavigationExtras, Router } from '@angular/router'; import { AuthService } from 'src/app/services/auth.service'; -import { User } from 'src/app/models/user.model'; +import { LoginUserRespose } from 'src/app/models/user.model'; import { ExpedientsPage } from 'src/app/shared/gabinete-digital/expedients/expedients.page'; import { PendentesPage } from 'src/app/shared/gabinete-digital/pendentes/pendentes.page'; import { EventsToApprovePage } from 'src/app/shared/gabinete-digital/events-to-approve/events-to-approve.page'; @@ -83,7 +83,7 @@ export class GabineteDigitalPage implements OnInit, DoCheck { serialNumber:string; - loggeduser: User; + loggeduser: LoginUserRespose; mdgpr = "MDGPR"; pr = "PR"; diff --git a/src/app/pages/gabinete-digital/pedidos/pedido/pedido.page.ts b/src/app/pages/gabinete-digital/pedidos/pedido/pedido.page.ts index 5d967d6a3..b4efdf65b 100644 --- a/src/app/pages/gabinete-digital/pedidos/pedido/pedido.page.ts +++ b/src/app/pages/gabinete-digital/pedidos/pedido/pedido.page.ts @@ -13,7 +13,7 @@ import { DarParecerPage } from 'src/app/modals/dar-parecer/dar-parecer.page'; import { AddNotePage } from 'src/app/modals/add-note/add-note.page'; import { RequestOptionsPage } from 'src/app/shared/popover/request-options/request-options.page'; import { AuthService } from 'src/app/services/auth.service'; -import { User } from 'src/app/models/user.model'; +import { LoginUserRespose } from 'src/app/models/user.model'; import { ToastService } from 'src/app/services/toast.service'; import { ForwardPage } from 'src/app/modals/forward/forward.page'; import { PermissionService } from 'src/app/OtherService/permission.service'; @@ -40,7 +40,7 @@ export class PedidoPage implements OnInit { caller: string; intervenientes: any; cc: any = []; - loggeduser: User; + loggeduser: LoginUserRespose; constructor(private activatedRoute: ActivatedRoute, private processes: ProcessesService, diff --git a/src/app/pages/gabinete-digital/pendentes/pendentes.page.ts b/src/app/pages/gabinete-digital/pendentes/pendentes.page.ts index fcf152938..b22ac0e2a 100644 --- a/src/app/pages/gabinete-digital/pendentes/pendentes.page.ts +++ b/src/app/pages/gabinete-digital/pendentes/pendentes.page.ts @@ -7,7 +7,7 @@ import { ProcessesService } from 'src/app/services/processes.service'; import { formatDate } from '@angular/common'; import { AlertService } from 'src/app/services/alert.service'; import { PendentesStore } from 'src/app/store/pendestes-store.service'; -import { User } from 'src/app/models/user.model'; +import { LoginUserRespose } from 'src/app/models/user.model'; import { AuthService } from 'src/app/services/auth.service'; import { CustomTaskPipe } from 'src/app/pipes/custom-task.pipe'; @@ -24,7 +24,7 @@ export class PendentesPage implements OnInit { serialNumber:string; totalDocs:any; showLoader: boolean; - loggeduser: User; + loggeduser: LoginUserRespose; @Input() profile:string; segment:string; diff --git a/src/app/pages/inactivity/inactivity.page.html b/src/app/pages/inactivity/inactivity.page.html index 16f8fb80a..cb324bf6c 100644 --- a/src/app/pages/inactivity/inactivity.page.html +++ b/src/app/pages/inactivity/inactivity.page.html @@ -3,7 +3,7 @@
-
+
@@ -35,7 +35,7 @@
-
+
diff --git a/src/app/pages/inactivity/inactivity.page.scss b/src/app/pages/inactivity/inactivity.page.scss index b19df02df..b7c588f44 100644 --- a/src/app/pages/inactivity/inactivity.page.scss +++ b/src/app/pages/inactivity/inactivity.page.scss @@ -17,13 +17,17 @@ ion-content{ background: white !important; } + .wrapper{ - width: 400px; + /* width: 400px; */ height: auto; padding: 0 !important; - margin: auto !important; + /* margin: auto !important; */ overflow: auto; + width: 100%; + background: linear-gradient(180deg, #42B9FE 0%, #0782C9 100%) !important; } + .logo{ width: 400px; height: 400px; diff --git a/src/app/pages/inactivity/inactivity.page.ts b/src/app/pages/inactivity/inactivity.page.ts index 28c522474..0c12ffe69 100644 --- a/src/app/pages/inactivity/inactivity.page.ts +++ b/src/app/pages/inactivity/inactivity.page.ts @@ -45,6 +45,58 @@ export class InactivityPage implements OnInit { } + //Function to validade the login inputs + validateUsername() { + return ( + this.username.trim().length > 0 + ); + } + + validatePassword() { + return ( + this.password.trim().length > 0 + ); + } + + async Login() { + + if (this.validateUsername()) { + if(this.validatePassword()) { + + this.userattempt = { + username: this.username, + password: this.password, + domainName: environment.domain, + BasicAuthKey: "" + } + let attempt = await this.authService.login(this.userattempt, false) + + if (attempt) { + + // if current attemp is equal to the current user + if (attempt.UserId == SessionStore.user.UserId) { + await this.authService.SetSession(attempt, this.userattempt); + await this.authService.loginChat(this.userattempt); + await this.getToken(); + + this.router.navigate(['/home/events']); + } else { + SessionStore.delete() + await this.authService.SetSession(attempt, this.userattempt); + } + + + } + } + else { + this.toastService.badRequest('Por favor, insira a sua palavra-passe'); + } + } + else { + this.toastService.badRequest('Por favor, insira o seu nome de utilizador'); + } + } + getToken() { this.notificatinsservice.getAndpostToken(this.username); } diff --git a/src/app/pages/login/login.page.ts b/src/app/pages/login/login.page.ts index d573ebad0..eacaad6d2 100644 --- a/src/app/pages/login/login.page.ts +++ b/src/app/pages/login/login.page.ts @@ -84,26 +84,8 @@ export class LoginPage implements OnInit { await alert.present(); } - /* loginRocketChat() { - - let postData = { - "user": this.username, - "password": this.password, - } - - this.authService.loginChat(postData).subscribe((res: any) => { - console.log(res.data); - this.storageService.store(AuthConnstants.AUTH, res.data); - console.log('Login to Rocket chat OK'); - }, (error: any) => { - console.log('Network error'); - this.presentAlert('Network error ' + error); - }); - } */ - getToken() { this.notificatinsservice.getAndpostToken(this.username); - //console.log('HERE'); } async Login() { @@ -120,8 +102,8 @@ export class LoginPage implements OnInit { let attempt = await this.authService.login(this.userattempt) if (attempt) { - this.authService.loginChat(this.userattempt); - this.getToken(); + await this.authService.loginChat(this.userattempt); + await this.getToken(); this.router.navigate(['/pin']); diff --git a/src/app/store/user.service.spec.ts b/src/app/services/aesencrypt.service.spec.ts similarity index 56% rename from src/app/store/user.service.spec.ts rename to src/app/services/aesencrypt.service.spec.ts index 3f804c9fd..081c16cb1 100644 --- a/src/app/store/user.service.spec.ts +++ b/src/app/services/aesencrypt.service.spec.ts @@ -1,13 +1,13 @@ import { TestBed } from '@angular/core/testing'; -import { UserService } from './user.service'; +import { AESEncrypt } from './aesencrypt.service'; -describe('UserService', () => { - let service: UserService; +describe('AuthService', () => { + let service: AESEncrypt; beforeEach(() => { TestBed.configureTestingModule({}); - service = TestBed.inject(UserService); + service = TestBed.inject(AESEncrypt); }); it('should be created', () => { diff --git a/src/app/services/aesencrypt.service.ts b/src/app/services/aesencrypt.service.ts new file mode 100644 index 000000000..2a9f33289 --- /dev/null +++ b/src/app/services/aesencrypt.service.ts @@ -0,0 +1,60 @@ +import { Injectable } from '@angular/core'; +import CryptoJS from 'crypto-js'; + +@Injectable({ + providedIn: 'root' +}) +export class AESEncrypt { + + ivArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16] + constructor() { } + + encrypt(encryptData, pass) { + var text = "Pro-it te espera!!!!"; + //Creating the Vector Key + var iv = CryptoJS.enc.Hex.parse(this.toHexString(this.ivArray)); + //Encoding the Password in from UTF8 to byte array + var Pass = CryptoJS.enc.Utf8.parse(pass); + //Encoding the Salt in from UTF8 to byte array + var Salt = CryptoJS.enc.Utf8.parse("gabinetedigital"); + //Creating the key in PBKDF2 format to be used during the decryption + var key128Bits1000Iterations = CryptoJS.PBKDF2(Pass.toString(CryptoJS.enc.Utf8), Salt, { keySize: 128 / 32, iterations: 1000 }); + + //Decrypting the string contained in cipherParams using the PBKDF2 key + var decrypted = CryptoJS.AES.encrypt(encryptData, key128Bits1000Iterations, { mode: CryptoJS.mode.CBC, iv: iv, padding: CryptoJS.pad.Pkcs7 }); + console.log('AES encrypt',decrypted.toString()); + + return decrypted.toString(); + } + + decrypt(deceyptData,pass) { + + //Creating the Vector Key + var iv = CryptoJS.enc.Hex.parse(this.toHexString(this.ivArray)); + //Encoding the Password in from UTF8 to byte array + var Pass = CryptoJS.enc.Utf8.parse(pass); + //Encoding the Salt in from UTF8 to byte array + var Salt = CryptoJS.enc.Utf8.parse("gabinetedigital"); + //Creating the key in PBKDF2 format to be used during the decryption + var key128Bits1000Iterations = CryptoJS.PBKDF2(Pass.toString(CryptoJS.enc.Utf8), Salt, { keySize: 128 / 32, iterations: 1000 }); + //Enclosing the test to be decrypted in a CipherParams object as supported by the CryptoJS libarary + var cipherParams = CryptoJS.lib.CipherParams.create({ + ciphertext: CryptoJS.enc.Base64.parse(deceyptData) + }) + + //Decrypting the string contained in cipherParams using the PBKDF2 key + var decrypted = CryptoJS.AES.decrypt(cipherParams, key128Bits1000Iterations, { mode: CryptoJS.mode.CBC, iv: iv, padding: CryptoJS.pad.Pkcs7 }); + console.log('AES decrypt',decrypted.toString(CryptoJS.enc.Utf8)); + + return decrypted.toString(CryptoJS.enc.Utf8); + } + + toHexString(byteArray) { + return Array.from(byteArray, (value: any) => { + return ('0' + (value & 0xFF).toString(16)).slice(-2); + }).join('') + } + +} + + diff --git a/src/app/services/attachments.service.ts b/src/app/services/attachments.service.ts index 9e66f7906..ab80bc293 100644 --- a/src/app/services/attachments.service.ts +++ b/src/app/services/attachments.service.ts @@ -4,14 +4,14 @@ import { Observable } from 'rxjs'; import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http'; import { environment } from 'src/environments/environment'; import { AuthService } from '../services/auth.service'; -import { User } from '../models/user.model'; +import { LoginUserRespose } from '../models/user.model'; @Injectable({ providedIn: 'root' }) export class AttachmentsService { - loggeduser: User; + loggeduser: LoginUserRespose; headers: HttpHeaders; constructor(private http: HttpClient, user: AuthService) { diff --git a/src/app/services/auth.service.ts b/src/app/services/auth.service.ts index 3a2268f50..b5339cc31 100644 --- a/src/app/services/auth.service.ts +++ b/src/app/services/auth.service.ts @@ -1,18 +1,14 @@ import { Injectable } from '@angular/core'; import { StorageService } from './storage.service'; -import { Router } from '@angular/router'; -import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http'; -import { User, UserForm, UserSession } from '../models/user.model'; +import { HttpClient, HttpHeaders } from '@angular/common/http'; +import { LoginUserRespose, UserForm, UserSession } from '../models/user.model'; import { environment } from 'src/environments/environment'; import { HttpService } from './http.service'; -import { BehaviorSubject, Observable } from 'rxjs'; +import { BehaviorSubject } from 'rxjs'; import { AuthConnstants } from '../config/auth-constants'; import { AlertController } from '@ionic/angular'; -import { LocalstoreService } from '../store/localstore.service'; -import { ToastService } from './toast.service'; -import { UserStore } from 'src/app/store/user.service' -import { SHA1, SHA256, AES, enc } from 'crypto-js' import { SessionStore } from '../store/session.service'; +import { AESEncrypt } from '../services/aesencrypt.service'; @Injectable({ providedIn: 'root' @@ -21,19 +17,16 @@ export class AuthService { userData$ = new BehaviorSubject(''); userId$ = new BehaviorSubject(''); headers: HttpHeaders; - public ValidatedUser: User; + public ValidatedUser: UserSession; public ValidatedUserChat:any; opts:any; - userStore = UserStore constructor( private http: HttpClient, private httpService: HttpService, private storageService:StorageService, - private router:Router, public alertController: AlertController, - private localstoreService: LocalstoreService, - private toastService: ToastService, + private aesencrypt: AESEncrypt, ) { this.headers = new HttpHeaders(); @@ -48,12 +41,8 @@ export class AuthService { } - - async login(user: UserForm): Promise { - // user.BasicAuthKey = 'Basic ' + btoa(user.username + '@' + user.domainName + ':' + user.password); - user.BasicAuthKey = 'Basic ' + btoa(user.username + ':' + user.password); //conversão em base64 das credenciais inseridas - console.log('Basic ' + btoa(user.username + ':' + SHA1(user.password).toString())); //conversão em base64 das credenciais inseridas - + async login(user: UserForm, saveSession = true): Promise { + user.BasicAuthKey = 'Basic ' + btoa(user.username + ':' + this.aesencrypt.encrypt(user.password,user.username )); this.headers = this.headers.set('Authorization',user.BasicAuthKey); this.opts = { @@ -63,41 +52,39 @@ export class AuthService { let response: any; try { - response = await this.http.post(environment.apiURL + "UserAuthentication/Login", '', this.opts).toPromise(); - const session: UserSession = Object.assign(new UserSession(), response) - - - if (response) { - if( session.RoleID == 100000014) { - session.Profile = 'PR' - } else if(session.RoleID == 100000011) { - session.Profile = 'MDGPR' - } - session.BasicAuthKey = user.BasicAuthKey - this.ValidatedUser = response; - - console.log('session', session) - - this.userStore.reset(session) - SessionStore.reset(session) - - this.storageService.store(AuthConnstants.USER, response); - - return true; + response = await this.http.post(environment.apiURL + "UserAuthentication/Login", '', this.opts).toPromise(); + if(saveSession) { + this.SetSession(response, user) } - } catch (error) { - if(error.status == 0) { - this.toastService.badRequest('Verifique a sua conexão com a internet e volte a tentar') - } else { - this.toastService.badRequest('O email e/ou palavra-passe estão incorretas ou verifique a sua conexão com a internet e volte a tentar'); - } - return false; + + } finally { + return response } } - logout(){ + SetSession(response: LoginUserRespose, user:UserForm) { + const session: UserSession = Object.assign(SessionStore.user, response) + + if (response) { + if( session.RoleID == 100000014) { + session.Profile = 'PR' + } else if(session.RoleID == 100000011) { + session.Profile = 'MDGPR' + } + + session.BasicAuthKey = user.BasicAuthKey + + SessionStore.reset(session) + this.ValidatedUser = SessionStore.user; + this.storageService.store(AuthConnstants.USER, response); + + return true; + } + } + + logout() { this.ValidatedUser = null; } @@ -125,27 +112,12 @@ export class AuthService { } } - - - //Get user data from RocketChat | global object getUserData(){ this.storageService.get(AuthConnstants.AUTH).then(res=>{ this.userData$.next(res); }); } - //Get user Id | global object - getUserId(){ - /* this.storageService.get(AuthConnstants.USER).then(res=>{ - this.userId$.next(res); - }); */ - } - - getProfile(){ - /* this.storageService.get(AuthConnstants.PROFILE).then(res=>{ - return res; - }); */ - } logoutChat(){ //this.storageService.clear(); diff --git a/src/app/services/contacts.service.ts b/src/app/services/contacts.service.ts index 0c98d8725..4564475a5 100644 --- a/src/app/services/contacts.service.ts +++ b/src/app/services/contacts.service.ts @@ -4,7 +4,7 @@ import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http'; import { Observable } from 'rxjs'; import { environment } from 'src/environments/environment'; import { AuthService } from '../services/auth.service'; -import { User } from '../models/user.model'; +import { LoginUserRespose } from '../models/user.model'; @Injectable({ providedIn: 'root' @@ -12,7 +12,7 @@ import { User } from '../models/user.model'; export class ContactsService { authheader = {}; - loggeduser: User; + loggeduser: LoginUserRespose; headers: HttpHeaders; constructor(private http: HttpClient, user: AuthService) { diff --git a/src/app/services/events.service.ts b/src/app/services/events.service.ts index ae4fa4f18..79769d4c7 100644 --- a/src/app/services/events.service.ts +++ b/src/app/services/events.service.ts @@ -4,7 +4,7 @@ import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http'; import { Observable } from 'rxjs'; import { environment } from 'src/environments/environment'; import { AuthService } from '../services/auth.service'; -import { User } from '../models/user.model'; +import { LoginUserRespose } from '../models/user.model'; @Injectable({ @@ -13,7 +13,7 @@ import { User } from '../models/user.model'; export class EventsService { authheader = {}; - loggeduser: User; + loggeduser: LoginUserRespose; headers: HttpHeaders; headersPrOficial: HttpHeaders; diff --git a/src/app/services/inativity.service.ts b/src/app/services/inativity.service.ts index e34c7be82..1ea52ceca 100644 --- a/src/app/services/inativity.service.ts +++ b/src/app/services/inativity.service.ts @@ -29,7 +29,7 @@ export class InativityService { function resetTimer() { clearTimeout(t); - t = setTimeout(userIsNotActive, 60000); // time is in milliseconds + t = setTimeout(userIsNotActive, 60000 * 5); // time is in milliseconds } } } diff --git a/src/app/services/organic-entity.service.ts b/src/app/services/organic-entity.service.ts index 42f036475..c1703a6a0 100644 --- a/src/app/services/organic-entity.service.ts +++ b/src/app/services/organic-entity.service.ts @@ -4,7 +4,7 @@ import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http'; import { Observable } from 'rxjs'; import { environment } from 'src/environments/environment'; import { AuthService } from '../services/auth.service'; -import { User } from '../models/user.model'; +import { LoginUserRespose } from '../models/user.model'; import { OrganicEntity } from 'src/app/models/organic-entity.model'; @Injectable({ @@ -13,7 +13,7 @@ import { OrganicEntity } from 'src/app/models/organic-entity.model'; export class OrganicEntityService { authheader = {}; - loggeduser: User; + loggeduser: LoginUserRespose; headers: HttpHeaders; constructor(private http: HttpClient, user: AuthService) { diff --git a/src/app/services/processes.service.ts b/src/app/services/processes.service.ts index 71c7bc74b..eb640891e 100644 --- a/src/app/services/processes.service.ts +++ b/src/app/services/processes.service.ts @@ -1,7 +1,7 @@ import { Injectable } from '@angular/core'; import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http'; import { AuthService } from '../services/auth.service'; -import { User } from '../models/user.model'; +import { LoginUserRespose } from '../models/user.model'; import { environment } from 'src/environments/environment'; import { Observable } from 'rxjs'; import { DocumentSetUpMeeting } from '../models/CallMeeting'; @@ -15,7 +15,7 @@ import { GetTasksListType } from '../models/GetTasksListType'; export class ProcessesService { authheader = {}; - loggeduser: User; + loggeduser: LoginUserRespose; headers: HttpHeaders; constructor(private http: HttpClient, user: AuthService) { diff --git a/src/app/services/publications.service.ts b/src/app/services/publications.service.ts index 8ca9e4145..3d14a1344 100644 --- a/src/app/services/publications.service.ts +++ b/src/app/services/publications.service.ts @@ -2,7 +2,7 @@ import { Injectable } from '@angular/core'; import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http'; import { environment } from 'src/environments/environment'; import { AuthService } from '../services/auth.service'; -import { User } from '../models/user.model'; +import { LoginUserRespose } from '../models/user.model'; import { Observable, throwError } from 'rxjs'; import { catchError } from 'rxjs/operators' import { Publication } from '../models/publication'; @@ -13,7 +13,7 @@ import { Publication } from '../models/publication'; export class PublicationsService { authheader = {}; - loggeduser: User; + loggeduser: LoginUserRespose; headers: HttpHeaders; constructor(private http: HttpClient, user: AuthService) { diff --git a/src/app/services/search.service.ts b/src/app/services/search.service.ts index 13b6786cb..9901ca7e8 100644 --- a/src/app/services/search.service.ts +++ b/src/app/services/search.service.ts @@ -4,7 +4,7 @@ import { Event } from '../models/event.model'; import { from, Observable } from 'rxjs'; import { environment } from 'src/environments/environment'; import { AuthService } from '../services/auth.service'; -import { User } from '../models/user.model'; +import { LoginUserRespose } from '../models/user.model'; import { EventSearch } from "src/app/models/event-search"; import { TopSearch } from 'src/app/models/top-search'; @@ -14,7 +14,7 @@ import { TopSearch } from 'src/app/models/top-search'; export class SearchService { // state authheader = {}; - loggeduser: User; + loggeduser: LoginUserRespose; headers: HttpHeaders; categories= Array; diff --git a/src/app/services/webnotifications.service.ts b/src/app/services/webnotifications.service.ts index c528bc51c..ec446a1e8 100644 --- a/src/app/services/webnotifications.service.ts +++ b/src/app/services/webnotifications.service.ts @@ -32,10 +32,10 @@ export class WebNotificationsService { webconnection() { - MFPPush.initialize({ + /* MFPPush.initialize({ appId: "com.gpr.gabinetedigital", mfpContextRoot: "/mfp", - }); + }); */ MFPPush.registerDevice() .then((res) => { @@ -72,7 +72,9 @@ async onReceviNotificationWeb() { if(message.actionName){ //this.notificatinsRoutes(data); + console.log("Web notification") } else { + console.log("Web notification") //this.toastService.notificationMessage(message.alert,this.notificatinsRoutes, data); } diff --git a/src/app/shared/agenda/event-list/event-list.page.ts b/src/app/shared/agenda/event-list/event-list.page.ts index 784be3682..73d6f0bb3 100644 --- a/src/app/shared/agenda/event-list/event-list.page.ts +++ b/src/app/shared/agenda/event-list/event-list.page.ts @@ -6,7 +6,7 @@ import { ProcessesService } from 'src/app/services/processes.service'; import { ModalController, NavParams } from '@ionic/angular'; import { NavigationEnd, Router } from '@angular/router'; import { AuthService } from 'src/app/services/auth.service'; -import { User } from 'src/app/models/user.model'; +import { LoginUserRespose } from 'src/app/models/user.model'; @Component({ selector: 'app-event-list', @@ -23,7 +23,7 @@ export class EventListPage implements OnInit { eventBody: EventBody; categories: string[]; serialnumber:string; - loggeduser: User; + loggeduser: LoginUserRespose; segment:string; @Input() profile:string; diff --git a/src/app/shared/agenda/new-event/new-event.page.ts b/src/app/shared/agenda/new-event/new-event.page.ts index 755dc8789..c3976d055 100644 --- a/src/app/shared/agenda/new-event/new-event.page.ts +++ b/src/app/shared/agenda/new-event/new-event.page.ts @@ -11,7 +11,7 @@ import { SearchList } from "src/app/models/search-document"; import { EventAttachment } from 'src/app/models/attachment.model'; import { ToastService } from 'src/app/services/toast.service'; -import { User } from 'src/app/models/user.model'; +import { LoginUserRespose } from 'src/app/models/user.model'; import { AuthService } from 'src/app/services/auth.service'; import {DateAdapter} from '@angular/material/core'; @@ -87,7 +87,7 @@ export class NewEventPage implements OnInit { // minDate: string; - loggeduser: User; + loggeduser: LoginUserRespose; @ViewChild('picker') picker: any; @ViewChild('fim') fim: any; @ViewChild('inicio') inicio: any; diff --git a/src/app/shared/gabinete-digital/all-processes/all-processes.page.ts b/src/app/shared/gabinete-digital/all-processes/all-processes.page.ts index c31a6d9e8..0854e0a57 100644 --- a/src/app/shared/gabinete-digital/all-processes/all-processes.page.ts +++ b/src/app/shared/gabinete-digital/all-processes/all-processes.page.ts @@ -1,6 +1,6 @@ import { Component, OnInit } from '@angular/core'; import { Router } from '@angular/router'; -import { User } from 'src/app/models/user.model'; +import { LoginUserRespose } from 'src/app/models/user.model'; import { AuthService } from 'src/app/services/auth.service'; import { ProcessesService } from 'src/app/services/processes.service'; import { removeDuplicate } from 'src/plugin/removeDuplicate.js'; @@ -14,7 +14,7 @@ export class AllProcessesPage implements OnInit { skeletonLoader = true; allProcessesList:any[] = []; - loggeduser: User; + loggeduser: LoginUserRespose; constructor( private processesService: ProcessesService, diff --git a/src/app/shared/gabinete-digital/despachos-pr/despachos-pr.page.ts b/src/app/shared/gabinete-digital/despachos-pr/despachos-pr.page.ts index d1ebcf448..cbc419510 100644 --- a/src/app/shared/gabinete-digital/despachos-pr/despachos-pr.page.ts +++ b/src/app/shared/gabinete-digital/despachos-pr/despachos-pr.page.ts @@ -4,7 +4,7 @@ import { customTask} from '../../../models/dailyworktask.model'; import { ProcessesService } from 'src/app/services/processes.service'; import { AuthService } from 'src/app/services/auth.service'; -import { User } from 'src/app/models/user.model'; +import { LoginUserRespose } from 'src/app/models/user.model'; import { NavigationStart, Router } from '@angular/router'; import { DespachosprStore } from 'src/app/store/despachospr-store.service'; import { CustomTaskPipe } from 'src/app/pipes/custom-task.pipe'; @@ -19,7 +19,7 @@ export class DespachosPrPage implements OnInit { customTaskPipe = new CustomTaskPipe() skeletonLoader = true - loggeduser: User; + loggeduser: LoginUserRespose; despachosprstore = DespachosprStore; constructor ( diff --git a/src/app/shared/gabinete-digital/events-to-approve/events-to-approve.page.ts b/src/app/shared/gabinete-digital/events-to-approve/events-to-approve.page.ts index 3fddf402a..4420689ea 100644 --- a/src/app/shared/gabinete-digital/events-to-approve/events-to-approve.page.ts +++ b/src/app/shared/gabinete-digital/events-to-approve/events-to-approve.page.ts @@ -4,7 +4,7 @@ import { EventPerson } from 'src/app/models/eventperson.model'; import { ProcessesService } from 'src/app/services/processes.service'; import { ModalController } from '@ionic/angular'; import { NavigationStart, Router } from '@angular/router'; -import { User } from 'src/app/models/user.model'; +import { LoginUserRespose } from 'src/app/models/user.model'; import { AuthService } from 'src/app/services/auth.service'; import { EventoAprovacaoStore } from 'src/app/store/eventoaprovacao-store.service'; @@ -22,7 +22,7 @@ export class EventsToApprovePage implements OnInit { eventBody: EventBody; categories: string[]; serialnumber:string; - loggeduser: User; + loggeduser: LoginUserRespose; segment:string; eventaprovacaostore = EventoAprovacaoStore; diff --git a/src/app/shared/gabinete-digital/expedientes-pr/expedientes-pr.page.ts b/src/app/shared/gabinete-digital/expedientes-pr/expedientes-pr.page.ts index d25fd250e..d008b112a 100644 --- a/src/app/shared/gabinete-digital/expedientes-pr/expedientes-pr.page.ts +++ b/src/app/shared/gabinete-digital/expedientes-pr/expedientes-pr.page.ts @@ -4,7 +4,7 @@ import { customTask, DailyWorkTask } from '../../../models/dailyworktask.model'; import { ProcessesService } from 'src/app/services/processes.service'; import { ModalController } from '@ionic/angular'; import { AlertService } from 'src/app/services/alert.service'; -import { User } from 'src/app/models/user.model'; +import { LoginUserRespose } from 'src/app/models/user.model'; import { AuthService } from 'src/app/services/auth.service'; import { CustomTaskPipe } from 'src/app/pipes/custom-task.pipe'; import { ExpedienteGdStore } from 'src/app/store/expedientegd-store.service'; @@ -24,7 +24,7 @@ export class ExpedientesPrPage implements OnInit { customTaskPipe = new CustomTaskPipe() expedienteTaskPipe = new ExpedienteTaskPipe() - loggeduser: User; + loggeduser: LoginUserRespose; @Output() openExpedientDetail:EventEmitter = new EventEmitter(); constructor( diff --git a/src/app/shared/gabinete-digital/pendentes/pendentes.page.ts b/src/app/shared/gabinete-digital/pendentes/pendentes.page.ts index 93477dfb9..f620631ea 100644 --- a/src/app/shared/gabinete-digital/pendentes/pendentes.page.ts +++ b/src/app/shared/gabinete-digital/pendentes/pendentes.page.ts @@ -5,7 +5,7 @@ import { customTask} from '../../../models/dailyworktask.model'; import { ProcessesService } from 'src/app/services/processes.service'; import { AuthService } from 'src/app/services/auth.service'; import { PendentesStore } from 'src/app/store/pendestes-store.service'; -import { User } from 'src/app/models/user.model'; +import { LoginUserRespose } from 'src/app/models/user.model'; import { CustomTaskPipe } from 'src/app/pipes/custom-task.pipe'; @Component({ @@ -18,7 +18,7 @@ export class PendentesPage implements OnInit { skeletonLoader: boolean = false; pendentesstore = PendentesStore; customTaskPipe = new CustomTaskPipe() - loggeduser: User; + loggeduser: LoginUserRespose; @Input() profile:string; segment:string; diff --git a/src/app/shared/header-pr/header-pr.page.ts b/src/app/shared/header-pr/header-pr.page.ts index ea0fbe3c3..6f6179c2d 100644 --- a/src/app/shared/header-pr/header-pr.page.ts +++ b/src/app/shared/header-pr/header-pr.page.ts @@ -1,5 +1,5 @@ import { Component, OnInit } from '@angular/core'; -import { User } from 'src/app/models/user.model'; +import { LoginUserRespose } from 'src/app/models/user.model'; import { AuthService } from 'src/app/services/auth.service'; @Component({ @@ -9,7 +9,7 @@ import { AuthService } from 'src/app/services/auth.service'; }) export class HeaderPrPage implements OnInit { - loggeduser: User; + loggeduser: LoginUserRespose; constructor(authService: AuthService) { diff --git a/src/app/shared/header/header.page.ts b/src/app/shared/header/header.page.ts index 1ae605b4f..19172c015 100644 --- a/src/app/shared/header/header.page.ts +++ b/src/app/shared/header/header.page.ts @@ -2,12 +2,10 @@ import { Component, OnInit } from '@angular/core'; import { AnimationController, ModalController,Platform } from '@ionic/angular'; import { SearchPage } from 'src/app/pages/search/search.page'; import { Router } from '@angular/router'; -import { ProfileComponent } from '../headers/header-no-search/profile/profile.page'; -import { AuthService } from 'src/app/services/auth.service'; -import { User } from 'src/app/models/user.model'; +import { LoginUserRespose } from 'src/app/models/user.model'; import { ProfilePage } from 'src/app/modals/profile/profile.page'; import { StorageService } from '../../services/storage.service'; -import { NotificationsService } from '../../services/notifications.service' +import { SessionStore } from 'src/app/store/session.service'; @Component({ selector: 'app-header', @@ -18,23 +16,21 @@ export class HeaderPage implements OnInit { searchSubject: string = ''; showSearch = false; - loggeduser: User; + loggeduser: LoginUserRespose; hideSearchBtn: boolean = false; notificationdata: any[] = []; DataArray: Array = []; notificationLength: 0; - + SessionStore = SessionStore constructor( private router: Router, private modalController: ModalController, private animationController: AnimationController, private storageservice: StorageService, - private notificatioservice: NotificationsService, private platform: Platform, - authService: AuthService ) { - this.loggeduser = authService.ValidatedUser; + this.loggeduser = SessionStore.user; router.events.subscribe((val) => { this.showSearch = false; //this.modalController.dismiss(); diff --git a/src/app/shared/headers/header-no-search/header-no-search.page.ts b/src/app/shared/headers/header-no-search/header-no-search.page.ts index d3ce679c5..01ca5a5e1 100644 --- a/src/app/shared/headers/header-no-search/header-no-search.page.ts +++ b/src/app/shared/headers/header-no-search/header-no-search.page.ts @@ -1,12 +1,13 @@ import { Component, OnInit } from '@angular/core'; import { AnimationController, ModalController } from '@ionic/angular'; -import { SearchPage } from 'src/app/pages/search/search.page'; import { MenuController } from '@ionic/angular'; -import { ProfileComponent } from './profile/profile.page'; import { Router } from '@angular/router'; import { AuthService } from 'src/app/services/auth.service'; -import { User } from 'src/app/models/user.model'; +import { LoginUserRespose } from 'src/app/models/user.model'; import { ProfilePage } from 'src/app/modals/profile/profile.page'; +import { SessionStore } from 'src/app/store/session.service'; + + @Component({ selector: 'app-header-no-search', templateUrl: './header-no-search.page.html', @@ -14,7 +15,8 @@ import { ProfilePage } from 'src/app/modals/profile/profile.page'; }) export class HeaderNoSearchPage implements OnInit { - loggeduser: User; + loggeduser: LoginUserRespose; + SessionStore = SessionStore constructor(private modalController: ModalController, private menu: MenuController, @@ -22,7 +24,7 @@ export class HeaderNoSearchPage implements OnInit { private router: Router, authService: AuthService) { - this.loggeduser = authService.ValidatedUser; + this.loggeduser = SessionStore.user; } ngOnInit() { diff --git a/src/app/shared/headers/header-no-search/profile/profile.page.ts b/src/app/shared/headers/header-no-search/profile/profile.page.ts index 32b0e9ba9..cf56e9814 100644 --- a/src/app/shared/headers/header-no-search/profile/profile.page.ts +++ b/src/app/shared/headers/header-no-search/profile/profile.page.ts @@ -1,7 +1,7 @@ import { Component, OnInit } from '@angular/core'; import { Router } from '@angular/router'; import { AnimationController, ModalController } from '@ionic/angular'; -import { User } from 'src/app/models/user.model'; +import { LoginUserRespose } from 'src/app/models/user.model'; import { AuthService } from 'src/app/services/auth.service'; import { FingerprintPage } from 'src/app/shared/fingerprint/fingerprint.page'; import { PinPage } from 'src/app/shared/pin/pin.page'; @@ -14,7 +14,7 @@ import { LocalstoreService } from 'src/app/store/localstore.service'; }) export class ProfileComponent implements OnInit { - loggeduser: User; + loggeduser: LoginUserRespose; userLoginPreference = '' constructor(private modalController:ModalController, diff --git a/src/app/shared/popover/opts-expediente-pr/opts-expediente-pr.page.ts b/src/app/shared/popover/opts-expediente-pr/opts-expediente-pr.page.ts index 340ad0960..42108f04c 100644 --- a/src/app/shared/popover/opts-expediente-pr/opts-expediente-pr.page.ts +++ b/src/app/shared/popover/opts-expediente-pr/opts-expediente-pr.page.ts @@ -3,7 +3,7 @@ import { ActivatedRoute, NavigationExtras, Router } from '@angular/router'; import { AnimationController, MenuController, ModalController, NavParams, PopoverController } from '@ionic/angular'; import { AddNotePage } from 'src/app/modals/add-note/add-note.page'; import { SearchList } from 'src/app/models/search-document'; -import { User } from 'src/app/models/user.model'; +import { LoginUserRespose } from 'src/app/models/user.model'; import { DiscartExpedientModalPage } from 'src/app/pages/gabinete-digital/discart-expedient-modal/discart-expedient-modal.page'; import { BookMeetingModalPage } from 'src/app/pages/gabinete-digital/expediente/book-meeting-modal/book-meeting-modal.page'; import { ExpedientTaskModalPage } from 'src/app/pages/gabinete-digital/expediente/expedient-task-modal/expedient-task-modal.page'; @@ -37,7 +37,7 @@ export class OptsExpedientePrPage implements OnInit { showEnviarPendentes = false; - loggeduser: User; + loggeduser: LoginUserRespose; constructor( private popoverController: PopoverController, diff --git a/src/app/store/session.service.ts b/src/app/store/session.service.ts index ca62aec5f..758d37a0b 100644 --- a/src/app/store/session.service.ts +++ b/src/app/store/session.service.ts @@ -79,6 +79,7 @@ export class SessionService { delete() { localstoreService.delete(this.keyName) + this.reset(new UserSession()) } private save() { diff --git a/src/app/store/user.service.ts b/src/app/store/user.service.ts deleted file mode 100644 index d81b56231..000000000 --- a/src/app/store/user.service.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { Injectable } from '@angular/core'; -import { localstoreService } from './localstore.service' -import { SHA1 } from 'crypto-js' -import { User } from '../models/user.model'; - -@Injectable({ - providedIn: 'root' -}) -export class UserService { - - // main data - private _user: User = { - Authorization: "", - BasicAuthKey: "", - Email: "", - FullName: "", - Profile: "", - RoleDescription: "", - RoleID: 0, - SharedCalendars: [], - OwnerCalendars: [], - UserId: 0, - UserName: "", - } - // local storage keyName - private keyName: string; - - constructor() { - - this.keyName = (SHA1(this.constructor.name)).toString() - let restore = localstoreService.get(this.keyName, {}) - this._user = restore.user || new User() - - } - - get user(): User { - return this._user || new User() - } - - reset(user) { - this._user = user - - this.save(this._user) - } - - private save(user) { - setTimeout(()=>{ - localstoreService.set(this.keyName,{ - user, - }) - }, 10) - - } -} - -export const UserStore = new UserService() diff --git a/src/index.html b/src/index.html index f1e90bcc6..553bfaa3f 100644 --- a/src/index.html +++ b/src/index.html @@ -7,11 +7,11 @@ - - + + - +