@tomei/sso 0.49.1 → 0.50.0

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tomei/sso",
3
- "version": "0.49.1",
3
+ "version": "0.50.0",
4
4
  "description": "Tomei SSO Package",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -8,4 +8,11 @@ export class SystemPrivilegeRepository
8
8
  constructor() {
9
9
  super(SystemPrivilege);
10
10
  }
11
+
12
+ async delete(systemPrivilegeId: string, dbTransaction?: any) {
13
+ return await SystemPrivilege.destroy({
14
+ where: { SystemPrivilegeId: systemPrivilegeId },
15
+ transaction: dbTransaction,
16
+ });
17
+ }
11
18
  }
@@ -213,7 +213,7 @@ export class SystemPrivilege extends ObjectBase {
213
213
  activity.Action = ActionEnum.CREATE;
214
214
  activity.Description = 'Add System Privilege';
215
215
  activity.EntityType = 'SystemPrivilege';
216
- activity.EntityId = newSystemPrivilege.SystemCode;
216
+ activity.EntityId = newSystemPrivilege.SystemPrivilegeId;
217
217
  activity.EntityValueBefore = JSON.stringify(EntityValueBefore);
218
218
  activity.EntityValueAfter = JSON.stringify(EntityValueAfter);
219
219
 
@@ -378,4 +378,74 @@ export class SystemPrivilege extends ObjectBase {
378
378
  throw error;
379
379
  }
380
380
  }
381
+
382
+ public async delete(dbTransaction: any, loginUser: LoginUser) {
383
+ try {
384
+ //Part 1: Privilege Checking
385
+ const systemCode: string =
386
+ ApplicationConfig.getComponentConfigValue('system-code');
387
+ const isPrivileged = await loginUser.checkPrivileges(
388
+ systemCode,
389
+ 'PRIVILEGE_DELETE',
390
+ );
391
+ if (!isPrivileged) {
392
+ throw new ClassError(
393
+ 'SystemPrivilege',
394
+ 'SystemPrivilegeErrMsg0X',
395
+ 'You do not have permission to delete system privileges',
396
+ );
397
+ }
398
+
399
+ //Part 2: Validation
400
+ //Make sure SystemPrivilegeId is not empty
401
+ if (!this.SystemPrivilegeId) {
402
+ throw new ClassError(
403
+ 'SystemPrivilege',
404
+ 'SystemPrivilegeErrMsg02',
405
+ 'System Privilege Id is required',
406
+ );
407
+ }
408
+
409
+ //Part 3: Delete Privilege
410
+
411
+ //Call SystemPrivilege._Repo delete method
412
+ await SystemPrivilege._Repository.delete(
413
+ this.SystemPrivilegeId,
414
+ dbTransaction,
415
+ );
416
+
417
+ //Part 4: Record Create Privilege Activity
418
+ //Initialise EntityValueBefore variable and set to empty object.
419
+ const EntityValueBefore = {
420
+ SystemPrivilegeId: this.ObjectId,
421
+ PrivilegeCode: this.PrivilegeCode,
422
+ SystemCode: this.SystemCode,
423
+ Description: this.Description,
424
+ Status: this.Status,
425
+ CreatedById: this._CreatedById,
426
+ UpdatedById: this._UpdatedById,
427
+ CreatedAt: this._CreatedAt,
428
+ UpdatedAt: this._UpdatedAt,
429
+ };
430
+ //Initialise EntityValueAfter variable and set to newSystemPrivilege object.
431
+ const EntityValueAfter = {};
432
+
433
+ //Instantiate new activity object and populate
434
+ const activity = new Activity();
435
+ activity.ActivityId = activity.createId();
436
+ activity.Action = ActionEnum.DELETE;
437
+ activity.Description = 'Delete System Privilege';
438
+ activity.EntityType = 'SystemPrivilege';
439
+ activity.EntityId = this.SystemPrivilegeId;
440
+ activity.EntityValueBefore = JSON.stringify(EntityValueBefore);
441
+ activity.EntityValueAfter = JSON.stringify(EntityValueAfter);
442
+
443
+ //Call Activity.create method
444
+ await activity.create(loginUser.ObjectId, dbTransaction);
445
+
446
+ return this;
447
+ } catch (error) {
448
+ throw error;
449
+ }
450
+ }
381
451
  }