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('角色权限更新失败');
|
||||
|
||||
@@ -3,12 +3,12 @@ declare (strict_types = 1);
|
||||
|
||||
namespace app\admin\model\v1;
|
||||
|
||||
use think\Model;
|
||||
use app\common\model\SysRoleAuthorityBaseModel;
|
||||
|
||||
/**
|
||||
* @mixin \think\Model
|
||||
*/
|
||||
class SysRoleAuthorityModel extends Model
|
||||
class SysRoleAuthorityModel extends SysRoleAuthorityBaseModel
|
||||
{
|
||||
// role_id查询
|
||||
public function scopeRoleId($query, $value)
|
||||
|
||||
@@ -16,8 +16,12 @@ class SysRoleModel extends SysRoleBaseModel
|
||||
use SoftDelete;
|
||||
// 软件删除字段
|
||||
protected $deleteTime = 'deleted_at';
|
||||
// 自动写入时间格式
|
||||
protected $autoWriteTimestamp = 'datetime';
|
||||
|
||||
// 关联权限
|
||||
public function authorities()
|
||||
{
|
||||
return $this->hasMany(SysRoleAuthorityModel::class, 'role_id', 'id');
|
||||
}
|
||||
|
||||
// 角色名称搜索
|
||||
public function searchNameAttr($query, $value, $data)
|
||||
|
||||
Reference in New Issue
Block a user