{ "version": 3, "sources": ["src/app/models/api/UserRequest.ts", "src/app/services/user-roles.service.ts"], "sourcesContent": ["export class UserRequest {\n id: Number;\n name: string;\n email: string;\n companyNo: string;\n}\n", "import { Injectable } from '@angular/core';\nimport { MessageService } from 'primeng/api';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { PartnerUser } from '../models/api/PartnerUser';\nimport { UserRequest } from '../models/api/UserRequest';\nimport { BcUser } from '../models/auth/BcUser';\nimport { ApiService } from './api.service';\nimport { Role } from '@app/@shared/constants/role.constant';\nimport { tap } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UserRolesService {\n public partnerUsers: PartnerUser[] = [];\n public changedPartnerUsers: PartnerUser[] = [];\n public partnerNo: string = '';\n\n constructor(private api: ApiService, private messageService: MessageService) {\n this.selectedUserRequest = new BehaviorSubject(new UserRequest());\n }\n\n private user: BcUser = new BcUser();\n\n public SetUser(user: BcUser) {\n this.user = user;\n if (this.user.roles == null) {\n this.user.roles = ['empty'];\n }\n }\n\n public setUpPartnerUsers(partnerNo: string): void {\n this.partnerNo = partnerNo;\n this.api.partnerUsers.subscribe((partnerUsers) => {\n this.SetPartnerUsers(partnerUsers);\n });\n this.api.getPartnerUsers(this.partnerNo);\n }\n\n public SetPartnerUsers(partnerUsers: PartnerUser[]): void {\n if (partnerUsers == null) return;\n this.partnerUsers = partnerUsers;\n\n for (var i = 0; i < this.partnerUsers.length; i++) {\n this.partnerUsers[i].portal = this.partnerUsers[i].roles.includes(Role.PORTAL);\n this.partnerUsers[i].jira = this.partnerUsers[i].roles.includes(Role.BCSUPPORT);\n this.partnerUsers[i].admin = this.partnerUsers[i].roles.includes(Role.BCADMIN);\n this.partnerUsers[i].accounts = this.partnerUsers[i].roles.includes(Role.BCACCOUNT);\n this.partnerUsers[i].customers = this.partnerUsers[i].roles.includes(Role.BCCUSTOME);\n this.partnerUsers[i].invoices = this.partnerUsers[i].roles.includes(Role.BCINVOICE);\n this.partnerUsers[i].orders = this.partnerUsers[i].roles.includes(Role.BCORDERS);\n\n this.partnerUsers[i].contract = this.partnerUsers[i].roles.includes(Role.AGREECONT);\n this.partnerUsers[i].agreeMarketing = this.partnerUsers[i].roles.includes(Role.AGREEMARK);\n this.partnerUsers[i].softLicense = this.partnerUsers[i].roles.includes(Role.AGREESOFT);\n this.partnerUsers[i].technical = this.partnerUsers[i].roles.includes(Role.AGREETECH);\n this.partnerUsers[i].epNotifications = this.partnerUsers[i].roles.includes(Role.BREP);\n this.partnerUsers[i].training = this.partnerUsers[i].roles.includes(Role.LSACADEMY);\n this.partnerUsers[i].financial = this.partnerUsers[i].roles.includes(Role.FINANCIAL);\n\n this.partnerUsers[i].emailInv = this.partnerUsers[i].roles.includes(Role.EMAILINV);\n this.partnerUsers[i].sales = this.partnerUsers[i].roles.includes(Role.SALES);\n\n if (this.partnerUsers[i].admin) {\n this.adminChecked(i);\n }\n }\n }\n\n UserExists(email: string): Boolean {\n return this.partnerUsers.some((user) => user.email.toLowerCase() == email.toLowerCase());\n }\n\n setAddedRole(userId: number, role: string) {\n if (this.partnerUsers[userId].removedRoles.includes(role)) {\n this.partnerUsers[userId].removedRoles = this.partnerUsers[userId].removedRoles.filter((r) => r !== role);\n }\n if (!this.partnerUsers[userId].roles.includes(role)) {\n this.partnerUsers[userId].addedRoles.push(role);\n }\n }\n\n setRemovedRole(userId: number, role: string) {\n if (this.partnerUsers[userId].addedRoles.includes(role)) {\n this.partnerUsers[userId].addedRoles = this.partnerUsers[userId].addedRoles.filter((r) => r !== role);\n }\n if (this.partnerUsers[userId].roles.includes(role)) {\n this.partnerUsers[userId].removedRoles.push(role);\n }\n }\n\n adminChecked(userId: number) {\n if (this.partnerUsers[userId].accounts) {\n this.setRemovedRole(userId, Role.BCACCOUNT);\n }\n\n if (this.partnerUsers[userId].customers) {\n this.setRemovedRole(userId, Role.BCCUSTOME);\n }\n\n if (this.partnerUsers[userId].invoices) {\n this.setRemovedRole(userId, Role.BCINVOICE);\n }\n\n if (this.partnerUsers[userId].orders) {\n this.setRemovedRole(userId, Role.BCORDERS);\n }\n }\n\n rollbackRemovedRole(userId: number, role: string) {\n this.partnerUsers[userId].removedRoles = this.partnerUsers[userId].removedRoles.filter((r) => r !== role);\n }\n\n adminUnchecked(userId: number) {\n var pagesRoles = [Role.BCACCOUNT, Role.BCCUSTOME, Role.BCINVOICE, Role.BCORDERS];\n\n pagesRoles.forEach((role) => {\n if (this.partnerUsers[userId].removedRoles.includes(role) && this.partnerUsers[userId].roles.includes(role)) {\n this.rollbackRemovedRole(userId, role);\n }\n });\n }\n\n roleChange(checked: boolean, user: PartnerUser, role: string): void {\n var userId = this.partnerUsers.findIndex((pu) => pu.email === user.email);\n\n this.partnerUsers[userId].changed = true;\n if (checked) {\n this.setAddedRole(userId, role);\n\n if (role === Role.BCADMIN) {\n this.adminChecked(userId);\n }\n } else {\n this.setRemovedRole(userId, role);\n\n if (role === Role.BCADMIN) {\n this.adminUnchecked(userId);\n }\n\n if ((role == Role.BCACCOUNT || role == Role.BCCUSTOME) && user.roles.includes(Role.BCORDERS)) {\n this.setRemovedRole(userId, Role.BCORDERS);\n }\n }\n //console.log(this.partnerUsers.filter(pu => pu.changed && (pu.addedRoles.length != 0 || pu.removedRoles.length != 0)));\n }\n\n public verifyPartnerUsersChanges(): boolean {\n this.changedPartnerUsers = this.partnerUsers.filter(\n (pu) => pu.addedRoles.length != 0 || pu.removedRoles.length != 0\n );\n\n return this.changedPartnerUsers.length != 0;\n }\n\n selectedUserRequest: BehaviorSubject;\n pendingUserRequestSelected(request: UserRequest) {\n this.selectedUserRequest.next(request);\n }\n\n savePartnerUsers(): Observable {\n return this.api.savePartnerUsers(this.changedPartnerUsers).pipe(\n tap((result) => {\n if (result) {\n this.api.getPartnerUsers(this.partnerNo);\n\n this.messageService.add({\n severity: 'success',\n summary: 'User roles saved.',\n detail: 'Users has been successfully updated.',\n sticky: true,\n });\n } else {\n this.messageService.add({\n severity: 'error',\n summary: 'Error',\n detail: 'There is an internal service problem. Please contact administrator.',\n sticky: true,\n });\n }\n })\n );\n }\n}\n"], "mappings": "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", "names": [] }