@ieeesa-npm/tenants 0.3.1 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (23) hide show
  1. package/esm2022/lib/assets/constants.json +42 -0
  2. package/esm2022/lib/components/roles-and-permissions-mapping/roles-and-permissions-mapping.component.mjs +391 -0
  3. package/esm2022/lib/components/tenant-basic-details/tenant-basic-details.component.mjs +1 -1
  4. package/esm2022/lib/components/view-tenant-details/view-tenant-details.component.mjs +31 -3
  5. package/esm2022/lib/components/view-tenant-group-types/view-tenant-group-types.component.mjs +1 -1
  6. package/esm2022/lib/components/view-tenants-list/view-tenants-list.component.mjs +1 -1
  7. package/esm2022/lib/models/roles-and-permissions-table-type.model.mjs +7 -0
  8. package/esm2022/lib/models/roles-and-permissions.model.mjs +1 -1
  9. package/esm2022/lib/models/tenant-function-type.model.mjs +2 -1
  10. package/esm2022/lib/services/tenant-applications.service.mjs +46 -1
  11. package/esm2022/lib/services/tenant-permissions-map.service.mjs +3 -3
  12. package/esm2022/public-api.mjs +3 -1
  13. package/fesm2022/ieeesa-npm-tenants.mjs +525 -21
  14. package/fesm2022/ieeesa-npm-tenants.mjs.map +1 -1
  15. package/lib/components/roles-and-permissions-mapping/roles-and-permissions-mapping.component.d.ts +106 -0
  16. package/lib/components/tenant-basic-details/tenant-basic-details.component.d.ts +42 -0
  17. package/lib/components/view-tenant-details/view-tenant-details.component.d.ts +7 -0
  18. package/lib/models/roles-and-permissions-table-type.model.d.ts +4 -0
  19. package/lib/models/roles-and-permissions.model.d.ts +44 -0
  20. package/lib/models/tenant-function-type.model.d.ts +2 -1
  21. package/lib/services/tenant-applications.service.d.ts +28 -1
  22. package/package.json +1 -1
  23. package/public-api.d.ts +2 -0
