@nocobase/plugin-users 0.5.0-alpha.30 → 0.5.0-alpha.34
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/lib/actions/users.js
CHANGED
|
@@ -103,7 +103,7 @@ function signin(ctx, next) {
|
|
|
103
103
|
}
|
|
104
104
|
|
|
105
105
|
if (!user.token) {
|
|
106
|
-
user.token = crypto_random_string_1.default({
|
|
106
|
+
user.token = (0, crypto_random_string_1.default)({
|
|
107
107
|
length: 20
|
|
108
108
|
});
|
|
109
109
|
yield user.save();
|
|
@@ -167,7 +167,7 @@ function lostpassword(ctx, next) {
|
|
|
167
167
|
ctx.throw(401, '邮箱账号未注册');
|
|
168
168
|
}
|
|
169
169
|
|
|
170
|
-
user.reset_token = crypto_random_string_1.default({
|
|
170
|
+
user.reset_token = (0, crypto_random_string_1.default)({
|
|
171
171
|
length: 20
|
|
172
172
|
});
|
|
173
173
|
yield user.save();
|
package/lib/actions/users.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["actions/users.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,iDAA8C;AAC9C,gFAAsD;AAEtD,SAAsB,KAAK,CAAC,GAAY,EAAE,IAAU;;QAClD,IAAI,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE;YACzB,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;YAC5C,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;YAChB,MAAM,IAAI,EAAE,CAAC;SACd;aAAM;YACL,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;SAChC;IACH,CAAC;CAAA;AARD,sBAQC;AAED,SAAsB,MAAM,CAAC,GAAY,EAAE,IAAU;;QACnD,MAAM,EAAE,WAAW,GAAG,OAAO,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE;YACxB,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;SAC3B;QACD,MAAM,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACtC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC;YACpD,KAAK,EAAE;gBACL,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC;aACnC;SACF,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,EAAE;YACT,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;SAC3B;QACD,MAAM,OAAO,GAAG,MAAM,mBAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtE,IAAI,CAAC,OAAO,EAAE;YACZ,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;SAC/B;QACD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACf,IAAI,CAAC,KAAK,GAAG,8BAAkB,
|
|
1
|
+
{"version":3,"sources":["actions/users.ts"],"names":[],"mappings":"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","file":"users.js","sourcesContent":["import { Context, Next } from '@nocobase/actions';\nimport { PASSWORD } from '@nocobase/database';\nimport cryptoRandomString from 'crypto-random-string';\n\nexport async function check(ctx: Context, next: Next) {\n if (ctx.state.currentUser) {\n const user = ctx.state.currentUser.toJSON();\n ctx.body = user;\n await next();\n } else {\n ctx.throw(401, 'Unauthorized');\n }\n}\n\nexport async function signin(ctx: Context, next: Next) {\n const { uniqueField = 'email', values } = ctx.action.params;\n console.log('signin.values', values);\n if (!values[uniqueField]) {\n ctx.throw(401, '请填写邮箱账号');\n }\n const User = ctx.db.getModel('users');\n const user = await User.scope('withPassword').findOne({\n where: {\n [uniqueField]: values[uniqueField],\n },\n });\n if (!user) {\n ctx.throw(401, '邮箱账号未注册');\n }\n const isValid = await PASSWORD.verify(values.password, user.password);\n if (!isValid) {\n ctx.throw(401, '密码错误,请您重新输入');\n }\n if (!user.token) {\n user.token = cryptoRandomString({ length: 20 });\n await user.save();\n }\n ctx.body = user.toJSON();\n delete ctx.body.password;\n await next();\n}\n\nexport async function signout(ctx: Context, next: Next) {\n ctx.body = {};\n await next();\n}\n\nexport async function signup(ctx: Context, next: Next) {\n const User = ctx.db.getModel('users');\n const { values } = ctx.action.params;\n try {\n const user = await User.create(values);\n ctx.body = user;\n } catch (error) {\n if (error.errors) {\n ctx.throw(401, error.errors.map((data) => data.message).join(', '));\n } else {\n ctx.throw(401, '注册失败');\n }\n }\n await next();\n}\n\nexport async function lostpassword(ctx: Context, next: Next) {\n const {\n values: { email },\n } = ctx.action.params;\n if (!email) {\n ctx.throw(401, '请填写邮箱账号');\n }\n const User = ctx.db.getModel('users');\n const user = await User.findOne({\n where: {\n email,\n },\n });\n if (!user) {\n ctx.throw(401, '邮箱账号未注册');\n }\n user.reset_token = cryptoRandomString({ length: 20 });\n await user.save();\n ctx.body = user;\n await next();\n}\n\nexport async function resetpassword(ctx: Context, next: Next) {\n const {\n values: { email, password, reset_token },\n } = ctx.action.params;\n const User = ctx.db.getModel('users');\n const user = await User.findOne({\n where: {\n email,\n reset_token,\n },\n });\n if (!user) {\n ctx.throw(401, 'Unauthorized');\n }\n user.token = null;\n user.reset_token = null;\n user.password = password;\n await user.save();\n ctx.body = user;\n await next();\n}\n\nexport async function getUserByResetToken(ctx: Context, next: Next) {\n const { token } = ctx.action.params;\n const User = ctx.db.getModel('users');\n const user = await User.findOne({\n where: {\n reset_token: token,\n },\n });\n if (!user) {\n ctx.throw(401, 'Unauthorized');\n }\n ctx.body = user;\n await next();\n}\n\nexport async function updateProfile(ctx: Context, next: Next) {\n const { values } = ctx.action.params;\n if (!ctx.state.currentUser) {\n ctx.throw(401, 'Unauthorized');\n }\n await ctx.state.currentUser.update(values);\n ctx.body = ctx.state.currentUser;\n await next();\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["collections/users.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;;AAElD,
|
|
1
|
+
{"version":3,"sources":["collections/users.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;;AAElD,wBAsGkB","file":"users.d.ts","sourcesContent":["import { TableOptions } from '@nocobase/database';\n\nexport default {\n name: 'users',\n title: '{{t(\"Users\")}}',\n sortable: 'sort',\n // developerMode: true,\n // internal: true,\n createdBy: false,\n updatedBy: false,\n privilege: 'undelete',\n scopes: {\n withPassword: {\n attributes: { include: ['password'] },\n },\n },\n defaultScope: {\n attributes: { exclude: ['password'] },\n },\n fields: [\n {\n interface: 'string',\n type: 'string',\n name: 'nickname',\n uiSchema: {\n type: 'string',\n title: '{{t(\"Nickname\")}}',\n 'x-component': 'Input',\n },\n },\n {\n interface: 'email',\n type: 'string',\n name: 'email',\n unique: true,\n privilege: 'undelete',\n uiSchema: {\n type: 'string',\n title: '{{t(\"Email\")}}',\n 'x-component': 'Input',\n require: true,\n },\n },\n {\n interface: 'password',\n type: 'password',\n name: 'password',\n privilege: 'undelete',\n uiSchema: {\n type: 'string',\n title: '{{t(\"Password\")}}',\n 'x-component': 'Password',\n },\n },\n {\n interface: 'linkTo',\n type: 'belongsToMany',\n name: 'roles',\n target: 'roles',\n foreignKey: 'user_id',\n otherKey: 'role_name',\n sourceKey: 'id',\n targetKey: 'name',\n uiSchema: {\n type: 'array',\n title: '{{t(\"Roles\")}}',\n 'x-component': 'Select.Drawer',\n 'x-component-props': {\n multiple: true,\n fieldNames: {\n label: 'title',\n value: 'name',\n },\n },\n 'x-decorator': 'FormItem',\n 'x-designable-bar': 'Select.Drawer.DesignableBar',\n },\n },\n {\n interface: 'select',\n type: 'string',\n name: 'appLang',\n privilege: 'undelete',\n state: 0,\n },\n {\n interface: 'password',\n type: 'string',\n name: 'token',\n unique: true,\n hidden: true,\n privilege: 'undelete',\n state: 0,\n },\n {\n interface: 'password',\n type: 'string',\n name: 'reset_token',\n unique: true,\n hidden: true,\n privilege: 'undelete',\n state: 0,\n },\n ],\n} as TableOptions;\n"]}
|
package/lib/collections/users.js
CHANGED
|
@@ -65,6 +65,29 @@ exports.default = {
|
|
|
65
65
|
title: '{{t("Password")}}',
|
|
66
66
|
'x-component': 'Password'
|
|
67
67
|
}
|
|
68
|
+
}, {
|
|
69
|
+
interface: 'linkTo',
|
|
70
|
+
type: 'belongsToMany',
|
|
71
|
+
name: 'roles',
|
|
72
|
+
target: 'roles',
|
|
73
|
+
foreignKey: 'user_id',
|
|
74
|
+
otherKey: 'role_name',
|
|
75
|
+
sourceKey: 'id',
|
|
76
|
+
targetKey: 'name',
|
|
77
|
+
uiSchema: {
|
|
78
|
+
type: 'array',
|
|
79
|
+
title: '{{t("Roles")}}',
|
|
80
|
+
'x-component': 'Select.Drawer',
|
|
81
|
+
'x-component-props': {
|
|
82
|
+
multiple: true,
|
|
83
|
+
fieldNames: {
|
|
84
|
+
label: 'title',
|
|
85
|
+
value: 'name'
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
'x-decorator': 'FormItem',
|
|
89
|
+
'x-designable-bar': 'Select.Drawer.DesignableBar'
|
|
90
|
+
}
|
|
68
91
|
}, {
|
|
69
92
|
interface: 'select',
|
|
70
93
|
type: 'string',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["collections/users.ts"],"names":[],"mappings":";;AAEA,kBAAe;IACb,IAAI,EAAE,OAAO;IACb,KAAK,EAAE,gBAAgB;IACvB,QAAQ,EAAE,MAAM;IAGhB,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,UAAU;IACrB,MAAM,EAAE;QACN,YAAY,EAAE;YACZ,UAAU,EAAE,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE;SACtC;KACF;IACD,YAAY,EAAE;QACZ,UAAU,EAAE,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE;KACtC;IACD,MAAM,EAAE;QACN;YACE,SAAS,EAAE,QAAQ;YACnB,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,mBAAmB;gBAC1B,aAAa,EAAE,OAAO;aACvB;SACF;QACD;YACE,SAAS,EAAE,OAAO;YAClB,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,UAAU;YACrB,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,gBAAgB;gBACvB,aAAa,EAAE,OAAO;gBACtB,OAAO,EAAE,IAAI;aACd;SACF;QACD;YACE,SAAS,EAAE,UAAU;YACrB,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,UAAU;YAChB,SAAS,EAAE,UAAU;YACrB,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,mBAAmB;gBAC1B,aAAa,EAAE,UAAU;aAC1B;SACF;QACD;YACE,SAAS,EAAE,QAAQ;YACnB,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,SAAS;YACf,SAAS,EAAE,UAAU;YACrB,KAAK,EAAE,CAAC;SACT;QACD;YACE,SAAS,EAAE,UAAU;YACrB,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,UAAU;YACrB,KAAK,EAAE,CAAC;SACT;QACD;YACE,SAAS,EAAE,UAAU;YACrB,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,aAAa;YACnB,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,UAAU;YACrB,KAAK,EAAE,CAAC;SACT;KACF;CACc,CAAC","file":"users.js","sourcesContent":["import { TableOptions } from '@nocobase/database';\n\nexport default {\n name: 'users',\n title: '{{t(\"Users\")}}',\n sortable: 'sort',\n // developerMode: true,\n // internal: true,\n createdBy: false,\n updatedBy: false,\n privilege: 'undelete',\n scopes: {\n withPassword: {\n attributes: { include: ['password'] },\n },\n },\n defaultScope: {\n attributes: { exclude: ['password'] },\n },\n fields: [\n {\n interface: 'string',\n type: 'string',\n name: 'nickname',\n uiSchema: {\n type: 'string',\n title: '{{t(\"Nickname\")}}',\n 'x-component': 'Input',\n },\n },\n {\n interface: 'email',\n type: 'string',\n name: 'email',\n unique: true,\n privilege: 'undelete',\n uiSchema: {\n type: 'string',\n title: '{{t(\"Email\")}}',\n 'x-component': 'Input',\n require: true,\n },\n },\n {\n interface: 'password',\n type: 'password',\n name: 'password',\n privilege: 'undelete',\n uiSchema: {\n type: 'string',\n title: '{{t(\"Password\")}}',\n 'x-component': 'Password',\n },\n },\n {\n interface: 'select',\n type: 'string',\n name: 'appLang',\n privilege: 'undelete',\n state: 0,\n },\n {\n interface: 'password',\n type: 'string',\n name: 'token',\n unique: true,\n hidden: true,\n privilege: 'undelete',\n state: 0,\n },\n {\n interface: 'password',\n type: 'string',\n name: 'reset_token',\n unique: true,\n hidden: true,\n privilege: 'undelete',\n state: 0,\n },\n ],\n} as TableOptions;\n"]}
|
|
1
|
+
{"version":3,"sources":["collections/users.ts"],"names":[],"mappings":";;AAEA,kBAAe;IACb,IAAI,EAAE,OAAO;IACb,KAAK,EAAE,gBAAgB;IACvB,QAAQ,EAAE,MAAM;IAGhB,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,UAAU;IACrB,MAAM,EAAE;QACN,YAAY,EAAE;YACZ,UAAU,EAAE,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE;SACtC;KACF;IACD,YAAY,EAAE;QACZ,UAAU,EAAE,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE;KACtC;IACD,MAAM,EAAE;QACN;YACE,SAAS,EAAE,QAAQ;YACnB,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,mBAAmB;gBAC1B,aAAa,EAAE,OAAO;aACvB;SACF;QACD;YACE,SAAS,EAAE,OAAO;YAClB,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,UAAU;YACrB,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,gBAAgB;gBACvB,aAAa,EAAE,OAAO;gBACtB,OAAO,EAAE,IAAI;aACd;SACF;QACD;YACE,SAAS,EAAE,UAAU;YACrB,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,UAAU;YAChB,SAAS,EAAE,UAAU;YACrB,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,mBAAmB;gBAC1B,aAAa,EAAE,UAAU;aAC1B;SACF;QACD;YACE,SAAS,EAAE,QAAQ;YACnB,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,OAAO;YACf,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,WAAW;YACrB,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,MAAM;YACjB,QAAQ,EAAE;gBACR,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,gBAAgB;gBACvB,aAAa,EAAE,eAAe;gBAC9B,mBAAmB,EAAE;oBACnB,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE;wBACV,KAAK,EAAE,OAAO;wBACd,KAAK,EAAE,MAAM;qBACd;iBACF;gBACD,aAAa,EAAE,UAAU;gBACzB,kBAAkB,EAAE,6BAA6B;aAClD;SACF;QACD;YACE,SAAS,EAAE,QAAQ;YACnB,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,SAAS;YACf,SAAS,EAAE,UAAU;YACrB,KAAK,EAAE,CAAC;SACT;QACD;YACE,SAAS,EAAE,UAAU;YACrB,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,UAAU;YACrB,KAAK,EAAE,CAAC;SACT;QACD;YACE,SAAS,EAAE,UAAU;YACrB,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,aAAa;YACnB,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,UAAU;YACrB,KAAK,EAAE,CAAC;SACT;KACF;CACc,CAAC","file":"users.js","sourcesContent":["import { TableOptions } from '@nocobase/database';\n\nexport default {\n name: 'users',\n title: '{{t(\"Users\")}}',\n sortable: 'sort',\n // developerMode: true,\n // internal: true,\n createdBy: false,\n updatedBy: false,\n privilege: 'undelete',\n scopes: {\n withPassword: {\n attributes: { include: ['password'] },\n },\n },\n defaultScope: {\n attributes: { exclude: ['password'] },\n },\n fields: [\n {\n interface: 'string',\n type: 'string',\n name: 'nickname',\n uiSchema: {\n type: 'string',\n title: '{{t(\"Nickname\")}}',\n 'x-component': 'Input',\n },\n },\n {\n interface: 'email',\n type: 'string',\n name: 'email',\n unique: true,\n privilege: 'undelete',\n uiSchema: {\n type: 'string',\n title: '{{t(\"Email\")}}',\n 'x-component': 'Input',\n require: true,\n },\n },\n {\n interface: 'password',\n type: 'password',\n name: 'password',\n privilege: 'undelete',\n uiSchema: {\n type: 'string',\n title: '{{t(\"Password\")}}',\n 'x-component': 'Password',\n },\n },\n {\n interface: 'linkTo',\n type: 'belongsToMany',\n name: 'roles',\n target: 'roles',\n foreignKey: 'user_id',\n otherKey: 'role_name',\n sourceKey: 'id',\n targetKey: 'name',\n uiSchema: {\n type: 'array',\n title: '{{t(\"Roles\")}}',\n 'x-component': 'Select.Drawer',\n 'x-component-props': {\n multiple: true,\n fieldNames: {\n label: 'title',\n value: 'name',\n },\n },\n 'x-decorator': 'FormItem',\n 'x-designable-bar': 'Select.Drawer.DesignableBar',\n },\n },\n {\n interface: 'select',\n type: 'string',\n name: 'appLang',\n privilege: 'undelete',\n state: 0,\n },\n {\n interface: 'password',\n type: 'string',\n name: 'token',\n unique: true,\n hidden: true,\n privilege: 'undelete',\n state: 0,\n },\n {\n interface: 'password',\n type: 'string',\n name: 'reset_token',\n unique: true,\n hidden: true,\n privilege: 'undelete',\n state: 0,\n },\n ],\n} as TableOptions;\n"]}
|
package/lib/server.js
CHANGED
|
@@ -115,7 +115,7 @@ exports.default = {
|
|
|
115
115
|
return __awaiter(this, void 0, void 0, function* () {
|
|
116
116
|
const database = this.app.db;
|
|
117
117
|
const resourcer = this.app.resourcer;
|
|
118
|
-
database_1.registerFields(fields);
|
|
118
|
+
(0, database_1.registerFields)(fields);
|
|
119
119
|
this.app.on('db.init', () => __awaiter(this, void 0, void 0, function* () {
|
|
120
120
|
const User = database.getModel('users');
|
|
121
121
|
yield User.create({
|
package/lib/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["server.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAwB;AACxB,iDAA2D;AAC3D,iDAAmC;AACnC,8DAAgD;AAChD,2DAA6C;AAG7C,kBAAe;IACb,IAAI,EAAE,OAAO;IACP,IAAI;;YACR,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;YAErC,yBAAc,
|
|
1
|
+
{"version":3,"sources":["server.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAwB;AACxB,iDAA2D;AAC3D,iDAAmC;AACnC,8DAAgD;AAChD,2DAA6C;AAG7C,kBAAe;IACb,IAAI,EAAE,OAAO;IACP,IAAI;;YACR,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;YAErC,IAAA,yBAAc,EAAC,MAAM,CAAC,CAAC;YAEvB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,GAAS,EAAE;gBAChC,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACxC,MAAM,IAAI,CAAC,MAAM,CAAC;oBAChB,QAAQ,EAAE,aAAa;oBACvB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,oBAAoB;oBACtD,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,UAAU;iBACnD,CAAC,CAAC;YACL,CAAC,CAAA,CAAC,CAAC;YAEH,QAAQ,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,KAAY,EAAE,EAAE;gBAC7C,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;gBAClD,IAAI,SAAS,KAAK,KAAK,EAAE;oBACvB,KAAK,CAAC,QAAQ,CAAC;wBACb,IAAI,EAAE,WAAW;wBACjB,IAAI,EAAE,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW;wBAC7D,MAAM,EAAE,OAAO;qBAChB,CAAC,CAAC;iBACJ;gBACD,IAAI,SAAS,KAAK,KAAK,EAAE;oBACvB,KAAK,CAAC,QAAQ,CAAC;wBACb,IAAI,EAAE,WAAW;wBACjB,IAAI,EAAE,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW;wBAC7D,MAAM,EAAE,OAAO;qBAChB,CAAC,CAAC;iBACJ;YACH,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,MAAM,CAAC;gBACd,SAAS,EAAE,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,aAAa,CAAC;aAClD,CAAC,CAAC;YAEH,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;gBACxD,SAAS,CAAC,qBAAqB,CAAC,SAAS,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;aACzD;YAED,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5C,CAAC;KAAA;CACe,CAAC","file":"server.js","sourcesContent":["import path from 'path';\nimport { registerFields, Table } from '@nocobase/database';\nimport * as fields from './fields';\nimport * as usersActions from './actions/users';\nimport * as middlewares from './middlewares';\nimport { PluginOptions } from '@nocobase/server';\n\nexport default {\n name: 'users',\n async load() {\n const database = this.app.db;\n const resourcer = this.app.resourcer;\n\n registerFields(fields);\n\n this.app.on('db.init', async () => {\n const User = database.getModel('users');\n await User.create({\n nickname: 'Super Admin',\n email: process.env.ADMIN_EMAIL || 'admin@nocobase.com',\n password: process.env.ADMIN_PASSWORD || 'admin123',\n });\n });\n\n database.on('afterTableInit', (table: Table) => {\n let { createdBy, updatedBy } = table.getOptions();\n if (createdBy !== false) {\n table.addField({\n type: 'createdBy',\n name: typeof createdBy === 'string' ? createdBy : 'createdBy',\n target: 'users',\n });\n }\n if (updatedBy !== false) {\n table.addField({\n type: 'updatedBy',\n name: typeof updatedBy === 'string' ? updatedBy : 'updatedBy',\n target: 'users',\n });\n }\n });\n\n database.import({\n directory: path.resolve(__dirname, 'collections'),\n });\n\n for (const [key, action] of Object.entries(usersActions)) {\n resourcer.registerActionHandler(`users:${key}`, action);\n }\n\n resourcer.use(middlewares.parseToken({}));\n },\n} as PluginOptions;\n"]}
|
package/package.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nocobase/plugin-users",
|
|
3
|
-
"version": "0.5.0-alpha.
|
|
3
|
+
"version": "0.5.0-alpha.34",
|
|
4
4
|
"main": "lib/index.js",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"dependencies": {
|
|
7
|
-
"@nocobase/server": "^0.5.0-alpha.
|
|
7
|
+
"@nocobase/server": "^0.5.0-alpha.34",
|
|
8
8
|
"crypto-random-string": "^3.3.0"
|
|
9
9
|
},
|
|
10
10
|
"devDependencies": {
|
|
11
|
-
"@nocobase/test": "^0.5.0-alpha.
|
|
11
|
+
"@nocobase/test": "^0.5.0-alpha.34"
|
|
12
12
|
},
|
|
13
|
-
"gitHead": "
|
|
13
|
+
"gitHead": "11cded6153bab633fb0b7415c33b4c3c369c2427"
|
|
14
14
|
}
|