@kne/fastify-account 1.0.0-alpha.2 → 1.0.0-alpha.21
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/README.md +2506 -803
- package/index.js +61 -9
- package/libs/controllers/account.js +221 -37
- package/libs/controllers/admin.js +92 -17
- package/libs/controllers/adminPermission.js +188 -38
- package/libs/controllers/adminTenant.js +44 -257
- package/libs/controllers/adminTenantCompany.js +53 -0
- package/libs/controllers/adminTenantOrg.js +71 -0
- package/libs/controllers/{adminRole.js → adminTenantRole.js} +15 -12
- package/libs/controllers/adminTenantUser.js +169 -0
- package/libs/controllers/requestLog.js +77 -0
- package/libs/controllers/tenant.js +4 -14
- package/libs/controllers/tenantCompany.js +54 -0
- package/libs/controllers/tenantOrg.js +65 -0
- package/libs/controllers/tenantRole.js +219 -0
- package/libs/controllers/tenantUser.js +169 -0
- package/libs/controllers/user.js +4 -3
- package/libs/models/admin-role.js +4 -8
- package/libs/models/application.js +16 -10
- package/libs/models/company-info.js +25 -0
- package/libs/models/login-log.js +11 -9
- package/libs/models/permission.js +7 -9
- package/libs/models/request-log.js +43 -0
- package/libs/models/tenant-application.js +8 -10
- package/libs/models/tenant-org.js +5 -9
- package/libs/models/tenant-permission.js +7 -9
- package/libs/models/tenant-role-application.js +13 -13
- package/libs/models/tenant-role-permission.js +9 -14
- package/libs/models/tenant-role.js +5 -9
- package/libs/models/tenant-share-group-permission.js +5 -9
- package/libs/models/tenant-share-group.js +5 -9
- package/libs/models/tenant-source-user-share-group.js +5 -9
- package/libs/models/tenant-token.js +7 -9
- package/libs/models/tenant-user-org.js +11 -10
- package/libs/models/tenant-user-role.js +11 -10
- package/libs/models/tenant-user-share-group.js +6 -10
- package/libs/models/tenant-user.js +35 -16
- package/libs/models/tenant.js +17 -9
- package/libs/models/user-account.js +17 -9
- package/libs/models/user.js +27 -17
- package/libs/models/verification-code.js +8 -10
- package/libs/services/account.js +95 -71
- package/libs/services/admin.js +38 -122
- package/libs/services/application.js +170 -0
- package/libs/services/permission.js +161 -163
- package/libs/services/request-log.js +37 -0
- package/libs/services/tenant-company.js +54 -0
- package/libs/services/tenant-invite.js +62 -0
- package/libs/services/tenant-org.js +118 -0
- package/libs/services/tenant-role.js +109 -0
- package/libs/services/tenant-user.js +582 -0
- package/libs/services/tenant.js +69 -670
- package/libs/services/user.js +109 -33
- package/package.json +3 -3
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
const fp = require('fastify-plugin');
|
|
2
|
+
|
|
3
|
+
module.exports = fp(async (fastify, options) => {
|
|
4
|
+
const { authenticate, services } = fastify.account;
|
|
5
|
+
|
|
6
|
+
fastify.get(
|
|
7
|
+
`${options.prefix}/tenant/getTenantUserList`,
|
|
8
|
+
{
|
|
9
|
+
onRequest: [authenticate.user, authenticate.tenant],
|
|
10
|
+
schema: {
|
|
11
|
+
query: {
|
|
12
|
+
type: 'object',
|
|
13
|
+
properties: {
|
|
14
|
+
filter: {
|
|
15
|
+
type: 'object',
|
|
16
|
+
properties: {
|
|
17
|
+
name: { type: 'string' }
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
currentPage: { type: 'number' },
|
|
21
|
+
perPage: { type: 'number' }
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
async request => {
|
|
27
|
+
const { id: tenantId } = request.tenantInfo.tenant;
|
|
28
|
+
const { filter, currentPage, perPage } = Object.assign(
|
|
29
|
+
{},
|
|
30
|
+
{
|
|
31
|
+
filter: {},
|
|
32
|
+
currentPage: 1,
|
|
33
|
+
perPage: 20
|
|
34
|
+
},
|
|
35
|
+
request.query
|
|
36
|
+
);
|
|
37
|
+
return await services.tenantUser.getTenantUserList({ tenantId, currentPage, perPage, filter });
|
|
38
|
+
}
|
|
39
|
+
);
|
|
40
|
+
|
|
41
|
+
fastify.post(
|
|
42
|
+
`${options.prefix}/tenant/addTenantUser`,
|
|
43
|
+
{
|
|
44
|
+
onRequest: [authenticate.user, authenticate.tenant],
|
|
45
|
+
schema: {
|
|
46
|
+
body: {
|
|
47
|
+
type: 'object',
|
|
48
|
+
required: ['userId', 'name'],
|
|
49
|
+
properties: {
|
|
50
|
+
roleIds: { type: 'array', items: { type: 'number' }, default: [] },
|
|
51
|
+
orgIds: {
|
|
52
|
+
type: 'array',
|
|
53
|
+
items: { type: 'number' },
|
|
54
|
+
default: []
|
|
55
|
+
},
|
|
56
|
+
userId: { type: 'string' },
|
|
57
|
+
name: { type: 'string' },
|
|
58
|
+
avatar: { type: 'string' },
|
|
59
|
+
phone: { type: 'string' },
|
|
60
|
+
email: { type: 'string' },
|
|
61
|
+
description: { type: 'string' }
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
async request => {
|
|
67
|
+
const { id: tenantId } = request.tenantInfo.tenant;
|
|
68
|
+
await services.tenantUser.addTenantUser(Object.assign({}, request.body, { tenantId }));
|
|
69
|
+
return {};
|
|
70
|
+
}
|
|
71
|
+
);
|
|
72
|
+
|
|
73
|
+
fastify.post(
|
|
74
|
+
`${options.prefix}/tenant/saveTenantUser`,
|
|
75
|
+
{
|
|
76
|
+
onRequest: [authenticate.user, authenticate.tenant],
|
|
77
|
+
schema: {
|
|
78
|
+
body: {
|
|
79
|
+
type: 'object',
|
|
80
|
+
required: ['name'],
|
|
81
|
+
properties: {
|
|
82
|
+
roleIds: { type: 'array', items: { type: 'number' }, default: [] },
|
|
83
|
+
orgIds: {
|
|
84
|
+
type: 'array',
|
|
85
|
+
items: { type: 'number' },
|
|
86
|
+
default: []
|
|
87
|
+
},
|
|
88
|
+
name: { type: 'string' },
|
|
89
|
+
avatar: { type: 'string' },
|
|
90
|
+
phone: { type: 'string' },
|
|
91
|
+
email: { type: 'string' },
|
|
92
|
+
description: { type: 'string' }
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
async request => {
|
|
98
|
+
const { id: tenantId } = request.tenantInfo.tenant;
|
|
99
|
+
await services.tenantUser.saveTenantUser(Object.assign({}, request.body, { tenantId }));
|
|
100
|
+
return {};
|
|
101
|
+
}
|
|
102
|
+
);
|
|
103
|
+
|
|
104
|
+
fastify.post(
|
|
105
|
+
`${options.prefix}/tenant/deleteTenantUser`,
|
|
106
|
+
{
|
|
107
|
+
onRequest: [authenticate.user, authenticate.tenant],
|
|
108
|
+
schema: {
|
|
109
|
+
body: {
|
|
110
|
+
type: 'object',
|
|
111
|
+
required: ['tenantUserId'],
|
|
112
|
+
properties: {
|
|
113
|
+
tenantUserId: { type: 'string' }
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
async request => {
|
|
119
|
+
const { id: tenantId } = request.tenantInfo.tenant;
|
|
120
|
+
const { tenantUserId } = request.body;
|
|
121
|
+
await services.tenantUser.deleteTenantUser({ tenantId, tenantUserId });
|
|
122
|
+
return {};
|
|
123
|
+
}
|
|
124
|
+
);
|
|
125
|
+
|
|
126
|
+
fastify.post(
|
|
127
|
+
`${options.prefix}/tenant/closeTenantUser`,
|
|
128
|
+
{
|
|
129
|
+
onRequest: [authenticate.user, authenticate.tenant],
|
|
130
|
+
schema: {
|
|
131
|
+
body: {
|
|
132
|
+
type: 'object',
|
|
133
|
+
required: ['tenantUserId'],
|
|
134
|
+
properties: {
|
|
135
|
+
tenantUserId: { type: 'string' }
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
async request => {
|
|
141
|
+
const { id: tenantId } = request.tenantInfo.tenant;
|
|
142
|
+
const { tenantUserId } = request.body;
|
|
143
|
+
await services.tenantUser.closeTenantUser({ tenantId, tenantUserId });
|
|
144
|
+
return {};
|
|
145
|
+
}
|
|
146
|
+
);
|
|
147
|
+
|
|
148
|
+
fastify.post(
|
|
149
|
+
`${options.prefix}/tenant/openTenantUser`,
|
|
150
|
+
{
|
|
151
|
+
onRequest: [authenticate.user, authenticate.tenant],
|
|
152
|
+
schema: {
|
|
153
|
+
body: {
|
|
154
|
+
type: 'object',
|
|
155
|
+
required: ['tenantUserId'],
|
|
156
|
+
properties: {
|
|
157
|
+
tenantUserId: { type: 'string' }
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
},
|
|
162
|
+
async request => {
|
|
163
|
+
const { id: tenantId } = request.tenantInfo.tenant;
|
|
164
|
+
const { tenantUserId } = request.body;
|
|
165
|
+
await services.tenantUser.openTenantUser({ tenantId, tenantUserId });
|
|
166
|
+
return {};
|
|
167
|
+
}
|
|
168
|
+
);
|
|
169
|
+
});
|
package/libs/controllers/user.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
const fp = require('fastify-plugin');
|
|
2
2
|
module.exports = fp(async (fastify, options) => {
|
|
3
|
+
const { authenticate, services } = fastify.account;
|
|
3
4
|
fastify.get(
|
|
4
5
|
`${options.prefix}/getUserInfo`,
|
|
5
6
|
{
|
|
6
|
-
onRequest: [
|
|
7
|
+
onRequest: [authenticate.user]
|
|
7
8
|
},
|
|
8
9
|
async request => {
|
|
9
10
|
return { userInfo: request.userInfo };
|
|
@@ -13,7 +14,7 @@ module.exports = fp(async (fastify, options) => {
|
|
|
13
14
|
fastify.post(
|
|
14
15
|
`${options.prefix}/setCurrentTenantId`,
|
|
15
16
|
{
|
|
16
|
-
onRequest: [
|
|
17
|
+
onRequest: [authenticate.user],
|
|
17
18
|
schema: {
|
|
18
19
|
body: {
|
|
19
20
|
type: 'object',
|
|
@@ -26,7 +27,7 @@ module.exports = fp(async (fastify, options) => {
|
|
|
26
27
|
},
|
|
27
28
|
async request => {
|
|
28
29
|
const { tenantId } = request.body;
|
|
29
|
-
await
|
|
30
|
+
await services.user.setCurrentTenantId({ id: request.userInfo.id, tenantId });
|
|
30
31
|
return {};
|
|
31
32
|
}
|
|
32
33
|
);
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
module.exports = (
|
|
2
|
-
return
|
|
3
|
-
|
|
4
|
-
{
|
|
1
|
+
module.exports = ({ DataTypes }) => {
|
|
2
|
+
return {
|
|
3
|
+
model: {
|
|
5
4
|
userId: {
|
|
6
5
|
type: DataTypes.UUID,
|
|
7
6
|
allowNull: false
|
|
@@ -11,9 +10,6 @@ module.exports = (sequelize, DataTypes) => {
|
|
|
11
10
|
allowNull: false
|
|
12
11
|
},
|
|
13
12
|
target: DataTypes.STRING
|
|
14
|
-
},
|
|
15
|
-
{
|
|
16
|
-
paranoid: true
|
|
17
13
|
}
|
|
18
|
-
|
|
14
|
+
};
|
|
19
15
|
};
|
|
@@ -1,12 +1,15 @@
|
|
|
1
|
-
module.exports = (
|
|
2
|
-
return
|
|
3
|
-
|
|
4
|
-
{
|
|
1
|
+
module.exports = ({ DataTypes }) => {
|
|
2
|
+
return {
|
|
3
|
+
model: {
|
|
5
4
|
id: {
|
|
6
|
-
type: DataTypes.
|
|
7
|
-
|
|
5
|
+
type: DataTypes.INTEGER,
|
|
6
|
+
autoIncrement: true,
|
|
8
7
|
primaryKey: true
|
|
9
8
|
},
|
|
9
|
+
uuid: {
|
|
10
|
+
type: DataTypes.UUID,
|
|
11
|
+
defaultValue: DataTypes.UUIDV4
|
|
12
|
+
},
|
|
10
13
|
avatar: DataTypes.STRING,
|
|
11
14
|
name: {
|
|
12
15
|
type: DataTypes.STRING,
|
|
@@ -23,14 +26,17 @@ module.exports = (sequelize, DataTypes) => {
|
|
|
23
26
|
defaultValue: 0
|
|
24
27
|
}
|
|
25
28
|
},
|
|
26
|
-
{
|
|
27
|
-
paranoid: true,
|
|
29
|
+
options: {
|
|
28
30
|
indexes: [
|
|
29
31
|
{
|
|
30
32
|
unique: true,
|
|
31
|
-
fields: ['code', '
|
|
33
|
+
fields: ['code', 'deleted_at']
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
unique: true,
|
|
37
|
+
fields: ['uuid', 'deleted_at']
|
|
32
38
|
}
|
|
33
39
|
]
|
|
34
40
|
}
|
|
35
|
-
|
|
41
|
+
};
|
|
36
42
|
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
module.exports = ({ DataTypes }) => {
|
|
2
|
+
return {
|
|
3
|
+
model: {
|
|
4
|
+
tenantId: {
|
|
5
|
+
type: DataTypes.UUID,
|
|
6
|
+
allowNull: false
|
|
7
|
+
},
|
|
8
|
+
name: {
|
|
9
|
+
type: DataTypes.STRING
|
|
10
|
+
},
|
|
11
|
+
shortName: {
|
|
12
|
+
type: DataTypes.STRING
|
|
13
|
+
},
|
|
14
|
+
themeColor: {
|
|
15
|
+
type: DataTypes.STRING
|
|
16
|
+
},
|
|
17
|
+
logo: {
|
|
18
|
+
type: DataTypes.STRING
|
|
19
|
+
},
|
|
20
|
+
description: {
|
|
21
|
+
type: DataTypes.TEXT
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
};
|
package/libs/models/login-log.js
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
1
|
-
module.exports = (
|
|
2
|
-
return
|
|
3
|
-
|
|
4
|
-
{
|
|
1
|
+
module.exports = ({ DataTypes }) => {
|
|
2
|
+
return {
|
|
3
|
+
model: {
|
|
5
4
|
userId: {
|
|
6
5
|
type: DataTypes.UUID,
|
|
7
6
|
allowNull: false
|
|
8
7
|
},
|
|
9
|
-
ip: DataTypes.STRING
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
ip: DataTypes.STRING,
|
|
9
|
+
currentTenantId: {
|
|
10
|
+
type: DataTypes.UUID
|
|
11
|
+
},
|
|
12
|
+
applicationId: {
|
|
13
|
+
type: DataTypes.UUID
|
|
14
|
+
}
|
|
13
15
|
}
|
|
14
|
-
|
|
16
|
+
};
|
|
15
17
|
};
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
module.exports = (
|
|
2
|
-
return
|
|
3
|
-
|
|
4
|
-
{
|
|
1
|
+
module.exports = ({ DataTypes }) => {
|
|
2
|
+
return {
|
|
3
|
+
model: {
|
|
5
4
|
applicationId: {
|
|
6
|
-
type: DataTypes.
|
|
5
|
+
type: DataTypes.UUID,
|
|
7
6
|
allowNull: false
|
|
8
7
|
},
|
|
9
8
|
code: {
|
|
@@ -40,14 +39,13 @@ module.exports = (sequelize, DataTypes) => {
|
|
|
40
39
|
defaultValue: 0
|
|
41
40
|
}
|
|
42
41
|
},
|
|
43
|
-
{
|
|
44
|
-
paranoid: true,
|
|
42
|
+
options: {
|
|
45
43
|
indexes: [
|
|
46
44
|
{
|
|
47
45
|
unique: true,
|
|
48
|
-
fields: ['code', '
|
|
46
|
+
fields: ['code', 'application_id', 'pid', 'deleted_at']
|
|
49
47
|
}
|
|
50
48
|
]
|
|
51
49
|
}
|
|
52
|
-
|
|
50
|
+
};
|
|
53
51
|
};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
module.exports = ({ DataTypes }) => {
|
|
2
|
+
return {
|
|
3
|
+
model: {
|
|
4
|
+
userId: {
|
|
5
|
+
type: DataTypes.UUID,
|
|
6
|
+
allowNull: false
|
|
7
|
+
},
|
|
8
|
+
tenantId: {
|
|
9
|
+
type: DataTypes.UUID
|
|
10
|
+
},
|
|
11
|
+
type: {
|
|
12
|
+
type: DataTypes.STRING,
|
|
13
|
+
comment: 'user,tenant,admin'
|
|
14
|
+
},
|
|
15
|
+
applicationId: {
|
|
16
|
+
type: DataTypes.UUID
|
|
17
|
+
},
|
|
18
|
+
action: {
|
|
19
|
+
type: DataTypes.STRING
|
|
20
|
+
},
|
|
21
|
+
summary: {
|
|
22
|
+
type: DataTypes.TEXT
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
options: {
|
|
26
|
+
indexes: [
|
|
27
|
+
{
|
|
28
|
+
fields: ['user_id', 'type']
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
fields: ['tenant_id', 'type']
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
fields: ['action', 'type']
|
|
35
|
+
}
|
|
36
|
+
]
|
|
37
|
+
},
|
|
38
|
+
associate: ({ requestLog, application, user }) => {
|
|
39
|
+
requestLog.belongsTo(application, { targetKey: 'uuid', constraints: false });
|
|
40
|
+
requestLog.belongsTo(user, { targetKey: 'uuid', constraints: false });
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
};
|
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
module.exports = (
|
|
2
|
-
return
|
|
3
|
-
|
|
4
|
-
{
|
|
1
|
+
module.exports = ({ DataTypes }) => {
|
|
2
|
+
return {
|
|
3
|
+
model: {
|
|
5
4
|
tenantId: {
|
|
6
|
-
type: DataTypes.
|
|
5
|
+
type: DataTypes.UUID,
|
|
7
6
|
allowNull: false
|
|
8
7
|
},
|
|
9
8
|
applicationId: {
|
|
10
|
-
type: DataTypes.
|
|
9
|
+
type: DataTypes.UUID,
|
|
11
10
|
allowNull: false
|
|
12
11
|
},
|
|
13
12
|
status: {
|
|
@@ -15,14 +14,13 @@ module.exports = (sequelize, DataTypes) => {
|
|
|
15
14
|
defaultValue: 0 //0:开启 11:关闭
|
|
16
15
|
}
|
|
17
16
|
},
|
|
18
|
-
{
|
|
19
|
-
paranoid: true,
|
|
17
|
+
options: {
|
|
20
18
|
indexes: [
|
|
21
19
|
{
|
|
22
20
|
unique: true,
|
|
23
|
-
fields: ['
|
|
21
|
+
fields: ['tenant_id', 'application_id', 'deleted_at']
|
|
24
22
|
}
|
|
25
23
|
]
|
|
26
24
|
}
|
|
27
|
-
|
|
25
|
+
};
|
|
28
26
|
};
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
module.exports = (
|
|
2
|
-
return
|
|
3
|
-
|
|
4
|
-
{
|
|
1
|
+
module.exports = ({ DataTypes }) => {
|
|
2
|
+
return {
|
|
3
|
+
model: {
|
|
5
4
|
tenantId: {
|
|
6
|
-
type: DataTypes.
|
|
5
|
+
type: DataTypes.UUID,
|
|
7
6
|
allowNull: false
|
|
8
7
|
},
|
|
9
8
|
name: {
|
|
@@ -22,9 +21,6 @@ module.exports = (sequelize, DataTypes) => {
|
|
|
22
21
|
type: DataTypes.INTEGER,
|
|
23
22
|
defaultValue: 0
|
|
24
23
|
}
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
paranoid: true
|
|
28
24
|
}
|
|
29
|
-
|
|
25
|
+
};
|
|
30
26
|
};
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
module.exports = (
|
|
2
|
-
return
|
|
3
|
-
|
|
4
|
-
{
|
|
1
|
+
module.exports = ({ DataTypes }) => {
|
|
2
|
+
return {
|
|
3
|
+
model: {
|
|
5
4
|
tenantId: {
|
|
6
|
-
type: DataTypes.
|
|
5
|
+
type: DataTypes.UUID,
|
|
7
6
|
allowNull: false
|
|
8
7
|
},
|
|
9
8
|
permissionId: {
|
|
@@ -15,14 +14,13 @@ module.exports = (sequelize, DataTypes) => {
|
|
|
15
14
|
defaultValue: 0 //0:开启 11:关闭
|
|
16
15
|
}
|
|
17
16
|
},
|
|
18
|
-
{
|
|
19
|
-
paranoid: true,
|
|
17
|
+
options: {
|
|
20
18
|
indexes: [
|
|
21
19
|
{
|
|
22
20
|
unique: true,
|
|
23
|
-
fields: ['
|
|
21
|
+
fields: ['tenant_id', 'permission_id', 'deleted_at']
|
|
24
22
|
}
|
|
25
23
|
]
|
|
26
24
|
}
|
|
27
|
-
|
|
25
|
+
};
|
|
28
26
|
};
|
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
module.exports = (
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
{
|
|
1
|
+
module.exports = ({ DataTypes }) => {
|
|
2
|
+
return {
|
|
3
|
+
model: {
|
|
5
4
|
tenantId: {
|
|
6
|
-
type: DataTypes.
|
|
5
|
+
type: DataTypes.UUID,
|
|
7
6
|
allowNull: false
|
|
8
7
|
},
|
|
9
8
|
applicationId: {
|
|
10
|
-
type: DataTypes.
|
|
9
|
+
type: DataTypes.UUID,
|
|
11
10
|
allowNull: false
|
|
12
11
|
},
|
|
13
12
|
roleId: {
|
|
@@ -19,19 +18,20 @@ module.exports = (sequelize, DataTypes) => {
|
|
|
19
18
|
defaultValue: 0 //0:开启 11:关闭
|
|
20
19
|
}
|
|
21
20
|
},
|
|
22
|
-
{
|
|
23
|
-
paranoid: true,
|
|
21
|
+
options: {
|
|
24
22
|
indexes: [
|
|
25
23
|
{
|
|
26
24
|
name: 'application_key',
|
|
27
25
|
unique: true,
|
|
28
|
-
fields: ['
|
|
26
|
+
fields: ['tenant_id', 'application_id', 'role_id', 'deleted_at']
|
|
29
27
|
}
|
|
30
28
|
]
|
|
29
|
+
},
|
|
30
|
+
associate: ({ tenantRoleApplication, application }) => {
|
|
31
|
+
tenantRoleApplication.belongsTo(application, {
|
|
32
|
+
targetKey: 'uuid',
|
|
33
|
+
constraints: false
|
|
34
|
+
});
|
|
31
35
|
}
|
|
32
|
-
);
|
|
33
|
-
tenantRoleApplication.associate = ({ tenantRoleApplication, application }) => {
|
|
34
|
-
tenantRoleApplication.belongsTo(application);
|
|
35
36
|
};
|
|
36
|
-
return tenantRoleApplication;
|
|
37
37
|
};
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
module.exports = (
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
{
|
|
1
|
+
module.exports = ({ DataTypes }) => {
|
|
2
|
+
return {
|
|
3
|
+
model: {
|
|
5
4
|
tenantId: {
|
|
6
|
-
type: DataTypes.
|
|
5
|
+
type: DataTypes.UUID,
|
|
7
6
|
allowNull: false
|
|
8
7
|
},
|
|
9
8
|
permissionId: {
|
|
@@ -19,21 +18,17 @@ module.exports = (sequelize, DataTypes) => {
|
|
|
19
18
|
defaultValue: 0 //0:开启 11:关闭
|
|
20
19
|
}
|
|
21
20
|
},
|
|
22
|
-
{
|
|
23
|
-
paranoid: true,
|
|
21
|
+
options: {
|
|
24
22
|
indexes: [
|
|
25
23
|
{
|
|
26
24
|
name: 'permission_key',
|
|
27
25
|
unique: true,
|
|
28
|
-
fields: ['
|
|
26
|
+
fields: ['tenant_id', 'permission_id', 'role_id', 'deleted_at']
|
|
29
27
|
}
|
|
30
28
|
]
|
|
29
|
+
},
|
|
30
|
+
associate: ({ tenantRolePermission, permission }) => {
|
|
31
|
+
tenantRolePermission.belongsTo(permission, { constraints: false });
|
|
31
32
|
}
|
|
32
|
-
);
|
|
33
|
-
|
|
34
|
-
tenantRolePermission.associate = ({ tenantRolePermission, permission }) => {
|
|
35
|
-
tenantRolePermission.belongsTo(permission);
|
|
36
33
|
};
|
|
37
|
-
|
|
38
|
-
return tenantRolePermission;
|
|
39
34
|
};
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
module.exports = (
|
|
2
|
-
return
|
|
3
|
-
|
|
4
|
-
{
|
|
1
|
+
module.exports = ({ DataTypes }) => {
|
|
2
|
+
return {
|
|
3
|
+
model: {
|
|
5
4
|
tenantId: {
|
|
6
|
-
type: DataTypes.
|
|
5
|
+
type: DataTypes.UUID,
|
|
7
6
|
allowNull: false
|
|
8
7
|
},
|
|
9
8
|
name: {
|
|
@@ -19,9 +18,6 @@ module.exports = (sequelize, DataTypes) => {
|
|
|
19
18
|
defaultValue: 0 //0:用户自定义,1:系统默认
|
|
20
19
|
},
|
|
21
20
|
description: DataTypes.TEXT
|
|
22
|
-
},
|
|
23
|
-
{
|
|
24
|
-
paranoid: true
|
|
25
21
|
}
|
|
26
|
-
|
|
22
|
+
};
|
|
27
23
|
};
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
module.exports = (
|
|
2
|
-
return
|
|
3
|
-
|
|
4
|
-
{
|
|
1
|
+
module.exports = ({ DataTypes }) => {
|
|
2
|
+
return {
|
|
3
|
+
model: {
|
|
5
4
|
tenantId: {
|
|
6
|
-
type: DataTypes.
|
|
5
|
+
type: DataTypes.UUID,
|
|
7
6
|
allowNull: false
|
|
8
7
|
},
|
|
9
8
|
tenantShareGroupId: {
|
|
@@ -14,9 +13,6 @@ module.exports = (sequelize, DataTypes) => {
|
|
|
14
13
|
type: DataTypes.INTEGER,
|
|
15
14
|
allowNull: false
|
|
16
15
|
}
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
paranoid: true
|
|
20
16
|
}
|
|
21
|
-
|
|
17
|
+
};
|
|
22
18
|
};
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
module.exports = (
|
|
2
|
-
return
|
|
3
|
-
|
|
4
|
-
{
|
|
1
|
+
module.exports = ({ DataTypes }) => {
|
|
2
|
+
return {
|
|
3
|
+
model: {
|
|
5
4
|
tenantId: {
|
|
6
|
-
type: DataTypes.
|
|
5
|
+
type: DataTypes.UUID,
|
|
7
6
|
allowNull: false
|
|
8
7
|
},
|
|
9
8
|
name: {
|
|
@@ -14,9 +13,6 @@ module.exports = (sequelize, DataTypes) => {
|
|
|
14
13
|
type: DataTypes.INTEGER,
|
|
15
14
|
defaultValue: 0
|
|
16
15
|
}
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
paranoid: true
|
|
20
16
|
}
|
|
21
|
-
|
|
17
|
+
};
|
|
22
18
|
};
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
module.exports = (
|
|
2
|
-
return
|
|
3
|
-
|
|
4
|
-
{
|
|
1
|
+
module.exports = ({ DataTypes }) => {
|
|
2
|
+
return {
|
|
3
|
+
model: {
|
|
5
4
|
tenantId: {
|
|
6
|
-
type: DataTypes.
|
|
5
|
+
type: DataTypes.UUID,
|
|
7
6
|
allowNull: false
|
|
8
7
|
},
|
|
9
8
|
tenantUserId: {
|
|
@@ -14,9 +13,6 @@ module.exports = (sequelize, DataTypes) => {
|
|
|
14
13
|
type: DataTypes.INTEGER,
|
|
15
14
|
allowNull: false
|
|
16
15
|
}
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
paranoid: true
|
|
20
16
|
}
|
|
21
|
-
|
|
17
|
+
};
|
|
22
18
|
};
|