修改删除权限时,更新缓存中的rbac规则
This commit is contained in:
parent
5f494a272e
commit
930ecac916
@ -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 }
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user