69 lines
1.9 KiB
PHP
69 lines
1.9 KiB
PHP
<?php
|
|
|
|
namespace app\admin\controller;
|
|
|
|
use app\admin\model\Permission;
|
|
use app\admin\model\Role;
|
|
use app\util\Util;
|
|
use Illuminate\Support\Facades\Validator;
|
|
use support\Request;
|
|
|
|
class RoleController
|
|
{
|
|
public function all(Request $request,)
|
|
{
|
|
$admin = Role::with('permissions')->where([['status',1]])->get();
|
|
return Util::success($admin);
|
|
}
|
|
|
|
/*
|
|
* 角色列表
|
|
*/
|
|
public function list(Request $request,)
|
|
{
|
|
$page = $request->input('page', 1);
|
|
$perPage = $request->input('per_page', 10);
|
|
$admin = Role::with('permissions')->paginate($perPage, ['*'], 'page', $page);
|
|
return Util::success($admin);
|
|
}
|
|
|
|
// 获取角色权限列表
|
|
public function permissions(Request $request, $id)
|
|
{
|
|
$role = Role::with('permissions')->findOrFail($id);
|
|
$allPermissions = Permission::all();
|
|
|
|
return json([
|
|
'code' => 0,
|
|
'data' => [
|
|
'role' => $role,
|
|
'all_permissions' => $allPermissions,
|
|
'assigned_permissions' => $role->permissions->pluck('id')->toArray()
|
|
]
|
|
]);
|
|
}
|
|
|
|
// 更新角色权限
|
|
public function updatePermissions(Request $request, $id)
|
|
{
|
|
// 验证规则
|
|
$rules = [
|
|
'permissions' => 'required|array',
|
|
'permissions.*' => 'exists:permissions,id'
|
|
];
|
|
|
|
// 自定义错误消息(可选)
|
|
$messages = [
|
|
'permissions.required' => '角色不能为空',
|
|
'permissions.exists' => '角色id不存在',
|
|
];
|
|
|
|
// 执行验证
|
|
$validator = Validator::make($request->all(), $rules, $messages);
|
|
|
|
$role = Role::with('permissions')->findOrFail($id);
|
|
$role->permissions()->sync($request->input('permissions'));
|
|
|
|
return Util::success($role,'角色更新成功');
|
|
}
|
|
} |