diff --git a/src/app/pages/gabinete-digital/gabinete-digital.page.ts b/src/app/pages/gabinete-digital/gabinete-digital.page.ts
index 285af08d2..fa90ee7a4 100644
--- a/src/app/pages/gabinete-digital/gabinete-digital.page.ts
+++ b/src/app/pages/gabinete-digital/gabinete-digital.page.ts
@@ -22,7 +22,7 @@ import { CustomTaskPipe } from 'src/app/pipes/custom-task.pipe';
//import { NotificationsService } from 'src/app/services/notifications.service';
import { DespachoService } from 'src/app/Rules/despacho.service';
import { ChangeProfileService } from 'src/app/services/change-profile.service';
-import { PermissionService } from 'src/app/services/worker/permission.service';
+import { PermissionService } from 'src/app/services/permission.service';
import { ThemeService } from 'src/app/services/theme.service'
@@ -115,6 +115,9 @@ export class GabineteDigitalPage implements OnInit, DoCheck {
customTaskPipe = new CustomTaskPipe()
+ permissions = {
+ Agenda: 530
+ }
@ViewChild(ExpedientsPage) expedientesPage: ExpedientsPage;
@ViewChild(PendentesPage) pendentesListPage: PendentesPage;
@ViewChild(EventsToApprovePage) eventsToApprove: EventsToApprovePage;
@@ -256,7 +259,7 @@ export class GabineteDigitalPage implements OnInit, DoCheck {
let date = new Date(element.taskStartDate);
date.setMonth(date.getMonth() + 1);
let taskDate = date.getFullYear() + "-" + date.getMonth() + "-" + date.getDate() + " " + date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds();
-
+
let task = {
"SerialNumber": element.serialNumber,
"Folio": element.workflowInstanceDataFields.Subject,
@@ -274,11 +277,11 @@ export class GabineteDigitalPage implements OnInit, DoCheck {
"Agenda": element.workflowInstanceDataFields.Agenda,
"customDate": this.setFormatDate(new Date(element.workflowInstanceDataFields.StartDate), new Date(element.workflowInstanceDataFields.EndDate), element.workflowInstanceDataFields.IsAllDayEvent),
}
-
+
this.allProcessesList.push(task);
this.allProcessesList = removeDuplicate(this.allProcessesList);
this.allProcessesList = this.sortService.sortDate(this.allProcessesList, 'CreateDate')
-
+
});
})
} else {
@@ -287,9 +290,9 @@ export class GabineteDigitalPage implements OnInit, DoCheck {
let date = new Date(element.taskStartDate);
date.setMonth(date.getMonth() + 1);
let taskDate = date.getFullYear() + "-" + date.getMonth() + "-" + date.getDate() + " " + date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds();
-
+
var workflowInstanceDataFields = JSON.parse(element.workflowInstanceDataFields);
-
+
let task = {
"SerialNumber": element.serialNumber,
"Folio": workflowInstanceDataFields.Subject,
@@ -306,11 +309,11 @@ export class GabineteDigitalPage implements OnInit, DoCheck {
"Agenda": workflowInstanceDataFields.Agenda,
"customDate": this.setFormatDate(new Date(workflowInstanceDataFields.StartDate), new Date(workflowInstanceDataFields.EndDate), workflowInstanceDataFields.IsAllDayEvent),
}
-
+
this.allProcessesList.push(task);
this.allProcessesList = removeDuplicate(this.allProcessesList)
this.allProcessesList = this.sortService.sortDate(this.allProcessesList, 'CreateDate')
-
+
});
console.log("All process from db ", allprocess)
})
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 0874bd07e..79204effd 100644
--- a/src/app/pages/gabinete-digital/pedidos/pedido/pedido.page.ts
+++ b/src/app/pages/gabinete-digital/pedidos/pedido/pedido.page.ts
@@ -23,7 +23,7 @@ import { PedidoService } from 'src/app/Rules/pedido.service';
import { SqliteService } from 'src/app/services/sqlite.service';
import { BackgroundService } from 'src/app/services/background.service';
-import { PermissionService } from 'src/app/services/worker/permission.service';
+import { PermissionService } from 'src/app/services/permission.service';
import { ViewDocumentPage } from 'src/app/modals/view-document/view-document.page';
import { ThemeService } from 'src/app/services/theme.service'
import { DataService } from 'src/app/services/data.service';
diff --git a/src/app/services/auth.service.ts b/src/app/services/auth.service.ts
index 779457497..b2790df57 100644
--- a/src/app/services/auth.service.ts
+++ b/src/app/services/auth.service.ts
@@ -18,6 +18,7 @@ import { ProcessesService } from 'src/app/services/processes.service';
import { AttachmentsService } from 'src/app/services/attachments.service';
import { RoomService } from './chat/room.service';
import { Storage } from '@ionic/storage';
+import { InitialsService } from './functions/initials.service';
@Injectable({
providedIn: 'root'
@@ -44,7 +45,8 @@ export class AuthService {
private NfService:NfService,
private processesService: ProcessesService,
private AttachmentsService: AttachmentsService,
- private storage: Storage ) {
+ private storage: Storage,
+ private initialsService: InitialsService ) {
this.headers = new HttpHeaders();
@@ -74,6 +76,8 @@ export class AuthService {
try {
response = await this.http.post(environment.apiURL + "UserAuthentication/Login", '', this.opts).toPromise();
+ console.log(response);
+
if(saveSession) {
this.SetSession(response, user)
}
@@ -94,6 +98,9 @@ export class AuthService {
} else if(session.RoleID == 100000011) {
session.Profile = 'MDGPR'
}
+ else{
+ session.Profile = this.initialsService.getInitials(session.FullName);
+ }
session.Password = user.password
session.RochetChatUser = user.username.split('@')[0]
@@ -149,7 +156,7 @@ export class AuthService {
this.WsChatService.connect();
this.WsChatService.login().then((message: any) => {
-
+
SessionStore.user.RochetChatUserId = message.result.id
SessionStore.save()
this.WsChatService.setStatus('online')
diff --git a/src/app/services/chat/room.service.ts b/src/app/services/chat/room.service.ts
index 11dd10f93..b5099f4fe 100644
--- a/src/app/services/chat/room.service.ts
+++ b/src/app/services/chat/room.service.ts
@@ -439,7 +439,7 @@ export class RoomService {
},
async (response) => {
- if (response.error.error.startsWith('No message found with the id of')) {
+ if (response?.error?.error.startsWith('No message found with the id of')) {
this.deleteMessage(msgId)
message.delateRequest = true
diff --git a/src/app/services/functions/initials.service.spec.ts b/src/app/services/functions/initials.service.spec.ts
new file mode 100644
index 000000000..7ecc24a60
--- /dev/null
+++ b/src/app/services/functions/initials.service.spec.ts
@@ -0,0 +1,16 @@
+import { TestBed } from '@angular/core/testing';
+
+import { InitialsService } from './initials.service';
+
+describe('InitialsService', () => {
+ let service: InitialsService;
+
+ beforeEach(() => {
+ TestBed.configureTestingModule({});
+ service = TestBed.inject(InitialsService);
+ });
+
+ it('should be created', () => {
+ expect(service).toBeTruthy();
+ });
+});
diff --git a/src/app/services/functions/initials.service.ts b/src/app/services/functions/initials.service.ts
new file mode 100644
index 000000000..3615f4124
--- /dev/null
+++ b/src/app/services/functions/initials.service.ts
@@ -0,0 +1,18 @@
+import { Injectable } from '@angular/core';
+
+@Injectable({
+ providedIn: 'root'
+})
+export class InitialsService {
+
+ constructor() { }
+
+ getInitials(name:string){
+ let names = name.split(' '),
+ initials = names[0].substring(0, 1).toUpperCase();
+ if (names.length > 1) {
+ initials += names[names.length - 1].substring(0, 1).toUpperCase();
+ }
+ return initials;
+ }
+}
diff --git a/src/app/services/permission.service.spec.ts b/src/app/services/permission.service.spec.ts
index 8ddccabff..1a77304d8 100644
--- a/src/app/services/permission.service.spec.ts
+++ b/src/app/services/permission.service.spec.ts
@@ -1,6 +1,6 @@
import { TestBed } from '@angular/core/testing';
-import { PermissionService } from './worker/permission.service';
+import { PermissionService } from './permission.service';
describe('PermissionService', () => {
let service: PermissionService;
diff --git a/src/app/services/worker/permission.service.ts b/src/app/services/permission.service.ts
similarity index 58%
rename from src/app/services/worker/permission.service.ts
rename to src/app/services/permission.service.ts
index e093625c9..9ff448f36 100644
--- a/src/app/services/worker/permission.service.ts
+++ b/src/app/services/permission.service.ts
@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
-import { SessionStore } from '../../store/session.service';
+import { SessionStore } from '../store/session.service';
@Injectable({
providedIn: 'root'
@@ -15,12 +15,26 @@ export class PermissionService {
if(!Array.isArray(args)) {
args = [args]
}
-
- return args.includes(this.SessionStore.user.Profile)
+
+ return args.includes(this.SessionStore.user.Profile)
+ }
+
+ userPermission(args) {
+
+ if(!Array.isArray(args)) {
+ args = [args]
+ }
+ for(let permission of this.SessionStore.user.UserPermissions){
+ if (args.includes(permission)){
+ return true;
+ }
+ }
+ return false;
+
}
role(args: any) {
-
+
let UserRoleIsValid = this.userRole(args)
return {
@@ -39,4 +53,4 @@ export class PermissionService {
}
-}
\ No newline at end of file
+}
diff --git a/src/app/services/rules/event.service.ts b/src/app/services/rules/event.service.ts
index c066e5223..a4f4e1be3 100644
--- a/src/app/services/rules/event.service.ts
+++ b/src/app/services/rules/event.service.ts
@@ -1,7 +1,7 @@
import { Injectable } from '@angular/core';
import { AttachmentsService } from '../attachments.service';
import { EventsService } from '../events.service';
-import { PermissionService } from '../worker/permission.service';
+import { PermissionService } from '../permission.service';
@@ -18,7 +18,7 @@ export class EventService {
create({body, calendar}) {
-
+
if(this.p.userRole(['PR'])) {
return this.eventService.postEventPr(body, calendar)
diff --git a/src/app/shared/header/header.page.html b/src/app/shared/header/header.page.html
index bab69b979..d0db46512 100644
--- a/src/app/shared/header/header.page.html
+++ b/src/app/shared/header/header.page.html
@@ -76,7 +76,7 @@
Início
-
@@ -85,7 +85,7 @@
Agenda
-
@@ -94,7 +94,7 @@
Gabinete
-
@@ -102,7 +102,7 @@
Acções
-
diff --git a/src/app/shared/header/header.page.ts b/src/app/shared/header/header.page.ts
index d71c5512f..1fca4f00d 100644
--- a/src/app/shared/header/header.page.ts
+++ b/src/app/shared/header/header.page.ts
@@ -12,6 +12,8 @@ import { EventTrigger } from '../../services/eventTrigger.service';
import { ThemeService } from '../../services/theme.service';
import { interval } from 'rxjs';
import { RouteService } from 'src/app/services/route.service';
+import { PermissionList } from 'src/app/models/permissionList';
+import { PermissionService } from 'src/app/services/permission.service';
@Component({
selector: 'app-header',
@@ -29,6 +31,7 @@ export class HeaderPage implements OnInit {
notificationLength: 0;
SessionStore = SessionStore
check: boolean;
+ permissionList = new PermissionList();
production = environment.production
@@ -41,7 +44,8 @@ export class HeaderPage implements OnInit {
//private notificationsService: NotificationsService,
private eventrigger: EventTrigger,
public ThemeService: ThemeService,
- public RouteService: RouteService
+ public RouteService: RouteService,
+ public p: PermissionService,
) {
this.loggeduser = SessionStore.user;
router.events.subscribe((val) => {
diff --git a/src/app/shared/popover/despachos-options/despachos-options.page.ts b/src/app/shared/popover/despachos-options/despachos-options.page.ts
index 8d3fa6e25..6d7fe5146 100644
--- a/src/app/shared/popover/despachos-options/despachos-options.page.ts
+++ b/src/app/shared/popover/despachos-options/despachos-options.page.ts
@@ -9,7 +9,7 @@ import { BookMeetingModalPage } from 'src/app/pages/gabinete-digital/expediente/
import { DiscartExpedientModalPage } from 'src/app/pages/gabinete-digital/discart-expedient-modal/discart-expedient-modal.page';
import { ToastService } from 'src/app/services/toast.service';
import { customTask, fullTask } from 'src/app/models/dailyworktask.model';
-import { PermissionService } from 'src/app/services/worker/permission.service';
+import { PermissionService } from 'src/app/services/permission.service';
import { ThemeService } from 'src/app/services/theme.service'
import { Location } from '@angular/common'
import { RouteService } from 'src/app/services/route.service';
@@ -35,7 +35,7 @@ export class DespachosOptionsPage implements OnInit {
public p: PermissionService,
public ThemeService: ThemeService,
private RouteService: RouteService,
- ) {
+ ) {
this.task = this.navParams.get('task')
this.fulltask = this.navParams.get('fulltask')
@@ -84,7 +84,7 @@ export class DespachosOptionsPage implements OnInit {
this.toastService._badRequest('Processo não encontrado')
});
}
-
+
async distartExpedientModal(){
this.popoverController.dismiss();
console.log(this.fulltask);
@@ -98,7 +98,7 @@ export class DespachosOptionsPage implements OnInit {
cssClass: 'discart-expedient-modal',
backdropDismiss: false
});
-
+
await modal.present();
modal.onDidDismiss().then(res=>{
if(res['data']=='close'){
@@ -127,7 +127,7 @@ export class DespachosOptionsPage implements OnInit {
await modal.present();
modal.onDidDismiss();
}
-
+
async openDelegarModal(task: any) {
this.popoverController.dismiss();
let classs;
@@ -157,8 +157,8 @@ export class DespachosOptionsPage implements OnInit {
}
async generateDiploma(note:string, documents:any){
- let body = {
- "serialNumber": this.serialNumber,
+ let body = {
+ "serialNumber": this.serialNumber,
"action": "Reencaminhar",
"ActionTypeId": 99999839,
"dataFields": {
@@ -198,20 +198,20 @@ export class DespachosOptionsPage implements OnInit {
cssClass: classs,
backdropDismiss: true
});
-
+
await modal.present();
-
+
modal.onDidDismiss().then(async (res) => {
console.log(res);
if(res.data) {
-
+
const DocumentToSave = res.data.documents.map((e) => {
return {
ApplicationId: e.ApplicationType,
SourceId: e.Id,
}
});
-
+
let docs = {
ProcessInstanceID: "",
Attachments: DocumentToSave,
@@ -235,11 +235,11 @@ export class DespachosOptionsPage implements OnInit {
this.goBack();
}
});
- }
+ }
async arquivar(note:string, documents:any) {
- let body = {
- "serialNumber": this.serialNumber,
+ let body = {
+ "serialNumber": this.serialNumber,
"action": "Arquivo",
"ActionTypeId": 95,
"dataFields": {
@@ -259,14 +259,14 @@ export class DespachosOptionsPage implements OnInit {
} finally {
loader.remove()
}
-
+
}
async executado(note:string, documents:any){
- let body = {
- "serialNumber": this.serialNumber,
+ let body = {
+ "serialNumber": this.serialNumber,
"action": "Conhecimento",
"ActionTypeId": 104,
"dataFields": {
@@ -290,10 +290,10 @@ export class DespachosOptionsPage implements OnInit {
}
-
+
async reexecutar(note:string, documents:any){
- let body = {
- "serialNumber": this.serialNumber,
+ let body = {
+ "serialNumber": this.serialNumber,
"action": "Reexecutar",
"ActionTypeId": 100000010,
"dataFields": {
diff --git a/src/app/shared/popover/despachos-pr-options/despachos-pr-options.page.ts b/src/app/shared/popover/despachos-pr-options/despachos-pr-options.page.ts
index f77c7996e..ddf480f2e 100644
--- a/src/app/shared/popover/despachos-pr-options/despachos-pr-options.page.ts
+++ b/src/app/shared/popover/despachos-pr-options/despachos-pr-options.page.ts
@@ -9,7 +9,7 @@ import { BookMeetingModalPage } from 'src/app/pages/gabinete-digital/expediente/
import { DiscartExpedientModalPage } from 'src/app/pages/gabinete-digital/discart-expedient-modal/discart-expedient-modal.page';
import { ToastService } from 'src/app/services/toast.service';
import { Location } from '@angular/common'
-import { PermissionService } from 'src/app/services/worker/permission.service';
+import { PermissionService } from 'src/app/services/permission.service';
import { ThemeService } from 'src/app/services/theme.service'
import { RouteService } from 'src/app/services/route.service';
@@ -36,11 +36,11 @@ export class DespachosPrOptionsPage implements OnInit {
private RouteService: RouteService,
public p: PermissionService,
public ThemeService: ThemeService,
-
+
) { }
ngOnInit() {
-
+
this.profile = "mdgpr";
this.activatedRoute.queryParams.subscribe(params => {
@@ -86,7 +86,7 @@ export class DespachosPrOptionsPage implements OnInit {
console.log(res['data']);
if(res['data']=='openDiscart') {
console.log('open discart');
-
+
this.distartExpedientModal();
} else {
@@ -108,7 +108,7 @@ export class DespachosPrOptionsPage implements OnInit {
this.toastService._badRequest('Processo não encontrado')
});
}
-
+
async distartExpedientModal() {
this.popoverController.dismiss();
console.log(this.fulltask);
@@ -122,7 +122,7 @@ export class DespachosPrOptionsPage implements OnInit {
cssClass: 'discart-expedient-modal',
backdropDismiss: false
});
-
+
await modal.present();
modal.onDidDismiss().then(res=>{
if(res['data']=='close'){
@@ -132,7 +132,7 @@ export class DespachosPrOptionsPage implements OnInit {
this.openMenu(); */
}
this.popoverController.dismiss('close')
-
+
});
}
@@ -157,7 +157,7 @@ export class DespachosPrOptionsPage implements OnInit {
modal.onDidDismiss()
}
-
+
async openDelegarModal(task: any) {
this.popoverController.dismiss();
let classs;
@@ -187,8 +187,8 @@ export class DespachosPrOptionsPage implements OnInit {
}
async generateDiploma(note:string, documents:any) {
- let body = {
- "serialNumber": this.serialNumber,
+ let body = {
+ "serialNumber": this.serialNumber,
"action": "Reencaminhar",
"ActionTypeId": 99999839,
"dataFields": {
@@ -227,22 +227,22 @@ export class DespachosPrOptionsPage implements OnInit {
cssClass: classs,
backdropDismiss: true
});
-
+
await modal.present();
-
+
modal.onDidDismiss().then(async (res) => {
console.log(res);
if(res.data){
-
+
const DocumentToSave = res.data.documents.map((e) => {
return {
ApplicationId: e.ApplicationType,
SourceId: e.Id,
}
});
-
+
let docs = {
ProcessInstanceID: "",
Attachments: DocumentToSave,
@@ -259,15 +259,15 @@ export class DespachosPrOptionsPage implements OnInit {
}
else if(actionName == 'Reexecução') {
await this.reexecutar(res.data.note, docs);
- }
+ }
else if(actionName == 'Concluido') {
await this.concluir(res.data.note, docs);
}
-
+
this.goBack();
}
});
- }
+ }
async concluir(note:string, documents:any){
@@ -297,8 +297,8 @@ export class DespachosPrOptionsPage implements OnInit {
}
async arquivar(note:string, documents:any){
- let body = {
- "serialNumber": this.serialNumber,
+ let body = {
+ "serialNumber": this.serialNumber,
"action": "Arquivo",
"ActionTypeId": 95,
"dataFields": {
@@ -323,8 +323,8 @@ export class DespachosPrOptionsPage implements OnInit {
async executado(note:string, documents:any){
- let body = {
- "serialNumber": this.serialNumber,
+ let body = {
+ "serialNumber": this.serialNumber,
"action": "Conhecimento",
"ActionTypeId": 104,
"dataFields": {
@@ -347,10 +347,10 @@ export class DespachosPrOptionsPage implements OnInit {
}
-
+
async reexecutar(note:string, documents:any){
- let body = {
- "serialNumber": this.serialNumber,
+ let body = {
+ "serialNumber": this.serialNumber,
"action": "Reexecutar",
"ActionTypeId": 100000010,
"dataFields": {
diff --git a/src/app/shared/popover/event-details-documents-options/event-details-documents-options.page.ts b/src/app/shared/popover/event-details-documents-options/event-details-documents-options.page.ts
index bda7c7d7f..7afa5feea 100644
--- a/src/app/shared/popover/event-details-documents-options/event-details-documents-options.page.ts
+++ b/src/app/shared/popover/event-details-documents-options/event-details-documents-options.page.ts
@@ -7,7 +7,7 @@ import { ToastService } from 'src/app/services/toast.service';
import { Location } from '@angular/common';
import { TaskService } from 'src/app/Rules/task.service'
import { ExpedienteService } from 'src/app/Rules/expediente.service';
-import { PermissionService } from 'src/app/services/worker/permission.service';
+import { PermissionService } from 'src/app/services/permission.service';
@Component({
selector: 'app-event-details-documents-options',
diff --git a/src/app/shared/popover/opts-expediente/opts-expediente.page.ts b/src/app/shared/popover/opts-expediente/opts-expediente.page.ts
index bf2c55c37..10e656a02 100644
--- a/src/app/shared/popover/opts-expediente/opts-expediente.page.ts
+++ b/src/app/shared/popover/opts-expediente/opts-expediente.page.ts
@@ -15,7 +15,7 @@ import { ToastService } from 'src/app/services/toast.service';
import { Location } from '@angular/common';
import { TaskService } from 'src/app/Rules/task.service'
import { ExpedienteService } from 'src/app/Rules/expediente.service';
-import { PermissionService } from 'src/app/services/worker/permission.service';
+import { PermissionService } from 'src/app/services/permission.service';
import { ThemeService } from 'src/app/services/theme.service'
import { NewGroupPage } from 'src/app/pages/chat/new-group/new-group.page';
import { RouteService } from 'src/app/services/route.service';
diff --git a/src/app/shared/popover/request-options/request-options.page.ts b/src/app/shared/popover/request-options/request-options.page.ts
index f59911563..9ea60decb 100644
--- a/src/app/shared/popover/request-options/request-options.page.ts
+++ b/src/app/shared/popover/request-options/request-options.page.ts
@@ -9,7 +9,7 @@ import { BookMeetingModalPage } from 'src/app/pages/gabinete-digital/expediente/
import { ProcessesService } from 'src/app/services/processes.service';
import { ToastService } from 'src/app/services/toast.service';
import { PedidoService } from 'src/app/Rules/pedido.service';
-import { PermissionService } from 'src/app/services/worker/permission.service';
+import { PermissionService } from 'src/app/services/permission.service';
import { DataService } from 'src/app/services/data.service';
import { NewGroupPage } from 'src/app/pages/chat/new-group/new-group.page';
diff --git a/src/app/shared/popover/searched-document-options/searched-document-options.page.ts b/src/app/shared/popover/searched-document-options/searched-document-options.page.ts
index b74b48a0a..8a3259c0f 100644
--- a/src/app/shared/popover/searched-document-options/searched-document-options.page.ts
+++ b/src/app/shared/popover/searched-document-options/searched-document-options.page.ts
@@ -1,6 +1,6 @@
import { Component, OnInit } from '@angular/core';
import {PopoverController } from '@ionic/angular';
-import { PermissionService } from 'src/app/services/worker/permission.service';
+import { PermissionService } from 'src/app/services/permission.service';
@Component({
selector: 'app-searched-document-options',