Files
crm-server/app/admin/controller/RoleController.php
T
2025-04-18 15:19:16 +08:00

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,'角色更新成功');
}
}