diff --git a/src/app/OtherService/permission.service.spec.ts b/src/app/OtherService/permission.service.spec.ts new file mode 100644 index 000000000..1a77304d8 --- /dev/null +++ b/src/app/OtherService/permission.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { PermissionService } from './permission.service'; + +describe('PermissionService', () => { + let service: PermissionService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(PermissionService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/src/app/OtherService/permission.service.ts b/src/app/OtherService/permission.service.ts new file mode 100644 index 000000000..a09dafb53 --- /dev/null +++ b/src/app/OtherService/permission.service.ts @@ -0,0 +1,46 @@ +import { Injectable } from '@angular/core'; +import { UserStore } from 'src/app/store/user.service' + +@Injectable({ + providedIn: 'root' +}) +export class PermissionService { + + userStore = UserStore + + constructor() { } + + userRole(args) { + let data: string[] = [] + + if(!Array.isArray(args) && typeof(args) == 'string') { + data = [args] + } else { + data = args + } + + return data.includes(this.userStore.user.Profile) + } + + role(args: any) { + + + let UserRoleIsValid = this.userRole(args) + + return { + permissionAnyOf(role) { + + if(!Array.isArray(args) && typeof(args) == 'string') { + role = [args] + } + + if(!UserRoleIsValid) {return false } + + return true + + } + } + + } + +} \ No newline at end of file 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 bf00a69a0..6b93574d0 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 @@ -332,7 +332,7 @@ export class DocumentSetUpMeetingPage implements OnInit { async getDoc() { const modal = await this.modalController.create({ component: SearchPage, - cssClass: 'modal modal-desktop modal-width-100-width-background', + cssClass: 'modal modal-desktop modal-width-100-width-background modal-background', componentProps: { type: 'AccoesPresidenciais & ArquivoDespachoElect', showSearchInput: true, diff --git a/src/app/pages/gabinete-digital/gabinete-digital.page.html b/src/app/pages/gabinete-digital/gabinete-digital.page.html index ca17c7c36..bd3cfa790 100644 --- a/src/app/pages/gabinete-digital/gabinete-digital.page.html +++ b/src/app/pages/gabinete-digital/gabinete-digital.page.html @@ -90,7 +90,7 @@

{{ despachoprstore.count }} Documentos

-
+
diff --git a/src/app/pages/gabinete-digital/gabinete-digital.page.ts b/src/app/pages/gabinete-digital/gabinete-digital.page.ts index 6a1becab5..325e05906 100644 --- a/src/app/pages/gabinete-digital/gabinete-digital.page.ts +++ b/src/app/pages/gabinete-digital/gabinete-digital.page.ts @@ -20,6 +20,7 @@ import { PendentesStore } from 'src/app/store/pendestes-store.service'; import { PedidosStore } from 'src/app/store/pedidos-store.service'; import { ExpedienteprStore } from 'src/app/store/expedientepr-store.service'; import { DespachosprStore } from 'src/app/store/despachospr-store.service'; +import { PermissionService } from 'src/app/OtherService/permission.service'; @Component({ selector: 'app-gabinete-digital', templateUrl: './gabinete-digital.page.html', @@ -99,9 +100,10 @@ export class GabineteDigitalPage implements OnInit { private alertService: AlertService, private activatedRoute: ActivatedRoute, private router: Router, - authService: AuthService + authService: AuthService, + public p: PermissionService ) { - + this.loggeduser = authService.ValidatedUser; window.onresize = (event) => { @@ -123,6 +125,7 @@ export class GabineteDigitalPage implements OnInit { ngOnInit() { + const pathname = window.location.pathname this.LoadCounts(); diff --git a/src/app/services/auth.service.ts b/src/app/services/auth.service.ts index af5b6a178..e5b42f8a1 100644 --- a/src/app/services/auth.service.ts +++ b/src/app/services/auth.service.ts @@ -10,6 +10,7 @@ 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' @Injectable({ providedIn: 'root' @@ -18,9 +19,10 @@ export class AuthService { userData$ = new BehaviorSubject(''); userId$ = new BehaviorSubject(''); headers: HttpHeaders; - public ValidatedUser:User; + public ValidatedUser: User; public ValidatedUserChat:any; opts:any; + userStore = UserStore constructor( private http: HttpClient, @@ -74,7 +76,10 @@ export class AuthService { response.BasicAuthKey = user.BasicAuthKey this.ValidatedUser = response; + console.log('response', response) + this.localstoreService.set('user', response) + this.userStore.reset(response) this.storageService.store(AuthConnstants.USER, response); diff --git a/src/app/shared/agenda/edit-event/edit-event.page.ts b/src/app/shared/agenda/edit-event/edit-event.page.ts index 6b3fbd484..0a8e7c9a2 100644 --- a/src/app/shared/agenda/edit-event/edit-event.page.ts +++ b/src/app/shared/agenda/edit-event/edit-event.page.ts @@ -427,6 +427,7 @@ export class EditEventPage implements OnInit { async getDoc() { + const modal = await this.modalController.create({ component: SearchPage, cssClass: 'modal-width-100-width-background modal', diff --git a/src/app/store/localstore.service.ts b/src/app/store/localstore.service.ts index 995034584..fb4a9edb7 100644 --- a/src/app/store/localstore.service.ts +++ b/src/app/store/localstore.service.ts @@ -6,7 +6,7 @@ import { AES, enc, SHA1 } from 'crypto-js' }) export class LocalstoreService { - private prefix = 'v12-' + private prefix = 'v13-' constructor() { @@ -58,3 +58,19 @@ export class LocalstoreService { } export const localstoreService = new LocalstoreService() + + + +// Create WebSocket connection. +const socket = new WebSocket('ws://localhost:8080'); + +// Listen for messages +socket.addEventListener('message', function (event) { + console.log('Message from server ', event.data); // Message from server mobile first é fraco + + var p = Promise.resolve(event.data); + p.then(function(v) { + console.log(v); // mobile first é fraco + }); + +}); \ No newline at end of file diff --git a/src/app/store/user.service.spec.ts b/src/app/store/user.service.spec.ts new file mode 100644 index 000000000..3f804c9fd --- /dev/null +++ b/src/app/store/user.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { UserService } from './user.service'; + +describe('UserService', () => { + let service: UserService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(UserService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/src/app/store/user.service.ts b/src/app/store/user.service.ts new file mode 100644 index 000000000..d81b56231 --- /dev/null +++ b/src/app/store/user.service.ts @@ -0,0 +1,56 @@ +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/global.scss b/src/global.scss index 5469ff27b..8dd6649de 100644 --- a/src/global.scss +++ b/src/global.scss @@ -1071,7 +1071,7 @@ ngx-mat-datetime-content{ } -@media only screen and (max-width: 1024px) { +@media only screen and (max-width: 767px) { .calendar-segment-mdgpr:not(.calendar-segment-pr-force) { .calendar-pr-event-type-Oficial { border-right: 3px solid transparent !important; @@ -1090,3 +1090,8 @@ ngx-mat-datetime-content{ } } } + + +.modal-background { + background: #0000006b; +} \ No newline at end of file