PermissionController.php 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Models;
  4. use foo\bar;
  5. use Illuminate\Http\Request;
  6. use Illuminate\Support\Facades\Log;
  7. use Illuminate\Support\Facades\Validator;
  8. // todo 返回值为 数字代码还是json还是其他格式待定
  9. class PermissionController extends Controller
  10. {
  11. /**
  12. * 分配用户可以查看的菜单的内容
  13. *
  14. * @param Request $request
  15. * @return string
  16. */
  17. public function AssignActionBars(Request $request)
  18. {
  19. $validator = Validator::make($request->all(), [
  20. "ownerType" => "required|max:32",
  21. "ownerId" => "required|integer|min:1",
  22. ]);
  23. if ($validator->fails()) {
  24. return $this->fail(REQUEST_PARAM_ERROR, $this->error[REQUEST_PARAM_ERROR], $validator->errors());
  25. }
  26. // 这里的uid从中间件那里获得
  27. $currentUid = $request->input("currentUid");
  28. $ownerId = (int)$request->input("ownerId");
  29. $ownerType = $request->input("ownerType");
  30. $barIdsStr = trim($request->input("barIds"));
  31. $barIds = $barIdsStr == "" ? [] : explode(",", $barIdsStr);
  32. // 判断当前用户是否有权分配权限
  33. $userRole = new Models\UserRole();
  34. $role = $userRole->LoadRoleByUid($currentUid);
  35. if (!$role || $role["status"] != "normal" || $role["role"] != "admin") {
  36. // return $this->fail(PERMISSION_DENIED, $this->error[PERMISSION_DENIED]);
  37. }
  38. // 有权分配
  39. $userActionBar = new Models\UserActionBar();
  40. $result = $userActionBar->AssignUserActionBar($ownerType, $ownerId, $barIds);
  41. if ($result["code"] == 0) {
  42. return $this->success($result["data"]);
  43. }
  44. return $this->fail($result["code"], $this->error[$result["code"]]);
  45. }
  46. /**
  47. * 分配用户权限,是管理员或者普通用户的权限
  48. *
  49. * @param Request $request
  50. * @return string
  51. */
  52. public function AssignUserRole(Request $request)
  53. {
  54. $uid = $request->input("uid");
  55. $roles = $request->input("roles");
  56. $currentUid = 1;
  57. $userRole = new Models\UserRole();
  58. $role = $userRole->LoadRoleByUid($currentUid);
  59. if (!$role || $role->status != "normal" || $role->role & 1 == 0) {
  60. return "permission denied";
  61. }
  62. // 有权分配
  63. $userRole->AssignRoles($uid, $role);
  64. return"success";
  65. }
  66. }