easywork-common-lib 1.0.1024 → 1.0.1028

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.
@@ -1,45 +1,46 @@
1
- export * from "./app_config/app-config.entity";
2
- export * from "./currency.entity";
3
- export * from "./drive";
4
- export * from "./easyapp/filter-view.entity";
5
- export * from "./email.entity";
6
- export * from "./group.entity";
7
- export * from "./imap-config.entity";
8
- export * from "./login-history.entity";
9
- export * from "./meeting-comment.entity";
10
- export * from "./meeting.entity";
11
- export * from "./menu-permissions.entity";
12
- export * from "./notifications";
13
- export * from "./otp-log.entity";
14
- export * from "./permission.entity";
15
- export * from "./phone.entity";
16
- export * from "./policy";
17
- export * from "./profile.entity";
18
- export * from "./protocol.entity";
19
- export * from "./refresh-token.entity";
20
- export * from "./role.entity";
21
- export * from "./sales";
22
- export * from "./tag.entity";
23
- export * from "./user-invitations.entity";
24
- export * from "./user.entity";
25
- export * from "./company.entity";
26
- export * from "./capacitation";
27
- export * from "./tools";
28
- export * from "./project_management";
29
- export * from "./tools/mail/email-signature.entity";
30
- export * from "./tools/mail/mailbox-user-access.entity";
31
- export * from "./tools/mail/mailbox.entity";
32
- export * from "./tools/mail/mail.entity";
33
- export * from "./all-activities.entity";
34
- export * from "./thirdparty/google-webhooks-config.entity";
35
- export * from "./thirdparty/google-gmail-watch-record.entity";
36
- export * from "./thirdparty/oauth.entity";
37
- export * from "./thirdparty/diio-integration.entity";
38
- export * from "./thirdparty/wati";
39
- export * from "./subscriptions/plan.entity";
40
- export * from "./subscriptions/subscription.entity";
41
- export * from "./subscriptions/payment-history.entity";
42
- export * from "./helpers";
43
- export * from "./audit.entity";
44
- export * from "./user-change-log.entity";
45
- export * from "./subgroup.entity";
1
+ export * from './app_config/app-config.entity';
2
+ export * from './currency.entity';
3
+ export * from './drive';
4
+ export * from './easyapp/filter-view.entity';
5
+ export * from './email.entity';
6
+ export * from './group.entity';
7
+ export * from './imap-config.entity';
8
+ export * from './login-history.entity';
9
+ export * from './meeting-comment.entity';
10
+ export * from './meeting.entity';
11
+ export * from './menu-permissions.entity';
12
+ export * from './notifications';
13
+ export * from './otp-log.entity';
14
+ export * from './permission.entity';
15
+ export * from './phone.entity';
16
+ export * from './policy';
17
+ export * from './profile.entity';
18
+ export * from './protocol.entity';
19
+ export * from './refresh-token.entity';
20
+ export * from './role.entity';
21
+ export * from './sales';
22
+ export * from './tag.entity';
23
+ export * from './user-invitations.entity';
24
+ export * from './user.entity';
25
+ export * from './company.entity';
26
+ export * from './capacitation';
27
+ export * from './tools';
28
+ export * from './project_management';
29
+ export * from './tools/mail/email-signature.entity';
30
+ export * from './tools/mail/mailbox-user-access.entity';
31
+ export * from './tools/mail/mailbox.entity';
32
+ export * from './tools/mail/mail.entity';
33
+ export * from './all-activities.entity';
34
+ export * from './thirdparty/google-webhooks-config.entity';
35
+ export * from './thirdparty/google-gmail-watch-record.entity';
36
+ export * from './thirdparty/oauth.entity';
37
+ export * from './thirdparty/diio-integration.entity';
38
+ export * from './thirdparty/wati';
39
+ export * from './subscriptions/plan.entity';
40
+ export * from './subscriptions/subscription.entity';
41
+ export * from './subscriptions/payment-history.entity';
42
+ export * from './helpers';
43
+ export * from './audit.entity';
44
+ export * from './role-audit-log.entity';
45
+ export * from './user-change-log.entity';
46
+ export * from './subgroup.entity';
@@ -57,6 +57,7 @@ __exportStar(require("./subscriptions/subscription.entity"), exports);
57
57
  __exportStar(require("./subscriptions/payment-history.entity"), exports);
