refactor: 修改角色相关接口
This commit is contained in:
@@ -37,7 +37,7 @@ class Role
|
||||
'list_rows' => $params['size'],
|
||||
'page' => $params['page']
|
||||
]);
|
||||
} else if ('all' == request()->get('scene')) {
|
||||
} else if ('all' == request()->param('scene')) {
|
||||
$roles = $roles->select();
|
||||
}
|
||||
|
||||
@@ -55,8 +55,10 @@ class Role
|
||||
'updated_at',
|
||||
'deleted_at'
|
||||
])
|
||||
->with(['authorities'])
|
||||
->bypk($id)
|
||||
->find();
|
||||
->find()
|
||||
->hidden(['authorities.role_id']);
|
||||
if (empty($role)) {
|
||||
return error('角色不存在');
|
||||
}
|
||||
@@ -93,7 +95,7 @@ class Role
|
||||
$permissions[] = [
|
||||
'role_id' => $role->id,
|
||||
'menu_id' => $menu['menu_id'],
|
||||
'permission' => array_reduce($menu['permission'], function($v1, $v2) {
|
||||
'permission' => array_reduce($menu['permissions'], function($v1, $v2) {
|
||||
return $v1 | $v2;
|
||||
})
|
||||
];
|
||||
@@ -129,14 +131,14 @@ class Role
|
||||
$put['menu_permission'] = json_decode($put['menu_permission'], true);
|
||||
|
||||
$validate = new SysRoleValidate;
|
||||
if (!$validate->scene('update')->check($put)) {
|
||||
if (!$validate->scene('update')->check(array_merge($put, ['id' => $id]))) {
|
||||
return error($validate->getError());
|
||||
}
|
||||
|
||||
SysRoleModel::startTrans();
|
||||
try {
|
||||
$role = SysRoleModel::bypk($id)->find();
|
||||
if (empty($rule)) {
|
||||
if (empty($role)) {
|
||||
throw new InvalidOperateException('角色不存在');
|
||||
}
|
||||
|
||||
@@ -149,15 +151,13 @@ class Role
|
||||
$permissions[] = [
|
||||
'role_id' => $role->id,
|
||||
'menu_id' => $menu['menu_id'],
|
||||
'permission' => array_reduce($menu['permission'], function($v1, $v2) {
|
||||
'permission' => array_reduce($menu['permissions'], function($v1, $v2) {
|
||||
return $v1 | $v2;
|
||||
})
|
||||
];
|
||||
}
|
||||
|
||||
SysRoleAuthorityModel::destroy(function($query) use ($role) {
|
||||
$query->roleId($role->id);
|
||||
});
|
||||
SysRoleAuthorityModel::roleId($role->id)->delete();
|
||||
$authority = (new SysRoleAuthorityModel)->saveAll($permissions);
|
||||
if ($authority->isEmpty()) {
|
||||
throw new InvalidOperateException('角色权限更新失败');
|
||||
|
||||
Reference in New Issue
Block a user