diff --git a/src/admin/controllers/role.controller.ts b/src/admin/controllers/role.controller.ts index 4e36fa6..9c433e5 100644 --- a/src/admin/controllers/role.controller.ts +++ b/src/admin/controllers/role.controller.ts @@ -1,18 +1,19 @@ -import BaseController from '../../common/base.controller'; -import { permission, role, router } from '../../decorators/router' -import { AdminRole } from '../../models/admin/AdminRole'; -import { ZError } from '../../common/ZError'; +import BaseController from '../../common/base.controller' +import { permission, router } from '../../decorators/router' +import { AdminRole } from '../../models/admin/AdminRole' +import { ZError } from '../../common/ZError' class RoleController extends BaseController { @permission('role:update') @router('post /roles') async saveRole(req) { - const {name, permissions, key} = req.params; - const role = (await AdminRole.findOrCreate({_id: key})).doc; - role.permissions = permissions; - role.name = name; - await role.save(); - return role.toJson(); + const { name, permissions, key, level } = req.params + const role = (await AdminRole.findOrCreate({ _id: key })).doc + role.permissions = permissions + role.name = name + role.level = level + await role.save() + return role.toJson() } @permission('role:read') @@ -31,12 +32,12 @@ class RoleController extends BaseController { @permission('role:delete') @router('delete /roles/:key') async deleteRole(req) { - const {key} = req.params; + const { key } = req.params if (!key) { - throw new ZError(10, 'record not found'); + throw new ZError(10, 'record not found') } - const result = await AdminRole.deleteOne({_id: key}); - return {count: result.deletedCount} + const result = await AdminRole.deleteOne({ _id: key }) + return { count: result.deletedCount } } } diff --git a/src/models/admin/AdminRole.ts b/src/models/admin/AdminRole.ts index 67fc07e..1e917c2 100644 --- a/src/models/admin/AdminRole.ts +++ b/src/models/admin/AdminRole.ts @@ -15,6 +15,13 @@ export class AdminRoleClass extends BaseModule{ public permissions: string[]; @prop({ type: () => [String] }) public inherits?: string[]; + /** + * 权限选择时, 需要的用户等级 + * 用户等级需要小于或等于该值才可显示 + * @type {number} + */ + @prop() + public level: number @prop() public comment?: string; @@ -34,7 +41,8 @@ export class AdminRoleClass extends BaseModule{ key: this._id, name: this.name, permissions: this.permissions, - comment: this.comment + comment: this.comment, + level: this.level } }