角色增加level

This commit is contained in:
zhl 2021-05-08 12:57:30 +08:00
parent 3a24f7e48c
commit e87bc38e14
2 changed files with 24 additions and 15 deletions

View File

@ -1,18 +1,19 @@
import BaseController from '../../common/base.controller'; import BaseController from '../../common/base.controller'
import { permission, role, router } from '../../decorators/router' import { permission, router } from '../../decorators/router'
import { AdminRole } from '../../models/admin/AdminRole'; import { AdminRole } from '../../models/admin/AdminRole'
import { ZError } from '../../common/ZError'; import { ZError } from '../../common/ZError'
class RoleController extends BaseController { class RoleController extends BaseController {
@permission('role:update') @permission('role:update')
@router('post /roles') @router('post /roles')
async saveRole(req) { async saveRole(req) {
const {name, permissions, key} = req.params; const { name, permissions, key, level } = req.params
const role = (await AdminRole.findOrCreate({_id: key})).doc; const role = (await AdminRole.findOrCreate({ _id: key })).doc
role.permissions = permissions; role.permissions = permissions
role.name = name; role.name = name
await role.save(); role.level = level
return role.toJson(); await role.save()
return role.toJson()
} }
@permission('role:read') @permission('role:read')
@ -31,12 +32,12 @@ class RoleController extends BaseController {
@permission('role:delete') @permission('role:delete')
@router('delete /roles/:key') @router('delete /roles/:key')
async deleteRole(req) { async deleteRole(req) {
const {key} = req.params; const { key } = req.params
if (!key) { if (!key) {
throw new ZError(10, 'record not found'); throw new ZError(10, 'record not found')
} }
const result = await AdminRole.deleteOne({_id: key}); const result = await AdminRole.deleteOne({ _id: key })
return {count: result.deletedCount} return { count: result.deletedCount }
} }
} }

View File

@ -15,6 +15,13 @@ export class AdminRoleClass extends BaseModule{
public permissions: string[]; public permissions: string[];
@prop({ type: () => [String] }) @prop({ type: () => [String] })
public inherits?: string[]; public inherits?: string[];
/**
* ,
*
* @type {number}
*/
@prop()
public level: number
@prop() @prop()
public comment?: string; public comment?: string;
@ -34,7 +41,8 @@ export class AdminRoleClass extends BaseModule{
key: this._id, key: this._id,
name: this.name, name: this.name,
permissions: this.permissions, permissions: this.permissions,
comment: this.comment comment: this.comment,
level: this.level
} }
} }