refactor: 修改角色权限新增/更新接口
This commit is contained in:
@@ -93,13 +93,16 @@ class Role
|
|||||||
if (!empty($post['menu_permission'])) {
|
if (!empty($post['menu_permission'])) {
|
||||||
$permissions = [];
|
$permissions = [];
|
||||||
foreach ($post['menu_permission'] as $menu) {
|
foreach ($post['menu_permission'] as $menu) {
|
||||||
$permissions[] = [
|
if (!isset($menu['permissions'])) {
|
||||||
'role_id' => $role->id,
|
continue;
|
||||||
'menu_id' => $menu['menu_id'],
|
}
|
||||||
'permission' => array_reduce($menu['permissions']??[], function($v1, $v2) {
|
foreach ($post['permissions'] as $permission) {
|
||||||
return $v1 | $v2;
|
$permissions[] = [
|
||||||
})
|
'role_id' => $role->id,
|
||||||
];
|
'menu_id' => $menu['menu_id'],
|
||||||
|
'permission' => $permission
|
||||||
|
];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
$authority = (new SysRoleAuthorityModel)->saveAll($permissions);
|
$authority = (new SysRoleAuthorityModel)->saveAll($permissions);
|
||||||
if ($authority->isEmpty()) {
|
if ($authority->isEmpty()) {
|
||||||
@@ -151,13 +154,16 @@ class Role
|
|||||||
if (!empty($put['menu_permission'])) {
|
if (!empty($put['menu_permission'])) {
|
||||||
$permissions = [];
|
$permissions = [];
|
||||||
foreach ($put['menu_permission'] as $menu) {
|
foreach ($put['menu_permission'] as $menu) {
|
||||||
$permissions[] = [
|
if (!isset($menu['permissions'])) {
|
||||||
'role_id' => $role->id,
|
continue;
|
||||||
'menu_id' => $menu['menu_id'],
|
}
|
||||||
'permission' => array_reduce($menu['permissions']??[], function($v1, $v2) {
|
foreach ($menu['permissions'] as $permission) {
|
||||||
return $v1 | $v2;
|
$permissions[] = [
|
||||||
})
|
'role_id' => $role->id,
|
||||||
];
|
'menu_id' => $menu['menu_id'],
|
||||||
|
'permission' => $permission
|
||||||
|
];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SysRoleAuthorityModel::roleId($role->id)->delete();
|
SysRoleAuthorityModel::roleId($role->id)->delete();
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ class CreateSysRoleAuthority extends Migrator
|
|||||||
$table = $this->table('sys_role_authority', ['id' => false, 'engine' => 'InnoDB', 'comment' => '系统角色权限表']);
|
$table = $this->table('sys_role_authority', ['id' => false, 'engine' => 'InnoDB', 'comment' => '系统角色权限表']);
|
||||||
$table->addColumn('role_id', 'integer', ['null' => false, 'comment' => '角色ID'])
|
$table->addColumn('role_id', 'integer', ['null' => false, 'comment' => '角色ID'])
|
||||||
->addColumn('menu_id', 'integer', ['null' => false, 'comment' => '菜单ID'])
|
->addColumn('menu_id', 'integer', ['null' => false, 'comment' => '菜单ID'])
|
||||||
->addColumn('permission', 'integer', ['null' => true, 'default' => null, 'comment' => '权限许可'])
|
->addColumn('permission', 'string', ['limit' => 128, 'null' => true, 'default' => null, 'comment' => '菜单能力权限标志'])
|
||||||
->create();
|
->create();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user