58
58
  __exportStar(require("./helpers"), exports);
59
59
  __exportStar(require("./audit.entity"), exports);
60
+ __exportStar(require("./role-audit-log.entity"), exports);
60
61
  __exportStar(require("./user-change-log.entity"), exports);
61
62
  __exportStar(require("./subgroup.entity"), exports);
62
63
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/entities/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iEAA+C;AAC/C,oDAAkC;AAClC,0CAAwB;AACxB,+DAA6C;AAC7C,iDAA+B;AAC/B,iDAA+B;AAC/B,uDAAqC;AACrC,yDAAuC;AACvC,2DAAyC;AACzC,mDAAiC;AACjC,4DAA0C;AAC1C,kDAAgC;AAChC,mDAAiC;AACjC,sDAAoC;AACpC,iDAA+B;AAC/B,2CAAyB;AACzB,mDAAiC;AACjC,oDAAkC;AAClC,yDAAuC;AACvC,gDAA8B;AAC9B,0CAAwB;AACxB,+CAA6B;AAC7B,4DAA0C;AAC1C,gDAA8B;AAC9B,mDAAiC;AAGjC,iDAA+B;AAG/B,0CAAwB;AAGxB,uDAAqC;AAGrC,sEAAoD;AACpD,0EAAwD;AACxD,8DAA4C;AAC5C,2DAAyC;AAGzC,0DAAwC;AAGxC,6EAA2D;AAC3D,gFAA8D;AAC9D,4DAA0C;AAC1C,uEAAqD;AACrD,oDAAkC;AAGlC,8DAA4C;AAC5C,sEAAoD;AACpD,yEAAuD;AAGvD,4CAA0B;AAG1B,iDAA+B;AAG/B,2DAAyC;AAGzC,oDAAkC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/entities/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iEAA+C;AAC/C,oDAAkC;AAClC,0CAAwB;AACxB,+DAA6C;AAC7C,iDAA+B;AAC/B,iDAA+B;AAC/B,uDAAqC;AACrC,yDAAuC;AACvC,2DAAyC;AACzC,mDAAiC;AACjC,4DAA0C;AAC1C,kDAAgC;AAChC,mDAAiC;AACjC,sDAAoC;AACpC,iDAA+B;AAC/B,2CAAyB;AACzB,mDAAiC;AACjC,oDAAkC;AAClC,yDAAuC;AACvC,gDAA8B;AAC9B,0CAAwB;AACxB,+CAA6B;AAC7B,4DAA0C;AAC1C,gDAA8B;AAC9B,mDAAiC;AAGjC,iDAA+B;AAG/B,0CAAwB;AAGxB,uDAAqC;AAGrC,sEAAoD;AACpD,0EAAwD;AACxD,8DAA4C;AAC5C,2DAAyC;AAGzC,0DAAwC;AAGxC,6EAA2D;AAC3D,gFAA8D;AAC9D,4DAA0C;AAC1C,uEAAqD;AACrD,oDAAkC;AAGlC,8DAA4C;AAC5C,sEAAoD;AACpD,yEAAuD;AAGvD,4CAA0B;AAG1B,iDAA+B;AAC/B,0DAAwC;AAGxC,2DAAyC;AAGzC,oDAAkC"}
@@ -0,0 +1,29 @@
1
+ import { User } from './user.entity';
2
+ export declare enum AuditActionType {
3
+ ROLE_ASSIGNED = "ROLE_ASSIGNED",
4
+ ROLE_REMOVED = "ROLE_REMOVED",
5
+ PERMISSION_GRANTED = "PERMISSION_GRANTED",
6
+ PERMISSION_REVOKED = "PERMISSION_REVOKED",
7
+ MODULE_ACCESS_GRANTED = "MODULE_ACCESS_GRANTED",
8
+ MODULE_ACCESS_REVOKED = "MODULE_ACCESS_REVOKED"
9
+ }
10
+ export declare enum AuditStatus {
11
+ SUCCESS = "SUCCESS",
12
+ FAILED = "FAILED",
13
+ PENDING = "PENDING"
14
+ }
15
+ export declare class AuditLog {
16
+ id: number;
17
+ performedBy: User;
18
+ performedById: number;
19
+ targetUser: User;
20
+ targetUserId: number;
21
+ actionType: AuditActionType;
22
+ description: string;
23
+ oldValue: any;
24
+ newValue: any;
25
+ entityType: string;
26
+ entityName: string;
27
+ createdAt: Date;
28
+ getSummary(): string;
29
+ }
@@ -0,0 +1,160 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.AuditLog = exports.AuditStatus = exports.AuditActionType = void 0;
13
+ const typeorm_1 = require("typeorm");
14
+ const swagger_1 = require("@nestjs/swagger");
15
+ const user_entity_1 = require("./user.entity");
16
+ var AuditActionType;
17
+ (function (AuditActionType) {
18
+ AuditActionType["ROLE_ASSIGNED"] = "ROLE_ASSIGNED";
19
+ AuditActionType["ROLE_REMOVED"] = "ROLE_REMOVED";
20
+ AuditActionType["PERMISSION_GRANTED"] = "PERMISSION_GRANTED";
21
+ AuditActionType["PERMISSION_REVOKED"] = "PERMISSION_REVOKED";
22
+ AuditActionType["MODULE_ACCESS_GRANTED"] = "MODULE_ACCESS_GRANTED";
23
+ AuditActionType["MODULE_ACCESS_REVOKED"] = "MODULE_ACCESS_REVOKED";
24
+ })(AuditActionType || (exports.AuditActionType = AuditActionType = {}));
25
+ var AuditStatus;
26
+ (function (AuditStatus) {
27
+ AuditStatus["SUCCESS"] = "SUCCESS";
28
+ AuditStatus["FAILED"] = "FAILED";
29
+ AuditStatus["PENDING"] = "PENDING";
30
+ })(AuditStatus || (exports.AuditStatus = AuditStatus = {}));
31
+ let AuditLog = class AuditLog {
32
+ id;
33
+ performedBy;
34
+ performedById;
35
+ targetUser;
36
+ targetUserId;
37
+ actionType;
38
+ description;
39
+ oldValue;
40
+ newValue;
41
+ entityType;
42
+ entityName;
43
+ createdAt;
44
+ getSummary() {
45
+ const performer = this.performedBy?.name || `Usuario ${this.performedById}`;
46
+ const target = this.targetUser?.name || `Usuario ${this.targetUserId}`;
47
+ return `${performer} ${this.actionType.toLowerCase().replace('_', ' ')} para ${target}`;
48
+ }
49
+ };
50
+ exports.AuditLog = AuditLog;
51
+ __decorate([
52
+ (0, swagger_1.ApiProperty)({
53
+ description: 'ID único del registro de auditoría',
54
+ example: 1,
55
+ }),
56
+ (0, typeorm_1.PrimaryGeneratedColumn)(),
57
+ __metadata("design:type", Number)
58
+ ], AuditLog.prototype, "id", void 0);
59
+ __decorate([
60
+ (0, swagger_1.ApiProperty)({
61
+ description: 'Usuario que realizó el cambio',
62
+ type: () => user_entity_1.User,
63
+ }),
64
+ (0, typeorm_1.ManyToOne)(() => user_entity_1.User, { eager: true }),
65
+ (0, typeorm_1.JoinColumn)({ name: 'performed_by_id' }),
66
+ __metadata("design:type", user_entity_1.User)
67
+ ], AuditLog.prototype, "performedBy", void 0);
68
+ __decorate([
69
+ (0, swagger_1.ApiProperty)({
70
+ description: 'ID del usuario que realizó el cambio',
71
+ example: 123,
72
+ }),
73
+ (0, typeorm_1.Column)({ name: 'performed_by_id' }),
74
+ __metadata("design:type", Number)
75
+ ], AuditLog.prototype, "performedById", void 0);
76
+ __decorate([
77
+ (0, swagger_1.ApiProperty)({
78
+ description: 'Usuario objetivo del cambio',
79
+ type: () => user_entity_1.User,
80
+ }),
81
+ (0, typeorm_1.ManyToOne)(() => user_entity_1.User, { eager: true }),
82
+ (0, typeorm_1.JoinColumn)({ name: 'target_user_id' }),
83
+ __metadata("design:type", user_entity_1.User)
84
+ ], AuditLog.prototype, "targetUser", void 0);
85
+ __decorate([
86
+ (0, swagger_1.ApiProperty)({
87
+ description: 'ID del usuario objetivo del cambio',
88
+ example: 456,
89
+ }),
90
+ (0, typeorm_1.Column)({ name: 'target_user_id' }),
91
+ __metadata("design:type", Number)
92
+ ], AuditLog.prototype, "targetUserId", void 0);
93
+ __decorate([
94
+ (0, swagger_1.ApiProperty)({
95
+ description: 'Tipo de acción realizada',
96
+ enum: AuditActionType,
97
+ example: AuditActionType.ROLE_ASSIGNED,
98
+ }),
99
+ (0, typeorm_1.Column)({
100
+ type: 'enum',
101
+ enum: AuditActionType,
102
+ name: 'action_type',
103
+ }),
104
+ __metadata("design:type", String)
105
+ ], AuditLog.prototype, "actionType", void 0);
106
+ __decorate([
107
+ (0, swagger_1.ApiProperty)({
108
+ description: 'Descripción detallada del cambio realizado',
109
+ example: 'Se asignó el rol de Administrador al usuario Juan Pérez',
110
+ }),
111
+ (0, typeorm_1.Column)({ type: 'text' }),
112
+ __metadata("design:type", String)
113
+ ], AuditLog.prototype, "description", void 0);
114
+ __decorate([
115
+ (0, swagger_1.ApiProperty)({
116
+ description: 'Valor anterior antes del cambio (JSON)',
117
+ example: '{"role": "USER", "permissions": ["read"]}',
118
+ required: false,
119
+ }),
120
+ (0, typeorm_1.Column)({ type: 'json', nullable: true, name: 'old_value' }),
121
+ __metadata("design:type", Object)
122
+ ], AuditLog.prototype, "oldValue", void 0);
123
+ __decorate([
124
+ (0, swagger_1.ApiProperty)({
125
+ description: 'Valor nuevo después del cambio (JSON)',
126
+ example: '{"role": "ADMIN", "permissions": ["read", "write", "delete"]}',
127
+ required: false,
128
+ }),
129
+ (0, typeorm_1.Column)({ type: 'json', nullable: true, name: 'new_value' }),
130
+ __metadata("design:type", Object)
131
+ ], AuditLog.prototype, "newValue", void 0);
132
+ __decorate([
133
+ (0, swagger_1.ApiProperty)({
134
+ description: 'Entidad afectada (rol, permiso, módulo)',
135
+ example: 'Role',
136
+ }),
137
+ (0, typeorm_1.Column)({ name: 'entity_type' }),
138
+ __metadata("design:type", String)
139
+ ], AuditLog.prototype, "entityType", void 0);
140
+ __decorate([
141
+ (0, swagger_1.ApiProperty)({
142
+ description: 'Nombre de la entidad afectada',
143
+ example: 'Administrador',
144
+ required: false,
145
+ }),
146
+ (0, typeorm_1.Column)({ nullable: true, name: 'entity_name' }),
147
+ __metadata("design:type", String)
148
+ ], AuditLog.prototype, "entityName", void 0);
149
+ __decorate([
150
+ (0, swagger_1.ApiProperty)({
151
+ description: 'Fecha y hora de creación del registro',
152
+ example: '2024-01-15T10:30:00Z',
153
+ }),
154
+ (0, typeorm_1.CreateDateColumn)({ name: 'created_at' }),
155
+ __metadata("design:type", Date)
156
+ ], AuditLog.prototype, "createdAt", void 0);
157
+ exports.AuditLog = AuditLog = __decorate([
158
+ (0, typeorm_1.Entity)('role_audit_logs')
159
+ ], AuditLog);
160
+ //# sourceMappingURL=role-audit-log.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"role-audit-log.entity.js","sourceRoot":"","sources":["../../src/entities/role-audit-log.entity.ts"],"names":[],"mappings":"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"}