easywork-common-lib 1.0.992 → 1.0.994
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/dist/common/@types/enums/permission.enum.d.ts +50 -6
- package/dist/common/@types/enums/permission.enum.js +39 -9
- package/dist/common/@types/enums/permission.enum.js.map +1 -1
- package/dist/entities/permission.entity.d.ts +2 -1
- package/dist/entities/permission.entity.js +10 -7
- package/dist/entities/permission.entity.js.map +1 -1
- package/dist/entities/user.entity.d.ts +13 -10
- package/dist/entities/user.entity.js +70 -49
- package/dist/entities/user.entity.js.map +1 -1
- package/package.json +1 -1
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -4,10 +4,54 @@ export declare enum Roles {
|
|
|
4
4
|
SUPERVISOR = "SUPERVISOR",
|
|
5
5
|
AUTHOR = "AUTHOR"
|
|
6
6
|
}
|
|
7
|
-
export declare enum
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
7
|
+
export declare enum PermissionAction {
|
|
8
|
+
CREATE = "create",
|
|
9
|
+
READ = "read",
|
|
10
|
+
UPDATE = "update",
|
|
11
|
+
DELETE = "delete",
|
|
12
|
+
MANAGE = "manage",
|
|
13
|
+
ASSIGN = "assign",
|
|
14
|
+
EXPORT = "export",
|
|
15
|
+
IMPORT = "import",
|
|
16
|
+
APPROVE = "approve",
|
|
17
|
+
REJECT = "reject",
|
|
18
|
+
CANCEL = "cancel",
|
|
19
|
+
COMMENT = "comment",
|
|
20
|
+
SHARE = "share",
|
|
21
|
+
ARCHIVE = "archive"
|
|
22
|
+
}
|
|
23
|
+
export declare enum PermissionScope {
|
|
24
|
+
OWN = "own",
|
|
25
|
+
TEAM = "team",
|
|
26
|
+
GROUP = "group",
|
|
27
|
+
ALL = "all",
|
|
28
|
+
ASSIGNED = "assigned",
|
|
29
|
+
SUPERVISED = "supervised"
|
|
30
|
+
}
|
|
31
|
+
export declare enum PermissionCondition {
|
|
32
|
+
ALWAYS = "always",
|
|
33
|
+
OWNER = "owner",
|
|
34
|
+
ASSIGNED_TO = "assignedTo",
|
|
35
|
+
OBSERVER = "observer",
|
|
36
|
+
SAME_GROUP = "sameGroup",
|
|
37
|
+
SAME_TEAM = "sameTeam",
|
|
38
|
+
ROLE_LEVEL = "roleLevel",
|
|
39
|
+
TIME_BASED = "timeBased",
|
|
40
|
+
STATUS_BASED = "statusBased"
|
|
41
|
+
}
|
|
42
|
+
export interface PermissionRule {
|
|
43
|
+
action: PermissionAction;
|
|
44
|
+
scope: PermissionScope;
|
|
45
|
+
conditions?: PermissionCondition[];
|
|
46
|
+
roleLevel?: number;
|
|
47
|
+
customConditions?: Record<string, any>;
|
|
48
|
+
timeRestrictions?: {
|
|
49
|
+
createdWithin?: number;
|
|
50
|
+
modifiedWithin?: number;
|
|
51
|
+
};
|
|
52
|
+
statusRestrictions?: string[];
|
|
53
|
+
}
|
|
54
|
+
export interface ResourcePermission {
|
|
55
|
+
resource: string;
|
|
56
|
+
rules: PermissionRule[];
|
|
13
57
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.PermissionCondition = exports.PermissionScope = exports.PermissionAction = exports.Roles = void 0;
|
|
4
4
|
var Roles;
|
|
5
5
|
(function (Roles) {
|
|
6
6
|
Roles["ADMIN"] = "ADMIN";
|
|
@@ -8,12 +8,42 @@ var Roles;
|
|
|
8
8
|
Roles["SUPERVISOR"] = "SUPERVISOR";
|
|
9
9
|
Roles["AUTHOR"] = "AUTHOR";
|
|
10
10
|
})(Roles || (exports.Roles = Roles = {}));
|
|
11
|
-
var
|
|
12
|
-
(function (
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
11
|
+
var PermissionAction;
|
|
12
|
+
(function (PermissionAction) {
|
|
13
|
+
PermissionAction["CREATE"] = "create";
|
|
14
|
+
PermissionAction["READ"] = "read";
|
|
15
|
+
PermissionAction["UPDATE"] = "update";
|
|
16
|
+
PermissionAction["DELETE"] = "delete";
|
|
17
|
+
PermissionAction["MANAGE"] = "manage";
|
|
18
|
+
PermissionAction["ASSIGN"] = "assign";
|
|
19
|
+
PermissionAction["EXPORT"] = "export";
|
|
20
|
+
PermissionAction["IMPORT"] = "import";
|
|
21
|
+
PermissionAction["APPROVE"] = "approve";
|
|
22
|
+
PermissionAction["REJECT"] = "reject";
|
|
23
|
+
PermissionAction["CANCEL"] = "cancel";
|
|
24
|
+
PermissionAction["COMMENT"] = "comment";
|
|
25
|
+
PermissionAction["SHARE"] = "share";
|
|
26
|
+
PermissionAction["ARCHIVE"] = "archive";
|
|
27
|
+
})(PermissionAction || (exports.PermissionAction = PermissionAction = {}));
|
|
28
|
+
var PermissionScope;
|
|
29
|
+
(function (PermissionScope) {
|
|
30
|
+
PermissionScope["OWN"] = "own";
|
|
31
|
+
PermissionScope["TEAM"] = "team";
|
|
32
|
+
PermissionScope["GROUP"] = "group";
|
|
33
|
+
PermissionScope["ALL"] = "all";
|
|
34
|
+
PermissionScope["ASSIGNED"] = "assigned";
|
|
35
|
+
PermissionScope["SUPERVISED"] = "supervised";
|
|
36
|
+
})(PermissionScope || (exports.PermissionScope = PermissionScope = {}));
|
|
37
|
+
var PermissionCondition;
|
|
38
|
+
(function (PermissionCondition) {
|
|
39
|
+
PermissionCondition["ALWAYS"] = "always";
|
|
40
|
+
PermissionCondition["OWNER"] = "owner";
|
|
41
|
+
PermissionCondition["ASSIGNED_TO"] = "assignedTo";
|
|
42
|
+
PermissionCondition["OBSERVER"] = "observer";
|
|
43
|
+
PermissionCondition["SAME_GROUP"] = "sameGroup";
|
|
44
|
+
PermissionCondition["SAME_TEAM"] = "sameTeam";
|
|
45
|
+
PermissionCondition["ROLE_LEVEL"] = "roleLevel";
|
|
46
|
+
PermissionCondition["TIME_BASED"] = "timeBased";
|
|
47
|
+
PermissionCondition["STATUS_BASED"] = "statusBased";
|
|
48
|
+
})(PermissionCondition || (exports.PermissionCondition = PermissionCondition = {}));
|
|
19
49
|
//# sourceMappingURL=permission.enum.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permission.enum.js","sourceRoot":"","sources":["../../../../src/common/@types/enums/permission.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,KAKX;AALD,WAAY,KAAK;IACf,wBAAe,CAAA;IACf,sBAAa,CAAA;IACb,kCAAyB,CAAA;IACzB,0BAAiB,CAAA;AACnB,CAAC,EALW,KAAK,qBAAL,KAAK,QAKhB;AAED,IAAY,
|
|
1
|
+
{"version":3,"file":"permission.enum.js","sourceRoot":"","sources":["../../../../src/common/@types/enums/permission.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,KAKX;AALD,WAAY,KAAK;IACf,wBAAe,CAAA;IACf,sBAAa,CAAA;IACb,kCAAyB,CAAA;IACzB,0BAAiB,CAAA;AACnB,CAAC,EALW,KAAK,qBAAL,KAAK,QAKhB;AAED,IAAY,gBAeX;AAfD,WAAY,gBAAgB;IAC1B,qCAAiB,CAAA;IACjB,iCAAa,CAAA;IACb,qCAAiB,CAAA;IACjB,qCAAiB,CAAA;IACjB,qCAAiB,CAAA;IACjB,qCAAiB,CAAA;IACjB,qCAAiB,CAAA;IACjB,qCAAiB,CAAA;IACjB,uCAAmB,CAAA;IACnB,qCAAiB,CAAA;IACjB,qCAAiB,CAAA;IACjB,uCAAmB,CAAA;IACnB,mCAAe,CAAA;IACf,uCAAmB,CAAA;AACrB,CAAC,EAfW,gBAAgB,gCAAhB,gBAAgB,QAe3B;AAED,IAAY,eAOX;AAPD,WAAY,eAAe;IACzB,8BAAW,CAAA;IACX,gCAAa,CAAA;IACb,kCAAe,CAAA;IACf,8BAAW,CAAA;IACX,wCAAqB,CAAA;IACrB,4CAAyB,CAAA;AAC3B,CAAC,EAPW,eAAe,+BAAf,eAAe,QAO1B;AAED,IAAY,mBAUX;AAVD,WAAY,mBAAmB;IAC7B,wCAAiB,CAAA;IACjB,sCAAe,CAAA;IACf,iDAA0B,CAAA;IAC1B,4CAAqB,CAAA;IACrB,+CAAwB,CAAA;IACxB,6CAAsB,CAAA;IACtB,+CAAwB,CAAA;IACxB,+CAAwB,CAAA;IACxB,mDAA4B,CAAA;AAC9B,CAAC,EAVW,mBAAmB,mCAAnB,mBAAmB,QAU9B"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { EntityBase } from "../common/database/base.entity";
|
|
2
2
|
import { Role } from "./role.entity";
|
|
3
|
+
import { PermissionRule } from "../common";
|
|
3
4
|
export declare class Permission extends EntityBase {
|
|
4
5
|
resource: string;
|
|
5
|
-
|
|
6
|
+
rules: PermissionRule[];
|
|
6
7
|
roles?: Role[];
|
|
7
8
|
}
|
|
@@ -16,22 +16,25 @@ const role_entity_1 = require("./role.entity");
|
|
|
16
16
|
const swagger_1 = require("@nestjs/swagger");
|
|
17
17
|
let Permission = class Permission extends base_entity_1.EntityBase {
|
|
18
18
|
resource;
|
|
19
|
-
|
|
19
|
+
rules;
|
|
20
20
|
roles;
|
|
21
21
|
};
|
|
22
22
|
exports.Permission = Permission;
|
|
23
23
|
__decorate([
|
|
24
|
-
(0, swagger_1.ApiProperty)({ type: String, description:
|
|
24
|
+
(0, swagger_1.ApiProperty)({ type: String, description: "Resource for the permission" }),
|
|
25
25
|
(0, typeorm_1.Column)(),
|
|
26
26
|
__metadata("design:type", String)
|
|
27
27
|
], Permission.prototype, "resource", void 0);
|
|
28
28
|
__decorate([
|
|
29
|
-
(0, swagger_1.ApiProperty)({ type: String, description:
|
|
30
|
-
(0, typeorm_1.Column)(),
|
|
31
|
-
__metadata("design:type",
|
|
32
|
-
], Permission.prototype, "
|
|
29
|
+
(0, swagger_1.ApiProperty)({ type: String, description: "Rules for the permission" }),
|
|
30
|
+
(0, typeorm_1.Column)({ type: "jsonb", nullable: true }),
|
|
31
|
+
__metadata("design:type", Array)
|
|
32
|
+
], Permission.prototype, "rules", void 0);
|
|
33
33
|
__decorate([
|
|
34
|
-
(0, swagger_1.ApiProperty)({
|
|
34
|
+
(0, swagger_1.ApiProperty)({
|
|
35
|
+
type: () => [role_entity_1.Role],
|
|
36
|
+
description: "Roles associated with the permission",
|
|
37
|
+
}),
|
|
35
38
|
(0, typeorm_1.ManyToMany)(() => role_entity_1.Role, {
|
|
36
39
|
onDelete: "CASCADE",
|
|
37
40
|
onUpdate: "CASCADE",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permission.entity.js","sourceRoot":"","sources":["../../src/entities/permission.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gEAA4D;AAC5D,qCAAuE;AACvE,+CAAqC;AACrC,6CAA8C;
|
|
1
|
+
{"version":3,"file":"permission.entity.js","sourceRoot":"","sources":["../../src/entities/permission.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gEAA4D;AAC5D,qCAAuE;AACvE,+CAAqC;AACrC,6CAA8C;AAKvC,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,wBAAU;IAGxC,QAAQ,CAAS;IAIjB,KAAK,CAAmB;IAWxB,KAAK,CAAU;CAChB,CAAA;AAnBY,gCAAU;AAGrB;IAFC,IAAA,qBAAW,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,6BAA6B,EAAE,CAAC;IACzE,IAAA,gBAAM,GAAE;;4CACQ;AAIjB;IAFC,IAAA,qBAAW,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,0BAA0B,EAAE,CAAC;IACtE,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yCAClB;AAWxB;IATC,IAAA,qBAAW,EAAC;QACX,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,kBAAI,CAAC;QAClB,WAAW,EAAE,sCAAsC;KACpD,CAAC;IACD,IAAA,oBAAU,EAAC,GAAG,EAAE,CAAC,kBAAI,EAAE;QACtB,QAAQ,EAAE,SAAS;QACnB,QAAQ,EAAE,SAAS;KACpB,CAAC;IACD,IAAA,mBAAS,GAAE;;yCACG;qBAlBJ,UAAU;IAFtB,IAAA,gBAAM,GAAE;IACR,IAAA,eAAK,EAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;GACnC,UAAU,CAmBtB"}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import { Agent, Contact } from
|
|
2
|
-
import { Course, CourseAssigned } from
|
|
3
|
-
import { EntityBase } from
|
|
4
|
-
import { Group } from
|
|
5
|
-
import { MenuPermissions } from
|
|
6
|
-
import { Profile } from
|
|
7
|
-
import { PushToken } from
|
|
8
|
-
import { Role } from
|
|
9
|
-
import { Tag } from
|
|
10
|
-
import { UserStatus } from
|
|
1
|
+
import { Agent, Contact } from "./sales";
|
|
2
|
+
import { Course, CourseAssigned } from "./capacitation";
|
|
3
|
+
import { EntityBase } from "../common/database/base.entity";
|
|
4
|
+
import { Group } from "./group.entity";
|
|
5
|
+
import { MenuPermissions } from "./menu-permissions.entity";
|
|
6
|
+
import { Profile } from "./profile.entity";
|
|
7
|
+
import { PushToken } from "./notifications/push-token.entity";
|
|
8
|
+
import { Role } from "./role.entity";
|
|
9
|
+
import { Tag } from "./tag.entity";
|
|
10
|
+
import { UserStatus } from "../common/enums/tools.enum";
|
|
11
|
+
import { SubGroup } from "./subgroup.entity";
|
|
11
12
|
export declare class User extends EntityBase {
|
|
12
13
|
username: string;
|
|
13
14
|
email: string;
|
|
@@ -33,5 +34,7 @@ export declare class User extends EntityBase {
|
|
|
33
34
|
agentProfile?: Agent;
|
|
34
35
|
createdCourses?: Course[];
|
|
35
36
|
coursesAssigned?: CourseAssigned[];
|
|
37
|
+
supervisedSubGroups?: SubGroup[];
|
|
38
|
+
assistantSubGroups?: SubGroup[];
|
|
36
39
|
searchVector: string;
|
|
37
40
|
}
|
|
@@ -23,6 +23,7 @@ const push_token_entity_1 = require("./notifications/push-token.entity");
|
|
|
23
23
|
const role_entity_1 = require("./role.entity");
|
|
24
24
|
const tag_entity_1 = require("./tag.entity");
|
|
25
25
|
const tools_enum_1 = require("../common/enums/tools.enum");
|
|
26
|
+
const subgroup_entity_1 = require("./subgroup.entity");
|
|
26
27
|
let User = class User extends base_entity_1.EntityBase {
|
|
27
28
|
username;
|
|
28
29
|
email;
|
|
@@ -45,60 +46,62 @@ let User = class User extends base_entity_1.EntityBase {
|
|
|
45
46
|
cua;
|
|
46
47
|
contact;
|
|
47
48
|
get name() {
|
|
48
|
-
return `${this.profile?.firstName ??
|
|
49
|
+
return `${this.profile?.firstName ?? ""} ${this.profile?.lastName ?? ""}`.trim();
|
|
49
50
|
}
|
|
50
51
|
agentProfile;
|
|
51
52
|
createdCourses;
|
|
52
53
|
coursesAssigned;
|
|
54
|
+
supervisedSubGroups;
|
|
55
|
+
assistantSubGroups;
|
|
53
56
|
searchVector;
|
|
54
57
|
};
|
|
55
58
|
exports.User = User;
|
|
56
59
|
__decorate([
|
|
57
|
-
(0, swagger_1.ApiProperty)({ type: String, description:
|
|
60
|
+
(0, swagger_1.ApiProperty)({ type: String, description: "Unique username" }),
|
|
58
61
|
(0, typeorm_1.Column)({ unique: true }),
|
|
59
62
|
__metadata("design:type", String)
|
|
60
63
|
], User.prototype, "username", void 0);
|
|
61
64
|
__decorate([
|
|
62
|
-
(0, swagger_1.ApiProperty)({ type: String, description:
|
|
65
|
+
(0, swagger_1.ApiProperty)({ type: String, description: "Unique email address" }),
|
|
63
66
|
(0, typeorm_1.Column)({ unique: true }),
|
|
64
67
|
__metadata("design:type", String)
|
|
65
68
|
], User.prototype, "email", void 0);
|
|
66
69
|
__decorate([
|
|
67
|
-
(0, swagger_1.ApiProperty)({ type: String, description:
|
|
68
|
-
(0, typeorm_1.Column)({ type:
|
|
70
|
+
(0, swagger_1.ApiProperty)({ type: String, description: "User bio", nullable: true }),
|
|
71
|
+
(0, typeorm_1.Column)({ type: "text", nullable: true }),
|
|
69
72
|
__metadata("design:type", String)
|
|
70
73
|
], User.prototype, "bio", void 0);
|
|
71
74
|
__decorate([
|
|
72
|
-
(0, swagger_1.ApiProperty)({ type: String, description:
|
|
73
|
-
(0, typeorm_1.Column)({ type:
|
|
75
|
+
(0, swagger_1.ApiProperty)({ type: String, description: "User avatar URL", nullable: true }),
|
|
76
|
+
(0, typeorm_1.Column)({ type: "text", nullable: true }),
|
|
74
77
|
__metadata("design:type", String)
|
|
75
78
|
], User.prototype, "avatar", void 0);
|
|
76
79
|
__decorate([
|
|
77
|
-
(0, swagger_1.ApiProperty)({ enum: tools_enum_1.UserStatus, description:
|
|
78
|
-
(0, typeorm_1.Column)({ type:
|
|
80
|
+
(0, swagger_1.ApiProperty)({ enum: tools_enum_1.UserStatus, description: "User status" }),
|
|
81
|
+
(0, typeorm_1.Column)({ type: "enum", enum: tools_enum_1.UserStatus, default: tools_enum_1.UserStatus.offline }),
|
|
79
82
|
__metadata("design:type", String)
|
|
80
83
|
], User.prototype, "status", void 0);
|
|
81
84
|
__decorate([
|
|
82
|
-
(0, swagger_1.ApiProperty)({ enum: tools_enum_1.UserStatus, description:
|
|
83
|
-
(0, typeorm_1.Column)({ type:
|
|
85
|
+
(0, swagger_1.ApiProperty)({ enum: tools_enum_1.UserStatus, description: "User status" }),
|
|
86
|
+
(0, typeorm_1.Column)({ type: "enum", enum: tools_enum_1.UserStatus, default: tools_enum_1.UserStatus.working }),
|
|
84
87
|
__metadata("design:type", String)
|
|
85
88
|
], User.prototype, "savedStatus", void 0);
|
|
86
89
|
__decorate([
|
|
87
90
|
(0, class_transformer_1.Exclude)(),
|
|
88
91
|
(0, swagger_1.ApiProperty)({
|
|
89
92
|
type: String,
|
|
90
|
-
description:
|
|
93
|
+
description: "Password hash",
|
|
91
94
|
writeOnly: true,
|
|
92
95
|
nullable: true,
|
|
93
96
|
}),
|
|
94
|
-
(0, typeorm_1.Column)({ type:
|
|
97
|
+
(0, typeorm_1.Column)({ type: "text", nullable: true }),
|
|
95
98
|
__metadata("design:type", String)
|
|
96
99
|
], User.prototype, "hash", void 0);
|
|
97
100
|
__decorate([
|
|
98
101
|
(0, class_transformer_1.Exclude)(),
|
|
99
102
|
(0, swagger_1.ApiProperty)({
|
|
100
103
|
type: String,
|
|
101
|
-
description:
|
|
104
|
+
description: "Two-factor authentication secret",
|
|
102
105
|
required: false,
|
|
103
106
|
writeOnly: true,
|
|
104
107
|
}),
|
|
@@ -108,7 +111,7 @@ __decorate([
|
|
|
108
111
|
__decorate([
|
|
109
112
|
(0, swagger_1.ApiProperty)({
|
|
110
113
|
type: Boolean,
|
|
111
|
-
description:
|
|
114
|
+
description: "Is two-factor authentication enabled",
|
|
112
115
|
default: false,
|
|
113
116
|
}),
|
|
114
117
|
(0, typeorm_1.Column)({ default: false }),
|
|
@@ -117,7 +120,7 @@ __decorate([
|
|
|
117
120
|
__decorate([
|
|
118
121
|
(0, swagger_1.ApiProperty)({
|
|
119
122
|
type: String,
|
|
120
|
-
description:
|
|
123
|
+
description: "User phone number",
|
|
121
124
|
required: false,
|
|
122
125
|
}),
|
|
123
126
|
(0, typeorm_1.Column)({ unique: true }),
|
|
@@ -126,7 +129,7 @@ __decorate([
|
|
|
126
129
|
__decorate([
|
|
127
130
|
(0, swagger_1.ApiProperty)({
|
|
128
131
|
type: Boolean,
|
|
129
|
-
description:
|
|
132
|
+
description: "Is user verified",
|
|
130
133
|
default: false,
|
|
131
134
|
}),
|
|
132
135
|
(0, typeorm_1.Column)({ default: false }),
|
|
@@ -135,17 +138,17 @@ __decorate([
|
|
|
135
138
|
__decorate([
|
|
136
139
|
(0, swagger_1.ApiProperty)({
|
|
137
140
|
type: Date,
|
|
138
|
-
description:
|
|
141
|
+
description: "Last login timestamp",
|
|
139
142
|
required: false,
|
|
140
143
|
}),
|
|
141
|
-
(0, typeorm_1.Column)({ type:
|
|
144
|
+
(0, typeorm_1.Column)({ type: "timestamp", nullable: true }),
|
|
142
145
|
__metadata("design:type", Date)
|
|
143
146
|
], User.prototype, "lastLogin", void 0);
|
|
144
147
|
__decorate([
|
|
145
|
-
(0, swagger_1.ApiProperty)({ type: () => profile_entity_1.Profile, description:
|
|
148
|
+
(0, swagger_1.ApiProperty)({ type: () => profile_entity_1.Profile, description: "User profile" }),
|
|
146
149
|
(0, typeorm_1.OneToOne)(() => profile_entity_1.Profile, {
|
|
147
|
-
onDelete:
|
|
148
|
-
onUpdate:
|
|
150
|
+
onDelete: "CASCADE",
|
|
151
|
+
onUpdate: "CASCADE",
|
|
149
152
|
eager: true,
|
|
150
153
|
}),
|
|
151
154
|
(0, typeorm_1.JoinColumn)(),
|
|
@@ -154,11 +157,11 @@ __decorate([
|
|
|
154
157
|
__decorate([
|
|
155
158
|
(0, swagger_1.ApiProperty)({
|
|
156
159
|
type: () => [role_entity_1.Role],
|
|
157
|
-
description:
|
|
160
|
+
description: "Roles assigned to the user",
|
|
158
161
|
}),
|
|
159
162
|
(0, typeorm_1.ManyToMany)(() => role_entity_1.Role, {
|
|
160
|
-
onDelete:
|
|
161
|
-
onUpdate:
|
|
163
|
+
onDelete: "CASCADE",
|
|
164
|
+
onUpdate: "CASCADE",
|
|
162
165
|
}),
|
|
163
166
|
(0, typeorm_1.JoinTable)(),
|
|
164
167
|
__metadata("design:type", Array)
|
|
@@ -166,92 +169,110 @@ __decorate([
|
|
|
166
169
|
__decorate([
|
|
167
170
|
(0, swagger_1.ApiProperty)({
|
|
168
171
|
type: () => [tag_entity_1.Tag],
|
|
169
|
-
description:
|
|
172
|
+
description: "Tags associated with the user",
|
|
170
173
|
}),
|
|
171
|
-
(0, typeorm_1.OneToMany)(() => tag_entity_1.Tag, tag => tag.user),
|
|
174
|
+
(0, typeorm_1.OneToMany)(() => tag_entity_1.Tag, (tag) => tag.user),
|
|
172
175
|
__metadata("design:type", Array)
|
|
173
176
|
], User.prototype, "tags", void 0);
|
|
174
177
|
__decorate([
|
|
175
178
|
(0, swagger_1.ApiProperty)({
|
|
176
179
|
type: () => [push_token_entity_1.PushToken],
|
|
177
|
-
description:
|
|
180
|
+
description: "Push tokens associated with the user",
|
|
178
181
|
}),
|
|
179
|
-
(0, typeorm_1.OneToMany)(() => push_token_entity_1.PushToken, pushToken => pushToken.user),
|
|
182
|
+
(0, typeorm_1.OneToMany)(() => push_token_entity_1.PushToken, (pushToken) => pushToken.user),
|
|
180
183
|
__metadata("design:type", Array)
|
|
181
184
|
], User.prototype, "pushTokens", void 0);
|
|
182
185
|
__decorate([
|
|
183
186
|
(0, swagger_1.ApiProperty)({
|
|
184
187
|
type: () => [group_entity_1.Group],
|
|
185
|
-
description:
|
|
188
|
+
description: "Groups assigned to the user",
|
|
186
189
|
}),
|
|
187
|
-
(0, typeorm_1.ManyToMany)(() => group_entity_1.Group, group => group.users, {
|
|
188
|
-
onDelete:
|
|
189
|
-
onUpdate:
|
|
190
|
+
(0, typeorm_1.ManyToMany)(() => group_entity_1.Group, (group) => group.users, {
|
|
191
|
+
onDelete: "CASCADE",
|
|
192
|
+
onUpdate: "CASCADE",
|
|
190
193
|
}),
|
|
191
194
|
(0, typeorm_1.JoinTable)(),
|
|
192
195
|
__metadata("design:type", Array)
|
|
193
196
|
], User.prototype, "groups", void 0);
|
|
194
197
|
__decorate([
|
|
195
|
-
(0, swagger_1.ApiProperty)({ type: () => menu_permissions_entity_1.MenuPermissions, description:
|
|
198
|
+
(0, swagger_1.ApiProperty)({ type: () => menu_permissions_entity_1.MenuPermissions, description: "Menu Permissions" }),
|
|
196
199
|
(0, typeorm_1.OneToOne)(() => menu_permissions_entity_1.MenuPermissions, {
|
|
197
|
-
onDelete:
|
|
198
|
-
onUpdate:
|
|
200
|
+
onDelete: "CASCADE",
|
|
201
|
+
onUpdate: "CASCADE",
|
|
199
202
|
eager: true,
|
|
200
203
|
}),
|
|
201
204
|
(0, typeorm_1.JoinColumn)(),
|
|
202
205
|
__metadata("design:type", menu_permissions_entity_1.MenuPermissions)
|
|
203
206
|
], User.prototype, "menuPermissions", void 0);
|
|
204
207
|
__decorate([
|
|
205
|
-
(0, swagger_1.ApiProperty)({ type: String, description:
|
|
208
|
+
(0, swagger_1.ApiProperty)({ type: String, description: "CUA", required: false }),
|
|
206
209
|
(0, typeorm_1.Column)({ nullable: true }),
|
|
207
210
|
__metadata("design:type", String)
|
|
208
211
|
], User.prototype, "cua", void 0);
|
|
209
212
|
__decorate([
|
|
210
213
|
(0, swagger_1.ApiProperty)({
|
|
211
214
|
type: () => User,
|
|
212
|
-
description:
|
|
215
|
+
description: "User associated with the contact",
|
|
213
216
|
required: false,
|
|
214
217
|
}),
|
|
215
|
-
(0, typeorm_1.OneToOne)(() => sales_1.Contact, contact => contact.user, {
|
|
216
|
-
onDelete:
|
|
217
|
-
onUpdate:
|
|
218
|
+
(0, typeorm_1.OneToOne)(() => sales_1.Contact, (contact) => contact.user, {
|
|
219
|
+
onDelete: "SET NULL",
|
|
220
|
+
onUpdate: "CASCADE",
|
|
218
221
|
}),
|
|
219
222
|
__metadata("design:type", sales_1.Contact)
|
|
220
223
|
], User.prototype, "contact", void 0);
|
|
221
224
|
__decorate([
|
|
222
|
-
(0, swagger_1.ApiProperty)({ type: String, description:
|
|
225
|
+
(0, swagger_1.ApiProperty)({ type: String, description: "Full name of the user" }),
|
|
223
226
|
__metadata("design:type", String),
|
|
224
227
|
__metadata("design:paramtypes", [])
|
|
225
228
|
], User.prototype, "name", null);
|
|
226
229
|
__decorate([
|
|
227
230
|
(0, swagger_1.ApiProperty)({
|
|
228
231
|
type: () => sales_1.Agent,
|
|
229
|
-
description:
|
|
232
|
+
description: "Agent associated with the user",
|
|
230
233
|
required: false,
|
|
231
234
|
}),
|
|
232
|
-
(0, typeorm_1.OneToOne)(() => sales_1.Agent, agent => agent.user),
|
|
235
|
+
(0, typeorm_1.OneToOne)(() => sales_1.Agent, (agent) => agent.user),
|
|
233
236
|
__metadata("design:type", sales_1.Agent)
|
|
234
237
|
], User.prototype, "agentProfile", void 0);
|
|
235
238
|
__decorate([
|
|
236
239
|
(0, swagger_1.ApiProperty)({
|
|
237
240
|
type: () => capacitation_1.Course,
|
|
238
|
-
description:
|
|
241
|
+
description: "Courses created",
|
|
239
242
|
required: false,
|
|
240
243
|
}),
|
|
241
|
-
(0, typeorm_1.OneToMany)(() => capacitation_1.Course, course => course.createdBy),
|
|
244
|
+
(0, typeorm_1.OneToMany)(() => capacitation_1.Course, (course) => course.createdBy),
|
|
242
245
|
__metadata("design:type", Array)
|
|
243
246
|
], User.prototype, "createdCourses", void 0);
|
|
244
247
|
__decorate([
|
|
245
248
|
(0, swagger_1.ApiProperty)({
|
|
246
249
|
type: () => capacitation_1.CourseAssigned,
|
|
247
|
-
description:
|
|
250
|
+
description: "Progress of assigned courses",
|
|
248
251
|
required: false,
|
|
249
252
|
}),
|
|
250
|
-
(0, typeorm_1.OneToMany)(() => capacitation_1.CourseAssigned, courseAssigned => courseAssigned.user),
|
|
253
|
+
(0, typeorm_1.OneToMany)(() => capacitation_1.CourseAssigned, (courseAssigned) => courseAssigned.user),
|
|
251
254
|
__metadata("design:type", Array)
|
|
252
255
|
], User.prototype, "coursesAssigned", void 0);
|
|
253
256
|
__decorate([
|
|
254
|
-
(0,
|
|
257
|
+
(0, swagger_1.ApiProperty)({
|
|
258
|
+
type: () => [subgroup_entity_1.SubGroup],
|
|
259
|
+
description: "SubGroups where the user is a supervisor",
|
|
260
|
+
required: false,
|
|
261
|
+
}),
|
|
262
|
+
(0, typeorm_1.OneToMany)(() => subgroup_entity_1.SubGroup, (subGroup) => subGroup.supervisor),
|
|
263
|
+
__metadata("design:type", Array)
|
|
264
|
+
], User.prototype, "supervisedSubGroups", void 0);
|
|
265
|
+
__decorate([
|
|
266
|
+
(0, swagger_1.ApiProperty)({
|
|
267
|
+
type: () => [subgroup_entity_1.SubGroup],
|
|
268
|
+
description: "SubGroups where the user is an assistant",
|
|
269
|
+
required: false,
|
|
270
|
+
}),
|
|
271
|
+
(0, typeorm_1.ManyToMany)(() => subgroup_entity_1.SubGroup, (subGroup) => subGroup.assistants),
|
|
272
|
+
__metadata("design:type", Array)
|
|
273
|
+
], User.prototype, "assistantSubGroups", void 0);
|
|
274
|
+
__decorate([
|
|
275
|
+
(0, typeorm_1.Column)({ type: "tsvector", nullable: true }),
|
|
255
276
|
__metadata("design:type", String)
|
|
256
277
|
], User.prototype, "searchVector", void 0);
|
|
257
278
|
exports.User = User = __decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.entity.js","sourceRoot":"","sources":["../../src/entities/user.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAC9C,
|
|
1
|
+
{"version":3,"file":"user.entity.js","sourceRoot":"","sources":["../../src/entities/user.entity.ts"],"names":[],"mappings":"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"}
|