@things-factory/auth-base 4.3.671 → 4.3.673
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-server/constants/error-code.js +21 -0
- package/dist-server/constants/error-code.js.map +1 -0
- package/dist-server/constants/error-message.js +1 -0
- package/dist-server/constants/error-message.js.map +1 -0
- package/dist-server/constants/max-age.js +5 -0
- package/dist-server/constants/max-age.js.map +1 -0
- package/dist-server/controllers/auth.js +21 -0
- package/dist-server/controllers/auth.js.map +1 -0
- package/dist-server/controllers/change-pwd.js +80 -0
- package/dist-server/controllers/change-pwd.js.map +1 -0
- package/dist-server/controllers/checkin.js +21 -0
- package/dist-server/controllers/checkin.js.map +1 -0
- package/dist-server/controllers/delete-user.js +61 -0
- package/dist-server/controllers/delete-user.js.map +1 -0
- package/dist-server/controllers/invitation.js +119 -0
- package/dist-server/controllers/invitation.js.map +1 -0
- package/dist-server/controllers/profile.js +26 -0
- package/dist-server/controllers/profile.js.map +1 -0
- package/dist-server/controllers/reset-password.js +110 -0
- package/dist-server/controllers/reset-password.js.map +1 -0
- package/dist-server/controllers/signin.js +76 -0
- package/dist-server/controllers/signin.js.map +1 -0
- package/dist-server/controllers/signup.js +105 -0
- package/dist-server/controllers/signup.js.map +1 -0
- package/dist-server/controllers/unlock-user.js +60 -0
- package/dist-server/controllers/unlock-user.js.map +1 -0
- package/dist-server/controllers/utils/make-invitation-token.js +12 -0
- package/dist-server/controllers/utils/make-invitation-token.js.map +1 -0
- package/dist-server/controllers/utils/make-verification-token.js +12 -0
- package/dist-server/controllers/utils/make-verification-token.js.map +1 -0
- package/dist-server/controllers/utils/password-rule.js +90 -0
- package/dist-server/controllers/utils/password-rule.js.map +1 -0
- package/dist-server/controllers/utils/save-invitation-token.js +13 -0
- package/dist-server/controllers/utils/save-invitation-token.js.map +1 -0
- package/dist-server/controllers/utils/save-verification-token.js +15 -0
- package/dist-server/controllers/utils/save-verification-token.js.map +1 -0
- package/dist-server/controllers/verification.js +78 -0
- package/dist-server/controllers/verification.js.map +1 -0
- package/dist-server/errors/auth-error.js +40 -0
- package/dist-server/errors/auth-error.js.map +1 -0
- package/dist-server/errors/index.js +19 -0
- package/dist-server/errors/index.js.map +1 -0
- package/dist-server/errors/user-domain-not-match-error.js +24 -0
- package/dist-server/errors/user-domain-not-match-error.js.map +1 -0
- package/dist-server/index.js +29 -0
- package/dist-server/index.js.map +1 -0
- package/dist-server/middlewares/authenticate-401-middleware.js +84 -0
- package/dist-server/middlewares/authenticate-401-middleware.js.map +1 -0
- package/dist-server/middlewares/domain-authenticate-middleware.js +58 -0
- package/dist-server/middlewares/domain-authenticate-middleware.js.map +1 -0
- package/dist-server/middlewares/graphql-authenticate-middleware.js +17 -0
- package/dist-server/middlewares/graphql-authenticate-middleware.js.map +1 -0
- package/dist-server/middlewares/index.js +57 -0
- package/dist-server/middlewares/index.js.map +1 -0
- package/dist-server/middlewares/jwt-authenticate-middleware.js +77 -0
- package/dist-server/middlewares/jwt-authenticate-middleware.js.map +1 -0
- package/dist-server/middlewares/signin-middleware.js +47 -0
- package/dist-server/middlewares/signin-middleware.js.map +1 -0
- package/dist-server/migrations/1548206416130-SeedUser.js +46 -0
- package/dist-server/migrations/1548206416130-SeedUser.js.map +1 -0
- package/dist-server/migrations/1566805283882-SeedPrivilege.js +26 -0
- package/dist-server/migrations/1566805283882-SeedPrivilege.js.map +1 -0
- package/dist-server/migrations/index.js +12 -0
- package/dist-server/migrations/index.js.map +1 -0
- package/dist-server/router/auth-checkin-router.js +96 -0
- package/dist-server/router/auth-checkin-router.js.map +1 -0
- package/dist-server/router/auth-private-process-router.js +91 -0
- package/dist-server/router/auth-private-process-router.js.map +1 -0
- package/dist-server/router/auth-public-process-router.js +243 -0
- package/dist-server/router/auth-public-process-router.js.map +1 -0
- package/dist-server/router/auth-signin-router.js +38 -0
- package/dist-server/router/auth-signin-router.js.map +1 -0
- package/dist-server/router/auth-signup-router.js +76 -0
- package/dist-server/router/auth-signup-router.js.map +1 -0
- package/dist-server/router/index.js +25 -0
- package/dist-server/router/index.js.map +1 -0
- package/dist-server/router/oauth2/index.js +19 -0
- package/dist-server/router/oauth2/index.js.map +1 -0
- package/dist-server/router/oauth2/oauth2-authorize-router.js +72 -0
- package/dist-server/router/oauth2/oauth2-authorize-router.js.map +1 -0
- package/dist-server/router/oauth2/oauth2-router.js +137 -0
- package/dist-server/router/oauth2/oauth2-router.js.map +1 -0
- package/dist-server/router/oauth2/oauth2-server.js +201 -0
- package/dist-server/router/oauth2/oauth2-server.js.map +1 -0
- package/dist-server/router/oauth2/passport-oauth2-client-password.js +84 -0
- package/dist-server/router/oauth2/passport-oauth2-client-password.js.map +1 -0
- package/dist-server/router/oauth2/passport-refresh-token.js +84 -0
- package/dist-server/router/oauth2/passport-refresh-token.js.map +1 -0
- package/dist-server/router/path-base-domain-router.js +15 -0
- package/dist-server/router/path-base-domain-router.js.map +1 -0
- package/dist-server/router/site-root-router.js +48 -0
- package/dist-server/router/site-root-router.js.map +1 -0
- package/dist-server/routes.js +58 -0
- package/dist-server/routes.js.map +1 -0
- package/dist-server/service/app-binding/app-binding-mutation.js +45 -0
- package/dist-server/service/app-binding/app-binding-mutation.js.map +1 -0
- package/dist-server/service/app-binding/app-binding-query.js +135 -0
- package/dist-server/service/app-binding/app-binding-query.js.map +1 -0
- package/dist-server/service/app-binding/app-binding-types.js +29 -0
- package/dist-server/service/app-binding/app-binding-types.js.map +1 -0
- package/dist-server/service/app-binding/app-binding.js +34 -0
- package/dist-server/service/app-binding/app-binding.js.map +1 -0
- package/dist-server/service/app-binding/index.js +7 -0
- package/dist-server/service/app-binding/index.js.map +1 -0
- package/dist-server/service/appliance/appliance-mutation.js +117 -0
- package/dist-server/service/appliance/appliance-mutation.js.map +1 -0
- package/dist-server/service/appliance/appliance-query.js +85 -0
- package/dist-server/service/appliance/appliance-query.js.map +1 -0
- package/dist-server/service/appliance/appliance-types.js +93 -0
- package/dist-server/service/appliance/appliance-types.js.map +1 -0
- package/dist-server/service/appliance/appliance.js +155 -0
- package/dist-server/service/appliance/appliance.js.map +1 -0
- package/dist-server/service/appliance/index.js +9 -0
- package/dist-server/service/appliance/index.js.map +1 -0
- package/dist-server/service/application/application-mutation.js +121 -0
- package/dist-server/service/application/application-mutation.js.map +1 -0
- package/dist-server/service/application/application-query.js +128 -0
- package/dist-server/service/application/application-query.js.map +1 -0
- package/dist-server/service/application/application-types.js +119 -0
- package/dist-server/service/application/application-types.js.map +1 -0
- package/dist-server/service/application/application.js +236 -0
- package/dist-server/service/application/application.js.map +1 -0
- package/dist-server/service/application/index.js +9 -0
- package/dist-server/service/application/index.js.map +1 -0
- package/dist-server/service/domain-generator/domain-generator-mutation.js +117 -0
- package/dist-server/service/domain-generator/domain-generator-mutation.js.map +1 -0
- package/dist-server/service/domain-generator/domain-generator-types.js +79 -0
- package/dist-server/service/domain-generator/domain-generator-types.js.map +1 -0
- package/dist-server/service/domain-generator/index.js +6 -0
- package/dist-server/service/domain-generator/index.js.map +1 -0
- package/dist-server/service/granted-role/granted-role-mutation.js +144 -0
- package/dist-server/service/granted-role/granted-role-mutation.js.map +1 -0
- package/dist-server/service/granted-role/granted-role-query.js +93 -0
- package/dist-server/service/granted-role/granted-role-query.js.map +1 -0
- package/dist-server/service/granted-role/granted-role.js +49 -0
- package/dist-server/service/granted-role/granted-role.js.map +1 -0
- package/dist-server/service/granted-role/index.js +9 -0
- package/dist-server/service/granted-role/index.js.map +1 -0
- package/dist-server/service/index.js +94 -0
- package/dist-server/service/index.js.map +1 -0
- package/dist-server/service/invitation/index.js +9 -0
- package/dist-server/service/invitation/index.js.map +1 -0
- package/dist-server/service/invitation/invitation-mutation.js +76 -0
- package/dist-server/service/invitation/invitation-mutation.js.map +1 -0
- package/dist-server/service/invitation/invitation-query.js +57 -0
- package/dist-server/service/invitation/invitation-query.js.map +1 -0
- package/dist-server/service/invitation/invitation-types.js +29 -0
- package/dist-server/service/invitation/invitation-types.js.map +1 -0
- package/dist-server/service/invitation/invitation.js +84 -0
- package/dist-server/service/invitation/invitation.js.map +1 -0
- package/dist-server/service/login-history/index.js +8 -0
- package/dist-server/service/login-history/index.js.map +1 -0
- package/dist-server/service/login-history/login-history-query.js +67 -0
- package/dist-server/service/login-history/login-history-query.js.map +1 -0
- package/dist-server/service/login-history/login-history.js +68 -0
- package/dist-server/service/login-history/login-history.js.map +1 -0
- package/dist-server/service/partner/index.js +9 -0
- package/dist-server/service/partner/index.js.map +1 -0
- package/dist-server/service/partner/partner-mutation.js +134 -0
- package/dist-server/service/partner/partner-mutation.js.map +1 -0
- package/dist-server/service/partner/partner-query.js +193 -0
- package/dist-server/service/partner/partner-query.js.map +1 -0
- package/dist-server/service/partner/partner-types.js +57 -0
- package/dist-server/service/partner/partner-types.js.map +1 -0
- package/dist-server/service/partner/partner.js +86 -0
- package/dist-server/service/partner/partner.js.map +1 -0
- package/dist-server/service/password-history/index.js +6 -0
- package/dist-server/service/password-history/index.js.map +1 -0
- package/dist-server/service/password-history/password-history.js +34 -0
- package/dist-server/service/password-history/password-history.js.map +1 -0
- package/dist-server/service/privilege/index.js +9 -0
- package/dist-server/service/privilege/index.js.map +1 -0
- package/dist-server/service/privilege/privilege-directive.js +85 -0
- package/dist-server/service/privilege/privilege-directive.js.map +1 -0
- package/dist-server/service/privilege/privilege-mutation.js +80 -0
- package/dist-server/service/privilege/privilege-mutation.js.map +1 -0
- package/dist-server/service/privilege/privilege-query.js +109 -0
- package/dist-server/service/privilege/privilege-query.js.map +1 -0
- package/dist-server/service/privilege/privilege-types.js +100 -0
- package/dist-server/service/privilege/privilege-types.js.map +1 -0
- package/dist-server/service/privilege/privilege.js +92 -0
- package/dist-server/service/privilege/privilege.js.map +1 -0
- package/dist-server/service/role/index.js +9 -0
- package/dist-server/service/role/index.js.map +1 -0
- package/dist-server/service/role/role-mutation.js +121 -0
- package/dist-server/service/role/role-mutation.js.map +1 -0
- package/dist-server/service/role/role-query.js +207 -0
- package/dist-server/service/role/role-query.js.map +1 -0
- package/dist-server/service/role/role-types.js +130 -0
- package/dist-server/service/role/role-types.js.map +1 -0
- package/dist-server/service/role/role.js +94 -0
- package/dist-server/service/role/role.js.map +1 -0
- package/dist-server/service/user/index.js +9 -0
- package/dist-server/service/user/index.js.map +1 -0
- package/dist-server/service/user/user-mutation.js +307 -0
- package/dist-server/service/user/user-mutation.js.map +1 -0
- package/dist-server/service/user/user-query.js +194 -0
- package/dist-server/service/user/user-query.js.map +1 -0
- package/dist-server/service/user/user-types.js +106 -0
- package/dist-server/service/user/user-types.js.map +1 -0
- package/dist-server/service/user/user.js +274 -0
- package/dist-server/service/user/user.js.map +1 -0
- package/dist-server/service/verification-token/index.js +6 -0
- package/dist-server/service/verification-token/index.js.map +1 -0
- package/dist-server/service/verification-token/verification-token.js +75 -0
- package/dist-server/service/verification-token/verification-token.js.map +1 -0
- package/dist-server/templates/account-unlock-email.js +69 -0
- package/dist-server/templates/account-unlock-email.js.map +1 -0
- package/dist-server/templates/invitation-email.js +70 -0
- package/dist-server/templates/invitation-email.js.map +1 -0
- package/dist-server/templates/reset-password-email.js +66 -0
- package/dist-server/templates/reset-password-email.js.map +1 -0
- package/dist-server/templates/verification-email.js +70 -0
- package/dist-server/templates/verification-email.js.map +1 -0
- package/dist-server/utils/accepts.js +14 -0
- package/dist-server/utils/accepts.js.map +1 -0
- package/dist-server/utils/access-token-cookie.js +45 -0
- package/dist-server/utils/access-token-cookie.js.map +1 -0
- package/dist-server/utils/check-user-belongs-domain.js +22 -0
- package/dist-server/utils/check-user-belongs-domain.js.map +1 -0
- package/dist-server/utils/get-domain-from-hostname.js +10 -0
- package/dist-server/utils/get-domain-from-hostname.js.map +1 -0
- package/dist-server/utils/get-domain-users.js +31 -0
- package/dist-server/utils/get-domain-users.js.map +1 -0
- package/dist-server/utils/get-secret.js +15 -0
- package/dist-server/utils/get-secret.js.map +1 -0
- package/dist-server/utils/get-user-domains.js +40 -0
- package/dist-server/utils/get-user-domains.js.map +1 -0
- package/package.json +5 -5
|
@@ -0,0 +1,307 @@
|
|
|
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
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.UserMutation = void 0;
|
|
16
|
+
const type_graphql_1 = require("type-graphql");
|
|
17
|
+
const typeorm_1 = require("typeorm");
|
|
18
|
+
const shell_1 = require("@things-factory/shell");
|
|
19
|
+
const user_1 = require("./user");
|
|
20
|
+
const role_1 = require("../role/role");
|
|
21
|
+
const user_types_1 = require("./user-types");
|
|
22
|
+
const get_domain_users_1 = require("../../utils/get-domain-users");
|
|
23
|
+
const env_1 = require("@things-factory/env");
|
|
24
|
+
const delete_user_1 = require("../../controllers/delete-user");
|
|
25
|
+
let UserMutation = class UserMutation {
|
|
26
|
+
async createUser(user, context) {
|
|
27
|
+
const { domain } = context.state;
|
|
28
|
+
const { defaultPassword } = env_1.config.get('password');
|
|
29
|
+
const { email } = user;
|
|
30
|
+
user.email = email.trim();
|
|
31
|
+
const oldUser = await (0, typeorm_1.getRepository)(user_1.User).findOne({ where: { email: user.email } });
|
|
32
|
+
if (oldUser) {
|
|
33
|
+
throw new Error(context.t('error.x already exists in y', { x: context.t('field.user'), y: 'operato' }));
|
|
34
|
+
}
|
|
35
|
+
// consider if validation password rule is required
|
|
36
|
+
/* check if password is following the rule */
|
|
37
|
+
// User.validatePasswordByRule(user.password, context.lng)
|
|
38
|
+
const salt = user_1.User.generateSalt();
|
|
39
|
+
return await (0, typeorm_1.getRepository)(user_1.User).save(Object.assign(Object.assign({ creator: context.state.user, updater: context.state.user }, user), { domains: [domain], roles: user.roles && user.roles.length
|
|
40
|
+
? await (0, typeorm_1.getRepository)(role_1.Role).findByIds(user.roles.map(role => role.id), {
|
|
41
|
+
where: { domain }
|
|
42
|
+
})
|
|
43
|
+
: [], salt, passwordUpdatedAt: new Date(), password: user.password ? user_1.User.encode(user.password, salt) : user_1.User.encode(defaultPassword, salt) }));
|
|
44
|
+
}
|
|
45
|
+
async updateUser(email, patch, context) {
|
|
46
|
+
const { domain, user: updater } = context.state;
|
|
47
|
+
const qb = (0, get_domain_users_1.buildDomainUsersQueryBuilder)(domain.id, 'USER');
|
|
48
|
+
const user = await qb
|
|
49
|
+
.andWhere('USER.email = :email', { email })
|
|
50
|
+
.leftJoinAndSelect('USER.roles', 'ROLES')
|
|
51
|
+
.leftJoinAndSelect('ROLES.domain', 'R_DOMAIN')
|
|
52
|
+
.getOne();
|
|
53
|
+
if (patch.roles) {
|
|
54
|
+
patch.roles = await (0, typeorm_1.getRepository)(role_1.Role).find({ where: { id: (0, typeorm_1.In)(patch.roles.map((r) => r.id)) } });
|
|
55
|
+
}
|
|
56
|
+
if (patch.status && patch.status === 'activated') {
|
|
57
|
+
user.status = user_1.UserStatus.ACTIVATED;
|
|
58
|
+
}
|
|
59
|
+
return await (0, typeorm_1.getRepository)(user_1.User).save(Object.assign(Object.assign(Object.assign({}, user), patch), { updater }));
|
|
60
|
+
}
|
|
61
|
+
async updateMultipleUser(patches, context) {
|
|
62
|
+
const { domain, user, tx } = context.state;
|
|
63
|
+
const userRepo = tx.getRepository(user_1.User);
|
|
64
|
+
let results = [];
|
|
65
|
+
const _createRecords = patches.filter((patch) => patch.cuFlag.toUpperCase() === '+');
|
|
66
|
+
const _updateRecords = patches.filter((patch) => patch.cuFlag.toUpperCase() === 'M');
|
|
67
|
+
if (_createRecords.length > 0) {
|
|
68
|
+
for (let i = 0; i < _createRecords.length; i++) {
|
|
69
|
+
const newRecord = _createRecords[i];
|
|
70
|
+
// consider if validation password rule is required
|
|
71
|
+
/* check if password is following the rule */
|
|
72
|
+
// User.validatePasswordByRule(newRecord.password, context.lng)
|
|
73
|
+
const salt = user_1.User.generateSalt();
|
|
74
|
+
const result = await userRepo.save(Object.assign(Object.assign({}, newRecord), { domains: [domain], salt, password: user_1.User.encode(newRecord.password, salt), passwordUpdatedAt: new Date(), creator: user, updater: user }));
|
|
75
|
+
// repository api는 작동하지 않음.
|
|
76
|
+
// await tx
|
|
77
|
+
// .createQueryBuilder()
|
|
78
|
+
// .insert()
|
|
79
|
+
// .into('users_domains')
|
|
80
|
+
// .values({
|
|
81
|
+
// usersId: result.id,
|
|
82
|
+
// domainsId: domain.id
|
|
83
|
+
// })
|
|
84
|
+
// .execute()
|
|
85
|
+
results.push(Object.assign(Object.assign({}, result), { cuFlag: '+' }));
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
if (_updateRecords.length > 0) {
|
|
89
|
+
for (let i = 0; i < _updateRecords.length; i++) {
|
|
90
|
+
const updateRecord = _updateRecords[i];
|
|
91
|
+
// consider if validation password rule is required
|
|
92
|
+
/* check if password is following the rule */
|
|
93
|
+
// User.validatePasswordByRule(updateRecord.password, context.lng)
|
|
94
|
+
const user = await userRepo.findOne({ where: { id: updateRecord.id }, relations: ['domains'] });
|
|
95
|
+
var domains = user.domains.find(d => d.id === domain.id) ? user.domains : [...user.domains, domain];
|
|
96
|
+
const result = await userRepo.save(Object.assign(Object.assign(Object.assign({}, user), updateRecord), { domains, password: updateRecord.password ? user_1.User.encode(updateRecord.password, user.salt) : user.password, updater: user }));
|
|
97
|
+
if (!updateRecord.status) {
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
// const domain = await user.domain
|
|
101
|
+
// if (!domain) {
|
|
102
|
+
// continue
|
|
103
|
+
// }
|
|
104
|
+
// const domainId = domain.id
|
|
105
|
+
// const domains = await user.domains
|
|
106
|
+
// if (!domains.find(domain => domain.id == domainId)) {
|
|
107
|
+
// await tx
|
|
108
|
+
// .createQueryBuilder()
|
|
109
|
+
// .insert()
|
|
110
|
+
// .into('users_domains')
|
|
111
|
+
// .values({
|
|
112
|
+
// usersId: user.id,
|
|
113
|
+
// domainsId: domain.id
|
|
114
|
+
// })
|
|
115
|
+
// .execute()
|
|
116
|
+
// }
|
|
117
|
+
results.push(Object.assign(Object.assign({}, result), { cuFlag: 'M' }));
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return results;
|
|
121
|
+
}
|
|
122
|
+
async deleteUser(email, context) {
|
|
123
|
+
const { tx } = context.state;
|
|
124
|
+
await (0, delete_user_1.deleteUser)({ email }, tx);
|
|
125
|
+
return true;
|
|
126
|
+
}
|
|
127
|
+
async deleteUsers(emails, context) {
|
|
128
|
+
const { tx } = context.state;
|
|
129
|
+
await (0, delete_user_1.deleteUsers)({ emails }, tx);
|
|
130
|
+
return true;
|
|
131
|
+
}
|
|
132
|
+
async inviteUser(email, context) {
|
|
133
|
+
let { domain } = context.state;
|
|
134
|
+
const invitee = await (0, typeorm_1.getRepository)(user_1.User).findOne({
|
|
135
|
+
where: { email },
|
|
136
|
+
relations: ['domains']
|
|
137
|
+
});
|
|
138
|
+
if (!invitee) {
|
|
139
|
+
throw new Error(context.t('error.failed to find x', { x: context.t('field.user') }));
|
|
140
|
+
}
|
|
141
|
+
const existingDomains = invitee.domains;
|
|
142
|
+
if (existingDomains.find((d) => d.id === domain.id)) {
|
|
143
|
+
throw new Error(context.t('error.x already exists in y', { x: context.t('field.user'), y: domain.name }));
|
|
144
|
+
}
|
|
145
|
+
invitee.domains = [...existingDomains, domain];
|
|
146
|
+
await (0, typeorm_1.getRepository)(user_1.User).save(invitee);
|
|
147
|
+
return true;
|
|
148
|
+
}
|
|
149
|
+
async deleteDomainUser(email, context) {
|
|
150
|
+
const { tx, domain } = context.state;
|
|
151
|
+
let user = await tx
|
|
152
|
+
.getRepository(user_1.User)
|
|
153
|
+
.findOne({ where: { email }, relations: ['domains', 'roles', 'roles.domain'] });
|
|
154
|
+
if (!user)
|
|
155
|
+
throw new Error(context.t('error.failed to find x', { x: context.t('field.user') }));
|
|
156
|
+
const targetDomainIdx = user.domains.findIndex((userDomain) => userDomain.id === domain.id);
|
|
157
|
+
if (targetDomainIdx < 0) {
|
|
158
|
+
throw new Error(context.t('error.x is not a member of y', { x: user.name, y: domain.name }));
|
|
159
|
+
}
|
|
160
|
+
// Remove domain relation with user
|
|
161
|
+
user.domains.splice(targetDomainIdx, 1);
|
|
162
|
+
// Remove domain's roles that user has
|
|
163
|
+
user.roles = user.roles.filter((role) => role.domain.id !== domain.id);
|
|
164
|
+
await tx.getRepository(user_1.User).save(user);
|
|
165
|
+
return true;
|
|
166
|
+
}
|
|
167
|
+
async transferOwner(email, context) {
|
|
168
|
+
const { domain } = context.state;
|
|
169
|
+
const user = await (0, typeorm_1.getRepository)(user_1.User).findOne({
|
|
170
|
+
where: { email }
|
|
171
|
+
});
|
|
172
|
+
domain.owner = user.id;
|
|
173
|
+
await (0, typeorm_1.getRepository)(shell_1.Domain).save(domain);
|
|
174
|
+
return true;
|
|
175
|
+
}
|
|
176
|
+
async resetPasswordToDefault(userId, context) {
|
|
177
|
+
var _a;
|
|
178
|
+
const { tx, domain } = context.state;
|
|
179
|
+
const { defaultPassword } = env_1.config.get('password');
|
|
180
|
+
if (!defaultPassword)
|
|
181
|
+
throw new Error('No default password found');
|
|
182
|
+
const targetUser = await tx.getRepository(user_1.User).findOne(userId, { relations: ['domains'] });
|
|
183
|
+
if (!targetUser)
|
|
184
|
+
throw new Error('No user found');
|
|
185
|
+
if (!((_a = targetUser === null || targetUser === void 0 ? void 0 : targetUser.domains) === null || _a === void 0 ? void 0 : _a.find((userDomain) => userDomain.id === domain.id))) {
|
|
186
|
+
throw new Error('User is not belong to domain');
|
|
187
|
+
}
|
|
188
|
+
targetUser.salt = user_1.User.generateSalt();
|
|
189
|
+
targetUser.password = user_1.User.encode(defaultPassword, targetUser.salt);
|
|
190
|
+
await tx.getRepository(user_1.User).save(targetUser);
|
|
191
|
+
return true;
|
|
192
|
+
}
|
|
193
|
+
async updateUserRoles(userId, availableRoles, selectedRoles, context) {
|
|
194
|
+
const { domain, tx } = context.state;
|
|
195
|
+
let user = await tx.getRepository(user_1.User).findOne(userId, { relations: ['domains', 'roles'] });
|
|
196
|
+
if (!user)
|
|
197
|
+
throw new Error('Failed to find user');
|
|
198
|
+
if (user.domains.map((d) => d.id).indexOf(domain.id) < 0)
|
|
199
|
+
throw new Error(`User is not belongs to current domain`);
|
|
200
|
+
const availableRoleIds = availableRoles.map((r) => r.id);
|
|
201
|
+
user.roles = user.roles.filter((r) => availableRoleIds.indexOf(r.id) < 0);
|
|
202
|
+
user.roles = user.roles.concat(selectedRoles);
|
|
203
|
+
return await tx.getRepository(user_1.User).save(user);
|
|
204
|
+
}
|
|
205
|
+
};
|
|
206
|
+
__decorate([
|
|
207
|
+
(0, type_graphql_1.Directive)('@privilege(category: "user", privilege: "mutation")'),
|
|
208
|
+
(0, type_graphql_1.Mutation)(returns => user_1.User, { description: 'To create new user' }),
|
|
209
|
+
__param(0, (0, type_graphql_1.Arg)('user')),
|
|
210
|
+
__param(1, (0, type_graphql_1.Ctx)()),
|
|
211
|
+
__metadata("design:type", Function),
|
|
212
|
+
__metadata("design:paramtypes", [user_types_1.NewUser, Object]),
|
|
213
|
+
__metadata("design:returntype", Promise)
|
|
214
|
+
], UserMutation.prototype, "createUser", null);
|
|
215
|
+
__decorate([
|
|
216
|
+
(0, type_graphql_1.Directive)('@privilege(category: "user", privilege: "mutation", domainOwnerGranted: true)'),
|
|
217
|
+
(0, type_graphql_1.Mutation)(returns => user_1.User, { description: 'To modify user information' }),
|
|
218
|
+
__param(0, (0, type_graphql_1.Arg)('email')),
|
|
219
|
+
__param(1, (0, type_graphql_1.Arg)('patch')),
|
|
220
|
+
__param(2, (0, type_graphql_1.Ctx)()),
|
|
221
|
+
__metadata("design:type", Function),
|
|
222
|
+
__metadata("design:paramtypes", [String, user_types_1.UserPatch, Object]),
|
|
223
|
+
__metadata("design:returntype", Promise)
|
|
224
|
+
], UserMutation.prototype, "updateUser", null);
|
|
225
|
+
__decorate([
|
|
226
|
+
(0, type_graphql_1.Directive)('@privilege(category: "user", privilege: "mutation", domainOwnerGranted: true)'),
|
|
227
|
+
(0, type_graphql_1.Directive)('@transaction'),
|
|
228
|
+
(0, type_graphql_1.Mutation)(returns => [user_1.User], { description: 'To modify user information' }),
|
|
229
|
+
__param(0, (0, type_graphql_1.Arg)('patches', type => [user_types_1.UserPatch])),
|
|
230
|
+
__param(1, (0, type_graphql_1.Ctx)()),
|
|
231
|
+
__metadata("design:type", Function),
|
|
232
|
+
__metadata("design:paramtypes", [Array, Object]),
|
|
233
|
+
__metadata("design:returntype", Promise)
|
|
234
|
+
], UserMutation.prototype, "updateMultipleUser", null);
|
|
235
|
+
__decorate([
|
|
236
|
+
(0, type_graphql_1.Directive)('@privilege(category: "user", privilege: "mutation")'),
|
|
237
|
+
(0, type_graphql_1.Directive)('@transaction'),
|
|
238
|
+
(0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To create new user' }),
|
|
239
|
+
__param(0, (0, type_graphql_1.Arg)('email')),
|
|
240
|
+
__param(1, (0, type_graphql_1.Ctx)()),
|
|
241
|
+
__metadata("design:type", Function),
|
|
242
|
+
__metadata("design:paramtypes", [String, Object]),
|
|
243
|
+
__metadata("design:returntype", Promise)
|
|
244
|
+
], UserMutation.prototype, "deleteUser", null);
|
|
245
|
+
__decorate([
|
|
246
|
+
(0, type_graphql_1.Directive)('@privilege(category: "user", privilege: "mutation")'),
|
|
247
|
+
(0, type_graphql_1.Directive)('@transaction'),
|
|
248
|
+
(0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To create new user' }),
|
|
249
|
+
__param(0, (0, type_graphql_1.Arg)('emails', type => [String])),
|
|
250
|
+
__param(1, (0, type_graphql_1.Ctx)()),
|
|
251
|
+
__metadata("design:type", Function),
|
|
252
|
+
__metadata("design:paramtypes", [Array, Object]),
|
|
253
|
+
__metadata("design:returntype", Promise)
|
|
254
|
+
], UserMutation.prototype, "deleteUsers", null);
|
|
255
|
+
__decorate([
|
|
256
|
+
(0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To create new user' }),
|
|
257
|
+
__param(0, (0, type_graphql_1.Arg)('email')),
|
|
258
|
+
__param(1, (0, type_graphql_1.Ctx)()),
|
|
259
|
+
__metadata("design:type", Function),
|
|
260
|
+
__metadata("design:paramtypes", [String, Object]),
|
|
261
|
+
__metadata("design:returntype", Promise)
|
|
262
|
+
], UserMutation.prototype, "inviteUser", null);
|
|
263
|
+
__decorate([
|
|
264
|
+
(0, type_graphql_1.Directive)('@transaction'),
|
|
265
|
+
(0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To create new user' }),
|
|
266
|
+
__param(0, (0, type_graphql_1.Arg)('email')),
|
|
267
|
+
__param(1, (0, type_graphql_1.Ctx)()),
|
|
268
|
+
__metadata("design:type", Function),
|
|
269
|
+
__metadata("design:paramtypes", [String, Object]),
|
|
270
|
+
__metadata("design:returntype", Promise)
|
|
271
|
+
], UserMutation.prototype, "deleteDomainUser", null);
|
|
272
|
+
__decorate([
|
|
273
|
+
(0, type_graphql_1.Directive)('@privilege(domainOwnerGranted: true)'),
|
|
274
|
+
(0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To create new user' }),
|
|
275
|
+
__param(0, (0, type_graphql_1.Arg)('email')),
|
|
276
|
+
__param(1, (0, type_graphql_1.Ctx)()),
|
|
277
|
+
__metadata("design:type", Function),
|
|
278
|
+
__metadata("design:paramtypes", [String, Object]),
|
|
279
|
+
__metadata("design:returntype", Promise)
|
|
280
|
+
], UserMutation.prototype, "transferOwner", null);
|
|
281
|
+
__decorate([
|
|
282
|
+
(0, type_graphql_1.Directive)('@privilege(category: "user", privilege: "query", domainOwnerGranted: true)'),
|
|
283
|
+
(0, type_graphql_1.Directive)('@transaction'),
|
|
284
|
+
(0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To create new user' }),
|
|
285
|
+
__param(0, (0, type_graphql_1.Arg)('userId')),
|
|
286
|
+
__param(1, (0, type_graphql_1.Ctx)()),
|
|
287
|
+
__metadata("design:type", Function),
|
|
288
|
+
__metadata("design:paramtypes", [String, Object]),
|
|
289
|
+
__metadata("design:returntype", Promise)
|
|
290
|
+
], UserMutation.prototype, "resetPasswordToDefault", null);
|
|
291
|
+
__decorate([
|
|
292
|
+
(0, type_graphql_1.Directive)('@privilege(category: "user", privilege: "mutation", domainOwnerGranted: true)'),
|
|
293
|
+
(0, type_graphql_1.Directive)('@transaction'),
|
|
294
|
+
(0, type_graphql_1.Mutation)(returns => user_1.User, { description: 'To create new user' }),
|
|
295
|
+
__param(0, (0, type_graphql_1.Arg)('userId')),
|
|
296
|
+
__param(1, (0, type_graphql_1.Arg)('availableRoles', type => [shell_1.ObjectRef])),
|
|
297
|
+
__param(2, (0, type_graphql_1.Arg)('selectedRoles', type => [shell_1.ObjectRef])),
|
|
298
|
+
__param(3, (0, type_graphql_1.Ctx)()),
|
|
299
|
+
__metadata("design:type", Function),
|
|
300
|
+
__metadata("design:paramtypes", [String, Array, Array, Object]),
|
|
301
|
+
__metadata("design:returntype", Promise)
|
|
302
|
+
], UserMutation.prototype, "updateUserRoles", null);
|
|
303
|
+
UserMutation = __decorate([
|
|
304
|
+
(0, type_graphql_1.Resolver)(user_1.User)
|
|
305
|
+
], UserMutation);
|
|
306
|
+
exports.UserMutation = UserMutation;
|
|
307
|
+
//# sourceMappingURL=user-mutation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-mutation.js","sourceRoot":"","sources":["../../../server/service/user/user-mutation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,194 @@
|
|
|
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
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
var _a;
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.UserQuery = void 0;
|
|
17
|
+
const type_graphql_1 = require("type-graphql");
|
|
18
|
+
const typeorm_1 = require("typeorm");
|
|
19
|
+
const shell_1 = require("@things-factory/shell");
|
|
20
|
+
const user_1 = require("./user");
|
|
21
|
+
const application_1 = require("../application/application");
|
|
22
|
+
const appliance_1 = require("../appliance/appliance");
|
|
23
|
+
const user_types_1 = require("./user-types");
|
|
24
|
+
const get_domain_users_1 = require("../../utils/get-domain-users");
|
|
25
|
+
const check_user_belongs_domain_1 = require("../../utils/check-user-belongs-domain");
|
|
26
|
+
const env_1 = require("@things-factory/env");
|
|
27
|
+
let UserQuery = class UserQuery {
|
|
28
|
+
async user(email, context) {
|
|
29
|
+
const { domain } = context.state;
|
|
30
|
+
const qb = (0, get_domain_users_1.buildDomainUsersQueryBuilder)(domain.id, 'USER');
|
|
31
|
+
qb.andWhere('USER.email = :email', { email });
|
|
32
|
+
return qb.getOne();
|
|
33
|
+
}
|
|
34
|
+
async users(params, context) {
|
|
35
|
+
const { domain } = context.state;
|
|
36
|
+
const qb = (0, get_domain_users_1.buildDomainUsersQueryBuilder)(domain.id, 'USER');
|
|
37
|
+
(0, shell_1.buildQuery)(qb, params, null, false);
|
|
38
|
+
const [items, total] = await qb.getManyAndCount();
|
|
39
|
+
const foundUsers = items.map((item) => {
|
|
40
|
+
item.owner = item.id === domain.owner;
|
|
41
|
+
return item;
|
|
42
|
+
});
|
|
43
|
+
return { items: foundUsers, total };
|
|
44
|
+
}
|
|
45
|
+
async checkUserBelongsDomain(context) {
|
|
46
|
+
const { user, domain } = context.state;
|
|
47
|
+
if (user) {
|
|
48
|
+
return await (0, check_user_belongs_domain_1.checkUserBelongsDomain)(domain, user);
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
throw new Error(`Failed to get current user information.`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
async checkResettablePasswordToDefault(context) {
|
|
55
|
+
const { defaultPassword } = env_1.config.get('password');
|
|
56
|
+
return Boolean(defaultPassword);
|
|
57
|
+
}
|
|
58
|
+
async checkDefaultPassword(context) {
|
|
59
|
+
const { defaultPassword } = env_1.config.get('password');
|
|
60
|
+
return Boolean(defaultPassword);
|
|
61
|
+
}
|
|
62
|
+
async domainUsers(context) {
|
|
63
|
+
const { domain } = context.state;
|
|
64
|
+
const qb = (0, get_domain_users_1.buildDomainUsersQueryBuilder)(domain.id, 'USER');
|
|
65
|
+
const domainUsers = await qb
|
|
66
|
+
.orWhere(qb => {
|
|
67
|
+
const subQuery = qb
|
|
68
|
+
.subQuery()
|
|
69
|
+
.select('CAST(APPLICATION.id as TEXT)')
|
|
70
|
+
.from(application_1.Application, 'APPLICATION')
|
|
71
|
+
.where('APPLICATION.domain_id = :domainId', { domainId: domain.id })
|
|
72
|
+
.getQuery();
|
|
73
|
+
return 'USER.reference IN ' + subQuery;
|
|
74
|
+
})
|
|
75
|
+
.orWhere(qb => {
|
|
76
|
+
const subQuery = qb
|
|
77
|
+
.subQuery()
|
|
78
|
+
.select('CAST(APPLIANCE.id as TEXT)')
|
|
79
|
+
.from(appliance_1.Appliance, 'APPLIANCE')
|
|
80
|
+
.where('APPLIANCE.domain_id = :domainId', { domainId: domain.id })
|
|
81
|
+
.getQuery();
|
|
82
|
+
return 'USER.reference IN ' + subQuery;
|
|
83
|
+
})
|
|
84
|
+
.getMany();
|
|
85
|
+
return domainUsers.map((user) => {
|
|
86
|
+
user.owner = user.id === domain.owner;
|
|
87
|
+
return user;
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
async checkUserExistence(email) {
|
|
91
|
+
return Boolean(await (0, typeorm_1.getRepository)(user_1.User).count({ where: { email } }));
|
|
92
|
+
}
|
|
93
|
+
async domains(user) {
|
|
94
|
+
return (await (0, typeorm_1.getRepository)(user_1.User).findOne(user.id, {
|
|
95
|
+
relations: ['domains']
|
|
96
|
+
})).domains;
|
|
97
|
+
}
|
|
98
|
+
async roles(user) {
|
|
99
|
+
return (await (0, typeorm_1.getRepository)(user_1.User).findOne(user.id, { relations: ['roles'] })).roles;
|
|
100
|
+
}
|
|
101
|
+
async updater(user) {
|
|
102
|
+
return await (0, typeorm_1.getRepository)(user_1.User).findOne(user.updaterId);
|
|
103
|
+
}
|
|
104
|
+
async creator(user) {
|
|
105
|
+
return await (0, typeorm_1.getRepository)(user_1.User).findOne(user.creatorId);
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
__decorate([
|
|
109
|
+
(0, type_graphql_1.Directive)('@privilege(category: "user", privilege: "query", domainOwnerGranted: true)'),
|
|
110
|
+
(0, type_graphql_1.Query)(returns => user_1.User, { description: 'To fetch user' }),
|
|
111
|
+
__param(0, (0, type_graphql_1.Arg)('email')),
|
|
112
|
+
__param(1, (0, type_graphql_1.Ctx)()),
|
|
113
|
+
__metadata("design:type", Function),
|
|
114
|
+
__metadata("design:paramtypes", [String, Object]),
|
|
115
|
+
__metadata("design:returntype", Promise)
|
|
116
|
+
], UserQuery.prototype, "user", null);
|
|
117
|
+
__decorate([
|
|
118
|
+
(0, type_graphql_1.Directive)('@privilege(category: "user", privilege: "query", domainOwnerGranted: true)'),
|
|
119
|
+
(0, type_graphql_1.Query)(returns => user_types_1.UserList, { description: 'To fetch multiple users' }),
|
|
120
|
+
__param(0, (0, type_graphql_1.Args)()),
|
|
121
|
+
__param(1, (0, type_graphql_1.Ctx)()),
|
|
122
|
+
__metadata("design:type", Function),
|
|
123
|
+
__metadata("design:paramtypes", [typeof (_a = typeof shell_1.ListParam !== "undefined" && shell_1.ListParam) === "function" ? _a : Object, Object]),
|
|
124
|
+
__metadata("design:returntype", Promise)
|
|
125
|
+
], UserQuery.prototype, "users", null);
|
|
126
|
+
__decorate([
|
|
127
|
+
(0, type_graphql_1.Query)(returns => Boolean, { description: 'To check if current user is belongs to current domain' }),
|
|
128
|
+
__param(0, (0, type_graphql_1.Ctx)()),
|
|
129
|
+
__metadata("design:type", Function),
|
|
130
|
+
__metadata("design:paramtypes", [Object]),
|
|
131
|
+
__metadata("design:returntype", Promise)
|
|
132
|
+
], UserQuery.prototype, "checkUserBelongsDomain", null);
|
|
133
|
+
__decorate([
|
|
134
|
+
(0, type_graphql_1.Query)(returns => Boolean, { description: 'To check if system would provide default password to create new user' }),
|
|
135
|
+
__param(0, (0, type_graphql_1.Ctx)()),
|
|
136
|
+
__metadata("design:type", Function),
|
|
137
|
+
__metadata("design:paramtypes", [Object]),
|
|
138
|
+
__metadata("design:returntype", Promise)
|
|
139
|
+
], UserQuery.prototype, "checkResettablePasswordToDefault", null);
|
|
140
|
+
__decorate([
|
|
141
|
+
(0, type_graphql_1.Query)(returns => Boolean, { description: 'To check if system would provide default password to create new user' }),
|
|
142
|
+
__param(0, (0, type_graphql_1.Ctx)()),
|
|
143
|
+
__metadata("design:type", Function),
|
|
144
|
+
__metadata("design:paramtypes", [Object]),
|
|
145
|
+
__metadata("design:returntype", Promise)
|
|
146
|
+
], UserQuery.prototype, "checkDefaultPassword", null);
|
|
147
|
+
__decorate([
|
|
148
|
+
(0, type_graphql_1.Query)(returns => [user_1.User], { description: '...' }),
|
|
149
|
+
__param(0, (0, type_graphql_1.Ctx)()),
|
|
150
|
+
__metadata("design:type", Function),
|
|
151
|
+
__metadata("design:paramtypes", [Object]),
|
|
152
|
+
__metadata("design:returntype", Promise)
|
|
153
|
+
], UserQuery.prototype, "domainUsers", null);
|
|
154
|
+
__decorate([
|
|
155
|
+
(0, type_graphql_1.Directive)('@privilege(category: "user", privilege: "query")'),
|
|
156
|
+
(0, type_graphql_1.Query)(returns => Boolean, { description: '...' }),
|
|
157
|
+
__param(0, (0, type_graphql_1.Arg)('email')),
|
|
158
|
+
__metadata("design:type", Function),
|
|
159
|
+
__metadata("design:paramtypes", [String]),
|
|
160
|
+
__metadata("design:returntype", Promise)
|
|
161
|
+
], UserQuery.prototype, "checkUserExistence", null);
|
|
162
|
+
__decorate([
|
|
163
|
+
(0, type_graphql_1.FieldResolver)(),
|
|
164
|
+
__param(0, (0, type_graphql_1.Root)()),
|
|
165
|
+
__metadata("design:type", Function),
|
|
166
|
+
__metadata("design:paramtypes", [user_1.User]),
|
|
167
|
+
__metadata("design:returntype", Promise)
|
|
168
|
+
], UserQuery.prototype, "domains", null);
|
|
169
|
+
__decorate([
|
|
170
|
+
(0, type_graphql_1.FieldResolver)(),
|
|
171
|
+
__param(0, (0, type_graphql_1.Root)()),
|
|
172
|
+
__metadata("design:type", Function),
|
|
173
|
+
__metadata("design:paramtypes", [user_1.User]),
|
|
174
|
+
__metadata("design:returntype", Promise)
|
|
175
|
+
], UserQuery.prototype, "roles", null);
|
|
176
|
+
__decorate([
|
|
177
|
+
(0, type_graphql_1.FieldResolver)(),
|
|
178
|
+
__param(0, (0, type_graphql_1.Root)()),
|
|
179
|
+
__metadata("design:type", Function),
|
|
180
|
+
__metadata("design:paramtypes", [user_1.User]),
|
|
181
|
+
__metadata("design:returntype", Promise)
|
|
182
|
+
], UserQuery.prototype, "updater", null);
|
|
183
|
+
__decorate([
|
|
184
|
+
(0, type_graphql_1.FieldResolver)(),
|
|
185
|
+
__param(0, (0, type_graphql_1.Root)()),
|
|
186
|
+
__metadata("design:type", Function),
|
|
187
|
+
__metadata("design:paramtypes", [user_1.User]),
|
|
188
|
+
__metadata("design:returntype", Promise)
|
|
189
|
+
], UserQuery.prototype, "creator", null);
|
|
190
|
+
UserQuery = __decorate([
|
|
191
|
+
(0, type_graphql_1.Resolver)(user_1.User)
|
|
192
|
+
], UserQuery);
|
|
193
|
+
exports.UserQuery = UserQuery;
|
|
194
|
+
//# sourceMappingURL=user-query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-query.js","sourceRoot":"","sources":["../../../server/service/user/user-query.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,106 @@
|
|
|
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.UserList = exports.UserPatch = exports.NewUser = void 0;
|
|
13
|
+
const type_graphql_1 = require("type-graphql");
|
|
14
|
+
const shell_1 = require("@things-factory/shell");
|
|
15
|
+
const user_1 = require("./user");
|
|
16
|
+
let NewUser = class NewUser {
|
|
17
|
+
};
|
|
18
|
+
__decorate([
|
|
19
|
+
(0, type_graphql_1.Field)(),
|
|
20
|
+
__metadata("design:type", String)
|
|
21
|
+
], NewUser.prototype, "name", void 0);
|
|
22
|
+
__decorate([
|
|
23
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
24
|
+
__metadata("design:type", String)
|
|
25
|
+
], NewUser.prototype, "description", void 0);
|
|
26
|
+
__decorate([
|
|
27
|
+
(0, type_graphql_1.Field)(),
|
|
28
|
+
__metadata("design:type", String)
|
|
29
|
+
], NewUser.prototype, "email", void 0);
|
|
30
|
+
__decorate([
|
|
31
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
32
|
+
__metadata("design:type", String)
|
|
33
|
+
], NewUser.prototype, "password", void 0);
|
|
34
|
+
__decorate([
|
|
35
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
36
|
+
__metadata("design:type", String)
|
|
37
|
+
], NewUser.prototype, "userType", void 0);
|
|
38
|
+
__decorate([
|
|
39
|
+
(0, type_graphql_1.Field)(type => [shell_1.ObjectRef], { nullable: true }),
|
|
40
|
+
__metadata("design:type", Array)
|
|
41
|
+
], NewUser.prototype, "roles", void 0);
|
|
42
|
+
NewUser = __decorate([
|
|
43
|
+
(0, type_graphql_1.InputType)()
|
|
44
|
+
], NewUser);
|
|
45
|
+
exports.NewUser = NewUser;
|
|
46
|
+
let UserPatch = class UserPatch {
|
|
47
|
+
};
|
|
48
|
+
__decorate([
|
|
49
|
+
(0, type_graphql_1.Field)(type => type_graphql_1.ID, { nullable: true }),
|
|
50
|
+
__metadata("design:type", String)
|
|
51
|
+
], UserPatch.prototype, "id", void 0);
|
|
52
|
+
__decorate([
|
|
53
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
54
|
+
__metadata("design:type", String)
|
|
55
|
+
], UserPatch.prototype, "name", void 0);
|
|
56
|
+
__decorate([
|
|
57
|
+
(0, type_graphql_1.Field)(type => [shell_1.ObjectRef], { nullable: true }),
|
|
58
|
+
__metadata("design:type", Array)
|
|
59
|
+
], UserPatch.prototype, "domains", void 0);
|
|
60
|
+
__decorate([
|
|
61
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
62
|
+
__metadata("design:type", String)
|
|
63
|
+
], UserPatch.prototype, "description", void 0);
|
|
64
|
+
__decorate([
|
|
65
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
66
|
+
__metadata("design:type", String)
|
|
67
|
+
], UserPatch.prototype, "email", void 0);
|
|
68
|
+
__decorate([
|
|
69
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
70
|
+
__metadata("design:type", String)
|
|
71
|
+
], UserPatch.prototype, "password", void 0);
|
|
72
|
+
__decorate([
|
|
73
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
74
|
+
__metadata("design:type", String)
|
|
75
|
+
], UserPatch.prototype, "status", void 0);
|
|
76
|
+
__decorate([
|
|
77
|
+
(0, type_graphql_1.Field)(type => [shell_1.ObjectRef], { nullable: true }),
|
|
78
|
+
__metadata("design:type", Array)
|
|
79
|
+
], UserPatch.prototype, "roles", void 0);
|
|
80
|
+
__decorate([
|
|
81
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
82
|
+
__metadata("design:type", String)
|
|
83
|
+
], UserPatch.prototype, "userType", void 0);
|
|
84
|
+
__decorate([
|
|
85
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
86
|
+
__metadata("design:type", String)
|
|
87
|
+
], UserPatch.prototype, "cuFlag", void 0);
|
|
88
|
+
UserPatch = __decorate([
|
|
89
|
+
(0, type_graphql_1.InputType)()
|
|
90
|
+
], UserPatch);
|
|
91
|
+
exports.UserPatch = UserPatch;
|
|
92
|
+
let UserList = class UserList {
|
|
93
|
+
};
|
|
94
|
+
__decorate([
|
|
95
|
+
(0, type_graphql_1.Field)(type => [user_1.User], { nullable: true }),
|
|
96
|
+
__metadata("design:type", Array)
|
|
97
|
+
], UserList.prototype, "items", void 0);
|
|
98
|
+
__decorate([
|
|
99
|
+
(0, type_graphql_1.Field)(type => type_graphql_1.Int, { nullable: true }),
|
|
100
|
+
__metadata("design:type", Number)
|
|
101
|
+
], UserList.prototype, "total", void 0);
|
|
102
|
+
UserList = __decorate([
|
|
103
|
+
(0, type_graphql_1.ObjectType)()
|
|
104
|
+
], UserList);
|
|
105
|
+
exports.UserList = UserList;
|
|
106
|
+
//# sourceMappingURL=user-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-types.js","sourceRoot":"","sources":["../../../server/service/user/user-types.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+CAAoE;AACpE,iDAAiD;AACjD,iCAA6B;AAGtB,IAAM,OAAO,GAAb,MAAM,OAAO;CAkBnB,CAAA;AAjBC;IAAC,IAAA,oBAAK,GAAE;;qCACI;AAEZ;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;4CACN;AAEpB;IAAC,IAAA,oBAAK,GAAE;;sCACK;AAEb;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yCACT;AAEjB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yCACT;AAEjB;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,iBAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sCAC5B;AAjBR,OAAO;IADnB,IAAA,wBAAS,GAAE;GACC,OAAO,CAkBnB;AAlBY,0BAAO;AAqBb,IAAM,SAAS,GAAf,MAAM,SAAS;CA8BrB,CAAA;AA7BC;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qCAC3B;AAEX;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uCACb;AAEb;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,iBAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0CAC1B;AAErB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;8CACN;AAEpB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wCACZ;AAEd;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2CACT;AAEjB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yCACX;AAEf;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,iBAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wCAC5B;AAEnB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2CACT;AAEjB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yCACX;AA7BJ,SAAS;IADrB,IAAA,wBAAS,GAAE;GACC,SAAS,CA8BrB;AA9BY,8BAAS;AAiCf,IAAM,QAAQ,GAAd,MAAM,QAAQ;CAMpB,CAAA;AALC;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uCAC7B;AAEb;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uCAC1B;AALF,QAAQ;IADpB,IAAA,yBAAU,GAAE;GACA,QAAQ,CAMpB;AANY,4BAAQ"}
|