update:更新自定义权限

This commit is contained in:
JaguarJack 2021-02-07 17:21:34 +08:00
parent 1495a4c731
commit d8496f9e62
2 changed files with 30 additions and 3 deletions

View File

@ -50,7 +50,9 @@ class Role extends CatchController
if (!empty($permissions)) {
$this->role->attachPermissions(array_unique($permissions));
}
if (!empty($params['departments'])) {
$this->role->attachDepartments($params['departments']);
}
// 添加角色
return CatchResponse::success();
}
@ -59,6 +61,7 @@ class Role extends CatchController
{
$role = $this->role->findBy($id);
$role->permissions = $role->getPermissions();
$role->departments = $role->getDepartments();
return CatchResponse::success($role);
}
@ -101,6 +104,28 @@ class Role extends CatchController
$role->attachPermissions(array_unique($attachIds));
}
// 更新department
$hasDepartmentIds = $role->getDepartments()->column('id');
$departmentIds = $request->param('departments',[]);
// 已存在部门 IDS
$existedDepartmentIds = [];
foreach ($hasDepartmentIds as $hasDepartmentId) {
if (in_array($hasDepartmentId, $departmentIds)) {
$existedDepartmentIds[] = $hasDepartmentId;
}
}
$attachDepartmentIds = array_diff($departmentIds, $existedDepartmentIds);
$detachDepartmentIds = array_diff($hasDepartmentIds, $existedDepartmentIds);
if (!empty($detachDepartmentIds)) {
$role->detachDepartments($detachDepartmentIds);
}
if (!empty($attachDepartmentIds)) {
$role->attachDepartments(array_unique($attachDepartmentIds));
}
return CatchResponse::success();
}
@ -122,6 +147,8 @@ class Role extends CatchController
$role = $this->role->findBy($id);
// 删除权限
$role->detachPermissions();
// 删除部门关联
$role->detachDepartments();
// 删除用户关联
$role->users()->detach();
// 删除
@ -147,7 +174,7 @@ class Role extends CatchController
}
}
$permissions = Tree::done(Permissions::whereIn('id', $parentRoleHasPermissionIds)->select()->toArray());
$permissions = Permissions::whereIn('id', $parentRoleHasPermissionIds)->select()->toTree();
$permissionIds = [];
if ($request->param('role_id')) {

View File

@ -19,7 +19,7 @@
"require": {
"php": ">=7.1.0",
"topthink/framework": "6.0.6",
"topthink/think-orm": "2.0.33",
"topthink/think-orm": "2.0.36",
"topthink/think-migration": "^3.0",
"thans/tp-jwt-auth": "1.1",
"overtrue/wechat": "^4.2",