UNPKG

@tomei/sso

Version:
178 lines 9.47 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.GroupObjectPrivilege = void 0; const general_1 = require("@tomei/general"); const group_object_privilege_repository_1 = require("./group-object-privilege.repository"); const object_status_enum_1 = require("../../enum/object-status.enum"); const config_1 = require("@tomei/config"); const activity_history_1 = require("@tomei/activity-history"); class GroupObjectPrivilege extends general_1.ObjectBase { get CreatedAt() { return this._CreatedAt; } get UpdatedAt() { return this._UpdatedAt; } get CreatedById() { return this._CreatedById; } get UpdatedById() { return this._UpdatedById; } constructor(GroupObjectPrivilegeAttr) { super(); this.TableName = 'sso_GroupObjectPrivilege'; if (GroupObjectPrivilegeAttr) { this.GroupObjectPrivilegeId = GroupObjectPrivilegeAttr.GroupObjectPrivilegeId; this.GroupCode = GroupObjectPrivilegeAttr.GroupCode; this.SystemPrivilegeId = GroupObjectPrivilegeAttr.SystemPrivilegeId; this.ObjectId = GroupObjectPrivilegeAttr.ObjectId; this.ObjectType = GroupObjectPrivilegeAttr.ObjectType; this.Status = GroupObjectPrivilegeAttr.Status; this._CreatedAt = GroupObjectPrivilegeAttr.CreatedAt; this._UpdatedAt = GroupObjectPrivilegeAttr.UpdatedAt; this._CreatedById = GroupObjectPrivilegeAttr.CreatedById; this._UpdatedById = GroupObjectPrivilegeAttr.UpdatedById; } } static init(dbTransaction, GroupObjectPrivilegeId) { return __awaiter(this, void 0, void 0, function* () { try { if (GroupObjectPrivilegeId) { const GroupObjectPrivilegeAttr = yield this._Repository.findOne({ where: { GroupObjectPrivilegeId }, transaction: dbTransaction, }); if (GroupObjectPrivilegeAttr) { return new GroupObjectPrivilege(GroupObjectPrivilegeAttr.get({ plain: true })); } else { throw new general_1.ClassError('GroupObjectPrivilege', 'GroupObjectPrivilegeErrMsg00', 'GroupObjectPrivilege not found'); } } return new GroupObjectPrivilege(); } catch (error) { throw error; } }); } static create(loginUser, dbTransaction, groupObjectPrivilege) { return __awaiter(this, void 0, void 0, function* () { try { const systemCode = config_1.ApplicationConfig.getComponentConfigValue('system-code'); const isPrivileged = yield loginUser.checkPrivileges(systemCode, 'GROUP_OBJECT_PRIVILEGE_CREATE'); if (!isPrivileged) { throw new general_1.ClassError('GroupObjectPrivilege', 'GroupErrMsg01', 'You do not have the privilege to create Group Object Privilege'); } if (!groupObjectPrivilege.GroupCode) { throw new general_1.ClassError('GroupObjectPrivilege', 'GroupObjectPrivilegeErrMsg01', 'GroupCode is missing.'); } if (!groupObjectPrivilege.SystemPrivilegeId) { throw new general_1.ClassError('GroupObjectPrivilege', 'GroupObjectPrivilegeErrMsg02', 'SystemPrivilegeId is missing.'); } if (!groupObjectPrivilege.ObjectId) { throw new general_1.ClassError('GroupObjectPrivilege', 'GroupObjectPrivilegeErrMsg03', 'ObjectId is missing.'); } if (!groupObjectPrivilege.ObjectType) { throw new general_1.ClassError('GroupObjectPrivilege', 'GroupObjectPrivilegeErrMsg04', 'ObjectType is missing.'); } const existingGroupObjectPrivilege = yield GroupObjectPrivilege._Repository.findOne({ where: { GroupCode: groupObjectPrivilege.GroupCode, SystemPrivilegeId: groupObjectPrivilege.SystemPrivilegeId, ObjectId: groupObjectPrivilege.ObjectId, ObjectType: groupObjectPrivilege.ObjectType, }, transaction: dbTransaction, }); if (existingGroupObjectPrivilege) { throw new general_1.ClassError('GroupObjectPrivilege', 'GroupObjectPrivilegeErrMsg05', 'Duplicate GroupObjectPrivilege found.'); } const objectAttr = { GroupCode: groupObjectPrivilege.GroupCode, SystemPrivilegeId: groupObjectPrivilege.SystemPrivilegeId, ObjectId: groupObjectPrivilege.ObjectId, ObjectType: groupObjectPrivilege.ObjectType, Status: object_status_enum_1.ObjectStatus.ACTIVE, CreatedById: loginUser.UserId, CreatedAt: new Date(), UpdatedById: loginUser.UserId, UpdatedAt: new Date(), }; const newGroupObjectPrivilege = new GroupObjectPrivilege(objectAttr); const createdObject = yield GroupObjectPrivilege._Repository.create(newGroupObjectPrivilege, { transaction: dbTransaction, }); newGroupObjectPrivilege.GroupObjectPrivilegeId = createdObject.GroupObjectPrivilegeId; const EntityValueBefore = {}; const EntityValueAfter = objectAttr; const activity = new activity_history_1.Activity(); activity.createId(); activity.Action = activity_history_1.ActionEnum.CREATE; activity.Description = `Create GroupObjectPrivilege for (${newGroupObjectPrivilege.GroupCode})`; activity.EntityType = 'GroupObjectPrivilege'; activity.EntityId = newGroupObjectPrivilege.GroupObjectPrivilegeId.toString(); activity.EntityValueBefore = JSON.stringify(EntityValueBefore); activity.EntityValueAfter = JSON.stringify(EntityValueAfter); yield activity.create(dbTransaction, loginUser.UserId); return newGroupObjectPrivilege; } catch (error) { throw error; } }); } delete(loginUser, dbTransaction) { return __awaiter(this, void 0, void 0, function* () { try { const systemCode = config_1.ApplicationConfig.getComponentConfigValue('system-code'); const isPrivileged = yield loginUser.checkPrivileges(systemCode, 'GROUP_OBJECT_PRIVILEGE_DELETE'); if (!isPrivileged) { throw new general_1.ClassError('GroupObjectPrivilege', 'GroupErrMsg01', 'You do not have the privilege to delete Group Object Privilege'); } yield GroupObjectPrivilege._Repository.delete(this.GroupObjectPrivilegeId, { transaction: dbTransaction, }); const EntityValueBefore = { GroupCode: this.GroupCode, SystemPrivilegeId: this.SystemPrivilegeId, ObjectId: this.ObjectId, ObjectType: this.ObjectType, Status: this.Status, CreatedById: this.CreatedById, UpdatedById: this.UpdatedById, }; const EntityValueAfter = {}; const activity = new activity_history_1.Activity(); activity.createId(); activity.Action = activity_history_1.ActionEnum.DELETE; activity.Description = `Delete GroupObjectPrivilege ${this.GroupObjectPrivilegeId}`; activity.EntityType = 'GroupObjectPrivilege'; activity.EntityId = this.GroupObjectPrivilegeId.toString(); activity.EntityValueBefore = JSON.stringify(EntityValueBefore); activity.EntityValueAfter = JSON.stringify(EntityValueAfter); yield activity.create(dbTransaction, loginUser.UserId); return this; } catch (error) { throw error; } }); } } exports.GroupObjectPrivilege = GroupObjectPrivilege; GroupObjectPrivilege._Repository = new group_object_privilege_repository_1.GroupObjectPrivilegeRepository(); //# sourceMappingURL=group-object-privilege.js.map