@nocobase/plugin-users 0.5.0-alpha.32 → 0.5.0-alpha.33

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.
@@ -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();
@@ -1 +1 @@
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
+ {"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"]}
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,CAAC,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"]}
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.32",
3
+ "version": "0.5.0-alpha.33",
4
4
  "main": "lib/index.js",
5
5
  "license": "MIT",
6
6
  "dependencies": {
7
- "@nocobase/server": "^0.5.0-alpha.32",
7
+ "@nocobase/server": "^0.5.0-alpha.33",
8
8
  "crypto-random-string": "^3.3.0"
9
9
  },
10
10
  "devDependencies": {
11
- "@nocobase/test": "^0.5.0-alpha.32"
11
+ "@nocobase/test": "^0.5.0-alpha.33"
12
12
  },
13
- "gitHead": "7be6327458cb376e7281cff42a43a282105b65f8"
13
+ "gitHead": "3479b7ea27be4507fc48f2ac3462798b5f9bc8b9"
14
14
  }