@ieeesa-npm/groups 0.7.1 → 0.7.3
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.
- package/esm2022/lib/assets/constants.json +54 -11
- package/esm2022/lib/assets/form-validations.mjs +4 -1
- package/esm2022/lib/components/add-user-roster/add-user-roster.component.mjs +259 -22
- package/esm2022/lib/components/create-group/create-group.component.mjs +3 -3
- package/esm2022/lib/components/edit-user-roles/edit-user-roles.component.mjs +267 -33
- package/esm2022/lib/components/tree-view/tree-view.component.mjs +20 -5
- package/esm2022/lib/components/view-roster/view-roster.component.mjs +458 -98
- package/esm2022/lib/groups.component.mjs +39 -19
- package/esm2022/lib/models/add-or-edit-user-group.model.mjs +1 -1
- package/esm2022/lib/models/classification.model.mjs +2 -0
- package/esm2022/lib/models/filter-type.model.mjs +8 -0
- package/esm2022/lib/models/group-permissions.model.mjs +2 -0
- package/esm2022/lib/models/group-types.model.mjs +1 -1
- package/esm2022/lib/models/group-user-info.model.mjs +1 -1
- package/esm2022/lib/models/member-type.model.mjs +2 -0
- package/esm2022/lib/models/organization.model.mjs +2 -0
- package/esm2022/lib/models/permission-type.model.mjs +15 -0
- package/esm2022/lib/models/roster-type.model.mjs +7 -0
- package/esm2022/lib/models/table-column-schema-user-group.model.mjs +12 -0
- package/esm2022/lib/models/user.model.mjs +1 -1
- package/esm2022/lib/services/group-permissions-map-service.mjs +71 -0
- package/esm2022/lib/services/groups.service.mjs +139 -16
- package/esm2022/lib/services/user-permissions.service.mjs +43 -0
- package/esm2022/public-api.mjs +7 -1
- package/fesm2022/ieeesa-npm-groups.mjs +1367 -195
- package/fesm2022/ieeesa-npm-groups.mjs.map +1 -1
- package/lib/assets/form-validations.d.ts +2 -0
- package/lib/components/add-user-roster/add-user-roster.component.d.ts +58 -1
- package/lib/components/edit-user-roles/edit-user-roles.component.d.ts +64 -11
- package/lib/components/tree-view/tree-view.component.d.ts +5 -1
- package/lib/components/view-roster/view-roster.component.d.ts +67 -8
- package/lib/groups.component.d.ts +17 -3
- package/lib/models/add-or-edit-user-group.model.d.ts +24 -8
- package/lib/models/classification.model.d.ts +10 -0
- package/lib/models/filter-type.model.d.ts +5 -0
- package/lib/models/group-permissions.model.d.ts +9 -0
- package/lib/models/group-types.model.d.ts +1 -0
- package/lib/models/group-user-info.model.d.ts +3 -0
- package/lib/models/member-type.model.d.ts +10 -0
- package/lib/models/organization.model.d.ts +9 -0
- package/lib/models/permission-type.model.d.ts +12 -0
- package/lib/models/roster-type.model.d.ts +4 -0
- package/lib/models/table-column-schema-user-group.model.d.ts +9 -0
- package/lib/models/user.model.d.ts +20 -5
- package/lib/services/group-permissions-map-service.d.ts +8 -0
- package/lib/services/groups.service.d.ts +109 -18
- package/lib/services/user-permissions.service.d.ts +25 -0
- package/package.json +4 -4
- package/public-api.d.ts +6 -0
|
@@ -1,19 +1,27 @@
|
|
|
1
1
|
import { Observable, BehaviorSubject } from 'rxjs';
|
|
2
2
|
import { CreateGroupPayload, CreateGroupResponse } from '../models/create-group.model';
|
|
3
|
-
import { GroupTypeConfiguration, GroupTypeConfigValue, GroupTypeResponse } from '../models/group-types.model';
|
|
3
|
+
import { BusinessRule, GroupTypeConfiguration, GroupTypeConfigValue, GroupTypeResponse } from '../models/group-types.model';
|
|
4
4
|
import { AlertsService, HttpService } from '@ieeesa-npm/utility';
|
|
5
5
|
import { GetGroupResponse, GetGroupsPayload } from '../models/view-group.model';
|
|
6
6
|
import { DeleteGroupPayload } from '../models/delete-group.model';
|
|
7
7
|
import { GroupInfo } from '../models/group-info.model';
|
|
8
|
-
import { SearchUsersPayload,
|
|
8
|
+
import { SearchUsersPayload, FilterUsersPayload, GetGroupUsersResponse, User } from '../models/user.model';
|
|
9
9
|
import { CheckboxOption } from '@ieeesa-npm/presentation';
|
|
10
10
|
import { EditGroupPayload } from '../models/edit-group.model';
|
|
11
11
|
import { GroupFunctionType } from '../models/group-function-type.model';
|
|
12
12
|
import { RosterFunctionType } from '../models/roster-function-type.model';
|
|
13
13
|
import { GroupUserInfo } from '../models/group-user-info.model';
|
|
14
|
-
import { AddOrEditUserPayload, AddOrEditGroupUserDetailsResponse } from '../models/add-or-edit-user-group.model';
|
|
14
|
+
import { AddOrEditUserPayload, AddOrEditGroupUserDetailsResponse, AddOrEditUserIndividualRosterPayload } from '../models/add-or-edit-user-group.model';
|
|
15
15
|
import { DeleteUserGroupPayload } from '../models/delete-user-group.model';
|
|
16
16
|
import { GetUserDetailsPayload, SearchUserByEmailResponse } from '../models/add-new-user.model';
|
|
17
|
+
import { OrganizationResponse } from '../models/organization.model';
|
|
18
|
+
import { MemberTypeResponse } from '../models/member-type.model';
|
|
19
|
+
import { ClassificationResponse } from '../models/classification.model';
|
|
20
|
+
import { GroupRosterType } from '../models/roster-type.model';
|
|
21
|
+
import { FormControlStatus } from '@angular/forms';
|
|
22
|
+
import { GroupPermission } from '../models/group-permissions.model';
|
|
23
|
+
import { PermissionType } from '../models/permission-type.model';
|
|
24
|
+
import { UserPermissionsService } from './user-permissions.service';
|
|
17
25
|
import * as i0 from "@angular/core";
|
|
18
26
|
/**
|
|
19
27
|
* Groups service is an abstract layer and responsible for managing groups REST API calls.
|
|
@@ -21,15 +29,11 @@ import * as i0 from "@angular/core";
|
|
|
21
29
|
*/
|
|
22
30
|
export declare class GroupsService {
|
|
23
31
|
private httpService;
|
|
32
|
+
private userPermissionsService;
|
|
24
33
|
alertService: AlertsService;
|
|
25
34
|
groupsText: {
|
|
26
|
-
/**
|
|
27
|
-
* Updates group form data to server using HttpService.
|
|
28
|
-
* @param {EditGroupPayload} editGroupPayload -edit group form data which includes group name, short name, scope.
|
|
29
|
-
* @return {Observable<EditGroupPayload>} -returns edit group API response (success or error) as an observable.
|
|
30
|
-
* @memberof GroupsService
|
|
31
|
-
*/
|
|
32
35
|
ER1000: string;
|
|
36
|
+
ER1001: string;
|
|
33
37
|
"1001": string;
|
|
34
38
|
"1002": string;
|
|
35
39
|
"1003": string;
|
|
@@ -45,6 +49,11 @@ export declare class GroupsService {
|
|
|
45
49
|
"1013": string;
|
|
46
50
|
"1014": string;
|
|
47
51
|
"1015": string;
|
|
52
|
+
/**
|
|
53
|
+
* Returns the selected group info.
|
|
54
|
+
* @return {(GroupInfo | undefined)} -group info.
|
|
55
|
+
* @memberof GroupsService
|
|
56
|
+
*/
|
|
48
57
|
"1016": string;
|
|
49
58
|
"1017": string;
|
|
50
59
|
"1018": string;
|
|
@@ -68,6 +77,19 @@ export declare class GroupsService {
|
|
|
68
77
|
"2002": string;
|
|
69
78
|
"2010": string;
|
|
70
79
|
"2011": string;
|
|
80
|
+
"20l2": string;
|
|
81
|
+
"2013": string;
|
|
82
|
+
"2014": string;
|
|
83
|
+
"2015": string;
|
|
84
|
+
"2016": string;
|
|
85
|
+
"2017": string;
|
|
86
|
+
"2018": string;
|
|
87
|
+
"2019": string;
|
|
88
|
+
"2020": string;
|
|
89
|
+
"2021": string;
|
|
90
|
+
"2022": string;
|
|
91
|
+
"2023": string;
|
|
92
|
+
"3004": string;
|
|
71
93
|
};
|
|
72
94
|
apiBaseUrl: string;
|
|
73
95
|
userPermission: any;
|
|
@@ -79,7 +101,9 @@ export declare class GroupsService {
|
|
|
79
101
|
selectedUserInfo: GroupUserInfo;
|
|
80
102
|
canShowMessage: boolean;
|
|
81
103
|
rosterFunctionType: RosterFunctionType;
|
|
82
|
-
|
|
104
|
+
userGroupPermissions: GroupPermission[];
|
|
105
|
+
groupTypes: GroupTypeConfiguration[];
|
|
106
|
+
constructor(httpService: HttpService, userPermissionsService: UserPermissionsService, alertService: AlertsService);
|
|
83
107
|
setAppConfig(apiBaseUrl: string, userPermission: any): void;
|
|
84
108
|
/**
|
|
85
109
|
* Gets application group types from API and returns it as an observable.
|
|
@@ -167,14 +191,14 @@ export declare class GroupsService {
|
|
|
167
191
|
* @return {Observable<GetGroupUsersResponse>}
|
|
168
192
|
* @memberof GroupsService
|
|
169
193
|
*/
|
|
170
|
-
getGroupUsers(groupId: string): Observable<GetGroupUsersResponse>;
|
|
194
|
+
getGroupUsers(groupId: string, sortColumn: string, sortDirection: boolean): Observable<GetGroupUsersResponse>;
|
|
171
195
|
/**
|
|
172
196
|
* Gets the group users based on the filtered roles.
|
|
173
|
-
* @param {
|
|
197
|
+
* @param {FilterUsersPayload} payload
|
|
174
198
|
* @return {Observable<GetGroupUsersResponse>}
|
|
175
199
|
* @memberof GroupsService
|
|
176
200
|
*/
|
|
177
|
-
getGroupUsersByRoles(payload:
|
|
201
|
+
getGroupUsersByRoles(payload: FilterUsersPayload): Observable<GetGroupUsersResponse>;
|
|
178
202
|
/**
|
|
179
203
|
* Gets the group users based on searched name or email
|
|
180
204
|
* @param {SearchUsersPayload} payload
|
|
@@ -189,6 +213,18 @@ export declare class GroupsService {
|
|
|
189
213
|
* @memberof GroupsService
|
|
190
214
|
*/
|
|
191
215
|
getGroupTypeRoles(groupTypeId: string): Observable<CheckboxOption[]>;
|
|
216
|
+
/**
|
|
217
|
+
* Fetches the classifications master data from configuration and returns.
|
|
218
|
+
* @return {Observable<ClassificationResponse>}
|
|
219
|
+
* @memberof GroupsService
|
|
220
|
+
*/
|
|
221
|
+
getClassifications(): Observable<ClassificationResponse>;
|
|
222
|
+
/**
|
|
223
|
+
* Fetches the member types master data from configuration and returns.
|
|
224
|
+
* @return {Observable<MemberTypeResponse>}
|
|
225
|
+
* @memberof GroupsService
|
|
226
|
+
*/
|
|
227
|
+
getMemberTypes(): Observable<MemberTypeResponse>;
|
|
192
228
|
/**
|
|
193
229
|
* Concatenates the group users assigned roles name separated by comma as string and returns the group users in an array.
|
|
194
230
|
* @param {GetGroupUsersResponse} response
|
|
@@ -219,11 +255,13 @@ export declare class GroupsService {
|
|
|
219
255
|
getGroupUserDetails(payload: GetUserDetailsPayload): Observable<AddOrEditGroupUserDetailsResponse>;
|
|
220
256
|
/**
|
|
221
257
|
* Posts add new user form data to the API for the selected group and returns the success or failure response.
|
|
222
|
-
* @param {AddOrEditUserPayload
|
|
258
|
+
* @param {(AddOrEditUserPayload
|
|
259
|
+
* | AddOrEditUserIndividualRosterPayload)} AddOrEditUserPayload
|
|
260
|
+
* @param {GroupRosterType} groupRosterType
|
|
223
261
|
* @return {Observable<AddOrEditGroupUserDetailsResponse>}
|
|
224
262
|
* @memberof GroupsService
|
|
225
263
|
*/
|
|
226
|
-
addNewGroupUser(AddOrEditUserPayload: AddOrEditUserPayload): Observable<AddOrEditGroupUserDetailsResponse>;
|
|
264
|
+
addNewGroupUser(AddOrEditUserPayload: AddOrEditUserPayload | AddOrEditUserIndividualRosterPayload, groupRosterType: GroupRosterType): Observable<AddOrEditGroupUserDetailsResponse>;
|
|
227
265
|
/**
|
|
228
266
|
* Sets the loaded group type user roles
|
|
229
267
|
* @param {CheckboxOption[]} userRoles
|
|
@@ -249,12 +287,12 @@ export declare class GroupsService {
|
|
|
249
287
|
*/
|
|
250
288
|
getSelectedUserInfo(): GroupUserInfo;
|
|
251
289
|
/**
|
|
252
|
-
* Updates group user roles to server using HttpService.
|
|
253
|
-
* @param {AddOrEditUserPayload} payload
|
|
290
|
+
* Updates group user roles and other details to server using HttpService.
|
|
291
|
+
* @param {(AddOrEditUserPayload | AddOrEditUserIndividualRosterPayload)} payload
|
|
254
292
|
* @return {Observable<AddOrEditGroupUserDetailsResponse>}
|
|
255
293
|
* @memberof GroupsService
|
|
256
294
|
*/
|
|
257
|
-
editGroupsUserRole(payload: AddOrEditUserPayload): Observable<AddOrEditGroupUserDetailsResponse>;
|
|
295
|
+
editGroupsUserRole(payload: AddOrEditUserPayload | AddOrEditUserIndividualRosterPayload): Observable<AddOrEditGroupUserDetailsResponse>;
|
|
258
296
|
/**
|
|
259
297
|
* Sets roster function type.
|
|
260
298
|
* @param {RosterFunctionType} rosterFunctionType
|
|
@@ -274,6 +312,59 @@ export declare class GroupsService {
|
|
|
274
312
|
* @memberof GroupsService
|
|
275
313
|
*/
|
|
276
314
|
groupsByNameAcronym(searchTerm: string): Observable<GetGroupResponse>;
|
|
315
|
+
/**
|
|
316
|
+
* Sets the user group permissions
|
|
317
|
+
* @param {GroupPermission[]} userGroupPermissions
|
|
318
|
+
* @memberof GroupsService
|
|
319
|
+
*/
|
|
320
|
+
setUserGroupPermissions(userGroupPermissions: GroupPermission[]): void;
|
|
321
|
+
/**
|
|
322
|
+
* Returns the user group permissions
|
|
323
|
+
* @return {GroupPermission[]}
|
|
324
|
+
* @memberof GroupsService
|
|
325
|
+
*/
|
|
326
|
+
getUserGroupPermissions(): GroupPermission[];
|
|
327
|
+
/**
|
|
328
|
+
* Validates permission based access for provided feature.
|
|
329
|
+
* @param {PermissionType} permissionType
|
|
330
|
+
* @return {boolean}
|
|
331
|
+
* @memberof GroupsService
|
|
332
|
+
*/
|
|
333
|
+
validateAccess(permissionType: PermissionType): boolean;
|
|
334
|
+
/**
|
|
335
|
+
* Store the loaded group types.
|
|
336
|
+
* @param {GroupTypeConfiguration[]} groupTypes
|
|
337
|
+
* @memberof GroupsService
|
|
338
|
+
*/
|
|
339
|
+
setLoadedGroupTypes(groupTypes: GroupTypeConfiguration[]): void;
|
|
340
|
+
/**
|
|
341
|
+
* Return the loaded group types.
|
|
342
|
+
* @return {GroupTypeConfiguration[]}
|
|
343
|
+
* @memberof GroupsService
|
|
344
|
+
*/
|
|
345
|
+
getLoadedGroupTypes(): GroupTypeConfiguration[];
|
|
346
|
+
/**
|
|
347
|
+
*
|
|
348
|
+
* @param {string} orgName
|
|
349
|
+
* @return {Observable<OrganizationResponse>}
|
|
350
|
+
* @memberof GroupsService
|
|
351
|
+
*/
|
|
352
|
+
getOrganizations(orgName: string): Observable<OrganizationResponse>;
|
|
353
|
+
/**
|
|
354
|
+
* Returns the group type configuration Business rule for the selected group.
|
|
355
|
+
* @return {(BusinessRule | undefined)}
|
|
356
|
+
* @memberof GroupsService
|
|
357
|
+
*/
|
|
358
|
+
getBusinessRuleOfSelectedGroup(): BusinessRule | undefined;
|
|
359
|
+
/**
|
|
360
|
+
* Enables or disables the form submit button based on passed parameters.
|
|
361
|
+
* @param {GroupRosterType} groupRosterType
|
|
362
|
+
* @param {FormControlStatus} formStatus
|
|
363
|
+
* @param {string[]} selectedUserRoles
|
|
364
|
+
* @return {boolean}
|
|
365
|
+
* @memberof GroupsService
|
|
366
|
+
*/
|
|
367
|
+
isSubmitButtonDisabled(groupRosterType: GroupRosterType, formStatus: FormControlStatus, selectedUserRoles: string[]): boolean;
|
|
277
368
|
static ɵfac: i0.ɵɵFactoryDeclaration<GroupsService, never>;
|
|
278
369
|
static ɵprov: i0.ɵɵInjectableDeclaration<GroupsService>;
|
|
279
370
|
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { PermissionType } from '../models/permission-type.model';
|
|
2
|
+
import { GroupPermissionsMapService } from './group-permissions-map-service';
|
|
3
|
+
import { GroupPermission, UserPermission } from '../models/group-permissions.model';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class UserPermissionsService {
|
|
6
|
+
private groupPermissionsService;
|
|
7
|
+
constructor(groupPermissionsService: GroupPermissionsMapService);
|
|
8
|
+
/**
|
|
9
|
+
* Returns access provision for the passed action/feature based on whether the signed in user has appropriate permission.
|
|
10
|
+
* @param {PermissionType} permission
|
|
11
|
+
* @param {GroupPermission[]} userGroupPermissions
|
|
12
|
+
* @return {boolean}
|
|
13
|
+
* @memberof UserPermissionsService
|
|
14
|
+
*/
|
|
15
|
+
validateAccessPermission(permission: PermissionType, userGroupPermissions: GroupPermission[]): boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Filters signed in user group permissions from entire group permissions.
|
|
18
|
+
* @param {UserPermissions[]} userPermissions
|
|
19
|
+
* @return {GroupPermissions[]}
|
|
20
|
+
* @memberof UserPermissionsService
|
|
21
|
+
*/
|
|
22
|
+
filterUserGroupPermissions(userPermissions: UserPermission[]): GroupPermission[];
|
|
23
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UserPermissionsService, never>;
|
|
24
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<UserPermissionsService>;
|
|
25
|
+
}
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ieeesa-npm/groups",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.3",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/common": "^16.1.0",
|
|
6
6
|
"@angular/core": "^16.1.0",
|
|
7
|
-
"@ieeesa-npm/presentation": "^0.8.
|
|
8
|
-
"@ieeesa-npm/shared-styles": "^0.2.
|
|
9
|
-
"@ieeesa-npm/utility": "^0.
|
|
7
|
+
"@ieeesa-npm/presentation": "^0.8.8",
|
|
8
|
+
"@ieeesa-npm/shared-styles": "^0.2.1",
|
|
9
|
+
"@ieeesa-npm/utility": "^0.8.0"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"tslib": "^2.3.0"
|
package/public-api.d.ts
CHANGED
|
@@ -14,6 +14,12 @@ export * from './lib/models/delete-group.model';
|
|
|
14
14
|
export * from './lib/models/group-user-info.model';
|
|
15
15
|
export * from './lib/models/add-or-edit-user-group.model';
|
|
16
16
|
export * from './lib/models/roster-function-type.model';
|
|
17
|
+
export * from './lib/models/classification.model';
|
|
18
|
+
export * from './lib/models/filter-type.model';
|
|
19
|
+
export * from './lib/models/organization.model';
|
|
20
|
+
export * from './lib/models/member-type.model';
|
|
21
|
+
export * from './lib/models/roster-type.model';
|
|
22
|
+
export * from './lib/models/table-column-schema-user-group.model';
|
|
17
23
|
export * from './lib/services/groups.service';
|
|
18
24
|
export * from './lib/assets/form-validations';
|
|
19
25
|
export * from './lib/groups.module';
|