@@ -0,0 +1,106 @@
1
+ import { ElementRef, EventEmitter, OnDestroy, OnInit } from '@angular/core';
2
+ import { FormGroup } from '@angular/forms';
3
+ import { Subject } from 'rxjs';
4
+ import { AlignType, FormGrid, FormModel, SelectOption, SlideToggleOption, DynamicFormComponent, TableColumnSchema } from '@ieeesa-npm/presentation';
5
+ import { TenantApplicationsService } from '../../services/tenant-applications.service';
6
+ import { Permission, ModifiedRolesAndPermissionsMapping, RoleDetails, RoleOrPermissionMapping, RolePermissionMappingRequestPayload } from '../../models/roles-and-permissions.model';
7
+ import { RoleAndPermissionsTableType } from '../../models/roles-and-permissions-table-type.model';
8
+ import { FormUtilityService, SharedService } from '@ieeesa-npm/shared';
9
+ import * as i0 from "@angular/core";
10
+ export declare class RolesAndPermissionsMappingComponent implements OnInit, OnDestroy {
11
+ private tenantAppService;
12
+ private sharedService;
13
+ elementRef: ElementRef;
14
+ private formUtilityService;
15
+ constants: any;
16
+ mapRolesAndPermissionsScreenTexts: any;
17
+ formGroup: FormModel;
18
+ colWidth: FormGrid;
19
+ actionButtonAlign: AlignType;
20
+ leftButtonLabel: any;
21
+ rightButtonLabel: any;
22
+ roles: SelectOption[];
23
+ permissions: SelectOption[];
24
+ appId: string;
25
+ destroy$: Subject<boolean>;
26
+ tableColumnSchema: TableColumnSchema[];
27
+ tableData: RoleOrPermissionMapping[];
28
+ selectedRole: RoleDetails;
29
+ selectedPermission: Permission;
30
+ modifiedRolesAndPermissionsMapping: ModifiedRolesAndPermissionsMapping[];
31
+ tableHeading: string;
32
+ rolePermissionMappingPayload: RolePermissionMappingRequestPayload;
33
+ formCancel: EventEmitter<any>;
34
+ dynamicFormComponent: DynamicFormComponent;
35
+ constructor(tenantAppService: TenantApplicationsService, sharedService: SharedService, elementRef: ElementRef, formUtilityService: FormUtilityService);
36
+ /**
37
+ * Initializes form group and all the page defaults.
38
+ * @memberof MapPermissionsRolesComponent
39
+ * @returns {void}
40
+ */
41
+ ngOnInit(): void;
42
+ /**
43
+ * Constructs the role or permission table schema to display the associated mapping in a table view.
44
+ * @param {FormGroup[]} formGroups
45
+ * @memberof MapPermissionsRolesComponent
46
+ * @returns {void}
47
+ */
48
+ onRoleOrPermissionSelected(formGroups: FormGroup[]): void;
49
+ /**
50
+ * Gets the list of roles and displayed in the role dropdown.
51
+ * @memberof MapPermissionsRolesComponent
52
+ * @returns {void}
53
+ */
54
+ getRoles(): void;
55
+ /**
56
+ * Gets the list of permissions and displayed in the permission dropdown.
57
+ * @memberof MapPermissionsRolesComponent
58
+ * @returns {void}
59
+ */
60
+ getPermissions(): void;
61
+ /**
62
+ * Gets the list of mapped roles/permissions from the backend api.
63
+ * @param {RolePermissionMappingRequestPayload} payload
64
+ * @memberof MapPermissionsRolesComponent
65
+ * @returns {void}
66
+ */
67
+ getRolePermissionMapping(payload: RolePermissionMappingRequestPayload): void;
68
+ /**
69
+ * Displaying the mapped roles and permissions data into the data table.
70
+ * @param {SelectOption[]} roleOrPermissions
71
+ * @param {RoleDetails[] | Permission[]} mappedRoleOrPermissions
72
+ * @param {RoleAndPermissionsTableType} tableType
73
+ * @memberof MapPermissionsRolesComponent
74
+ * @returns {void}
75
+ */
76
+ setTableData(roleOrPermissions: SelectOption[], mappedRoleOrPermissions: RoleDetails[] | Permission[], tableType: RoleAndPermissionsTableType): void;
77
+ /**
78
+ * Constructs the payload based on the roles and permissions mapping (selection or deselection).
79
+ * @param roleOrPermissionStatus
80
+ * @memberof MapPermissionsRolesComponent
81
+ * @returns {void}
82
+ */
83
+ roleOrPermissionStatusChange(roleOrPermissionStatus: {
84
+ slideToggle: SlideToggleOption;
85
+ rowData: RoleOrPermissionMapping;
86
+ }): void;
87
+ /**
88
+ * Submits the roles and permissions mappings to the server.
89
+ * @memberof MapPermissionsRolesComponent
90
+ * @returns {void}
91
+ */
92
+ onMapAndPermissionsFormSubmit(): void;
93
+ /**
94
+ * Closes the map and permissions modal.
95
+ * @memberof MapPermissionsRolesComponent
96
+ * @returns {void}
97
+ */
98
+ onMapAndPermissionsFormCancel(): void;
99
+ /**
100
+ * Performs necessary cleanup tasks, such as unsubscribing from subscription when the component is being destroyed.
101
+ * @memberof ViewTenantDetailsComponent
102
+ */
103
+ ngOnDestroy(): void;
104
+ static ɵfac: i0.ɵɵFactoryDeclaration<RolesAndPermissionsMappingComponent, never>;
105
+ static ɵcmp: i0.ɵɵComponentDeclaration<RolesAndPermissionsMappingComponent, "ieeesa-roles-and-permissions-mapping", never, {}, { "formCancel": "formCancel"; }, never, never, true, never>;
106
+ }
@@ -281,6 +281,48 @@ export declare class TenantBasicDetailsComponent implements OnDestroy {
281
281
  isToolTipNeeded: boolean;
282
282
  }[];
283
283
  };
