修改删除权限时,更新缓存中的rbac规则

This commit is contained in:
zhl 2021-05-10 15:16:32 +08:00
parent 5f494a272e
commit 930ecac916

View File

@ -2,6 +2,7 @@ import BaseController from '../../common/base.controller'
import { permission, router } from '../../decorators/router'
import { AdminRole } from '../../models/admin/AdminRole'
import { ZError } from '../../common/ZError'
import { FastifyInstance } from 'fastify'
class RoleController extends BaseController {
@permission('role:update')
@ -13,6 +14,17 @@ class RoleController extends BaseController {
role.name = name
role.level = level
await role.save()
let rbac = ((this as unknown) as FastifyInstance).rbac
rbac.remove(role.id)
for (let data of permissions) {
if (data === '*') {
rbac.add(role.id, data, '*')
} else {
const opers = data.split(':')
rbac.add(role.id, opers[0], opers[1])
}
}
rbac.add(role.id, 'self', '*')
return role.toJson()
}
@ -41,6 +53,8 @@ class RoleController extends BaseController {
throw new ZError(10, 'record not found')
}
const result = await AdminRole.deleteOne({ _id: key })
let rbac = ((this as unknown) as FastifyInstance).rbac
rbac.remove(key)
return { count: result.deletedCount }
}