284
+ mapRolesAndPermissions: {
285
+ heading: string;
286
+ legend: string;
287
+ roleTableCaption: string;
288
+ permissionTableCaption: string;
289
+ label: {
290
+ leftButtonLabel: string;
291
+ rightButtonLabel: string;
292
+ role: string;
293
+ permission: string;
294
+ ariaLabel: {
295
+ role: string;
296
+ permission: string;
297
+ };
298
+ ariaDescribedById: {
299
+ role: string;
300
+ permission: string;
301
+ };
302
+ };
303
+ tableColumns: {
304
+ role: string;
305
+ permission: string;
306
+ status: string;
307
+ };
308
+ message: {
309
+ success: {
310
+ rolesAndPermissionsSubmission: string;
311
+ };
312
+ };
313
+ supportText: {
314
+ role: string;
315
+ permission: string;
316
+ };
317
+ errors: {
318
+ "3007": string;
319
+ "3008": string;
320
+ "3009": string;
321
+ "3020": string;
322
+ "3017": string;
323
+ "3021": string;
324
+ };
325
+ };
284
326
  deleteRole: {
285
327
  message: {
286
328
  success: {
@@ -58,6 +58,7 @@ export declare class ViewTenantDetailsComponent implements OnInit, OnDestroy {
58
58
  isBasicDetailsExpanded: boolean;
59
59
  editTenantScreenTexts: any;
60
60
  deleteRoleScreenTexts: any;
61
+ mapRolesAndPermissionsScreenTexts: any;
61
62
  alignmentType: typeof AlignType;
62
63
  userTenantsPermissions: TenantsPermissions[];
63
64
  permissionType: typeof PermissionType;
@@ -157,6 +158,12 @@ export declare class ViewTenantDetailsComponent implements OnInit, OnDestroy {
157
158
  * @memberof ViewTenantDetailsComponent
158
159
  */
159
160
  openTenantStatusConfirmationModal(isActivate: boolean): void;
161
+ /**
162
+ * Opens the map permissions and roles modal.
163
+ * @memberof ViewTenantDetailsComponent
164
+ * @returns {void}
165
+ */
166
+ openMapRolesAndPermissionsForm(): void;
160
167
  /**
161
168
  * Updates the tenant status to the server using http request and display success/error message based on request response (success or failure).
162
169
  * @param {boolean} isActivate
@@ -0,0 +1,4 @@
1
+ export declare enum RoleAndPermissionsTableType {
2
+ ROLE = "ROLE",
3
+ PERMISSION = "PERMISSION"
4
+ }
@@ -73,3 +73,47 @@ export interface DeleteRoleResponse {
73
73
  errorCodes: string[];
74
74
  };
75
75
  }
76
+ export interface Permission {
77
+ permissionId: string;
78
+ permissionName: string;
79
+ }
80
+ export interface GetPermissionsResponse {
81
+ status: boolean;
82
+ message: string;
83
+ body?: Permission[] | null | {
84
+ errorCodes: string[];
85
+ };
86
+ }
87
+ export interface RoleOrPermissionMapping {
88
+ roleOrPermissionName: string;
89
+ roleOrPermissionId: string;
90
+ status: boolean;
91
+ }
92
+ export interface MapRolesAndPermissions {
93
+ appId: string;
94
+ permissionId: string | null;
95
+ roleId: string | null;
96
+ }
97
+ export interface ModifiedRolesAndPermissionsMapping extends MapRolesAndPermissions {
98
+ status: boolean;
99
+ }
100
+ export interface RolePermissionMappingRequestPayload {
101
+ payload: MapRolesAndPermissions;
102
+ }
103
+ export interface RolePermissionMappingResponse {
104
+ status: boolean;
105
+ message: string;
106
+ body?: RoleDetails[] | Permission[] | {
107
+ errorCodes: string[];
108
+ };
109
+ }
110
+ export interface RolesAndPermissionsRequestPayload {
111
+ payload: ModifiedRolesAndPermissionsMapping[];
112
+ }
113
+ export interface RolesAndPermissionsResponse {
114
+ status: boolean;
115
+ message: string;
116
+ body?: string | {
117
+ errorCodes: string[];
118
+ };
119
+ }
@@ -2,5 +2,6 @@ export declare enum TenantFunctionType {
2
2
  CREATE = "CREATE",
3
3
  EDIT = "EDIT",
4
4
  CREATE_ROLE = "CREATE_ROLE",
5
- EDIT_ROLE = "EDIT_ROLE"
5
+ EDIT_ROLE = "EDIT_ROLE",
6
+ MAP_PERMISSION_AND_ROLE = "MAP_PERMISSION_AND_ROLE"
6
7
  }
@@ -10,7 +10,7 @@ import { FeatureId, Features, GetFeaturesResponse } from '../models/features.mod
10
10
  import { AppTypeConfig, GetAppTypesResponse } from '../models/app-type-config.model';
11
11
  import { TenantPermissionsService } from './tenant-permissions.service';
12
12
  import { TenantFunctionType } from '../models/tenant-function-type.model';
13
- import { GetRolesAndPermissionsPayload, GetRolesAndPermissionsResponse, GetRolesResponse, RoleInfo, DeleteRoleRequestPayload, DeleteRoleResponse, Role, RoleDetails, CreateModifyRoleRequestPayload, CreateModifyRoleResponse } from '../models/roles-and-permissions.model';
13
+ import { GetRolesAndPermissionsPayload, GetRolesAndPermissionsResponse, GetRolesResponse, RoleInfo, DeleteRoleRequestPayload, DeleteRoleResponse, Role, GetPermissionsResponse, RolePermissionMappingRequestPayload, RolePermissionMappingResponse, RolesAndPermissionsRequestPayload, RolesAndPermissionsResponse, RoleDetails, CreateModifyRoleRequestPayload, CreateModifyRoleResponse } from '../models/roles-and-permissions.model';
14
14
  import { UpdateTenantStatusRequestPayload, UpdateTenantStatusResponse } from '../models/update-tenant-status.model';
15
15
  import { GetRoleTypesPayload, RoleTypeConfiguration, RoleTypeOption, RoleTypeResponse } from '../models/role-type.model';
16
16
  import { ViewGroupTypeResponse } from '../models/view-tenant-group-types.model';
@@ -34,6 +34,12 @@ export declare class TenantApplicationsService {
34
34
  selectedTenantInfo: TenantBasicInfo | undefined;
35
35
  userTenantsPermissions: TenantsPermissions[];
36
36
  createTenantsText: {
37
+ /**
38
+ * Gets tenant details from server using HttpService
39
+ * @param {string} appId
40
+ * @return {Observable<TenantDetailsResponse>}
41
+ * @memberof TenantApplicationsService
42
+ */
37
43
  "2003": string;
38
44
  "2026": string;
39
45
  "2028": string;
@@ -187,6 +193,27 @@ export declare class TenantApplicationsService {
187
193
  * @memberof TenantApplicationsService
188
194
  */
189
195
  getRoles(appId: string): Observable<GetRolesResponse>;
196
+ /**
197
+ * Gets the list of permissions based on the appId and return the success or error response as Observable.
198
+ * @param {string} appId
199
+ * @return {Observable<GetPermissionsResponse>}
200
+ * @memberof TenantApplicationsService
201
+ */
202
+ getPermissions(appId: string): Observable<GetPermissionsResponse>;
203
+ /**
204
+ * Gets the list of roles or permissions based on the roleId or permissionId in the payload and return the success or error response as Observable.
205
+ * @param {RolePermissionMappingRequestPayload} payload
206
+ * @returns {Observable<RolePermissionMappingResponse>}
207
+ * @memberof TenantApplicationsService
208
+ */
209
+ getRolePermissionMapping(payload: RolePermissionMappingRequestPayload): Observable<RolePermissionMappingResponse>;
210
+ /**
211
+ * Submit the new mappings of roles to permissions to the server.
212
+ * @param {RolesAndPermissionsRequestPayload} payload
213
+ * @returns {Observable<RolesAndPermissionsResponse>}
214
+ * @memberof TenantApplicationsService
215
+ */
216
+ saveRolePermissionMapping(payload: RolesAndPermissionsRequestPayload): Observable<RolesAndPermissionsResponse>;
190
217
  /**
191
218
  * Gets list of roles and permissions mappings from server using HttpService.
192
219
  * @param {string} appId
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ieeesa-npm/tenants",
3
- "version": "0.3.1",
3
+ "version": "0.3.2",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^16.1.0",
6
6
  "@angular/core": "^16.1.0"
package/public-api.d.ts CHANGED
@@ -4,6 +4,7 @@ export * from './lib/components/create-tenant-application/create-tenant-applicat
4
4
  export * from './lib/tenant-applications.component';
5
5
  export * from './lib/components/tenant-basic-details/tenant-basic-details.component';
6
6
  export * from './lib/components/create-modify-role/create-modify-role.component';
7
+ export * from './lib/components/roles-and-permissions-mapping/roles-and-permissions-mapping.component';
7
8
  export * from './lib/components/view-tenant-group-types/view-tenant-group-types.component';
8
9
  export * from './lib/models/app-type-config.model';
9
10
  export * from './lib/models/app-type.model';
@@ -19,6 +20,7 @@ export * from './lib/models/update-tenant-status.model';
19
20
  export * from './lib/models/tenant-function-type.model';
20
21
  export * from './lib/models/role-type.model';
21
22
  export * from './lib/models/role-menu-action.model';
23
+ export * from './lib/models/roles-and-permissions-table-type.model';
22
24
  export * from './lib/models/view-tenant-group-types.model';
23
25
  export * from './lib/services/tenant-applications.service';
24
26
  export * from './lib/services/tenant-permissions-map.service';