PermissionController.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: king
  5. * Date: 2018/11/1
  6. * Time: 9:52 AM
  7. */
  8. namespace app\backend\modules\role\controllers;
  9. use app\backend\modules\role\models\RoleModel;
  10. use app\common\components\BaseController;
  11. use app\common\models\user\YzPermission;
  12. class PermissionController extends BaseController
  13. {
  14. /**
  15. * @var RoleModel
  16. */
  17. private $roleModel;
  18. public function preAction()
  19. {
  20. parent::preAction();
  21. $this->roleModel = $this->roleModel();
  22. }
  23. public function index()
  24. {
  25. $permission = $this->rolePermission();
  26. return $this->successJson('ok', $permission);
  27. }
  28. /**
  29. * @return array
  30. */
  31. private function rolePermission()
  32. {
  33. $permission = [];
  34. $permissionModels = $this->rolePermissionModels();
  35. if ($permissionModels->isEmpty()) {
  36. return $permission;
  37. }
  38. foreach ($permissionModels as $key => $permissionModel) {
  39. $permission[] = $permissionModel->permission;
  40. }
  41. return $permission;
  42. }
  43. /**
  44. * @return YzPermission
  45. */
  46. private function rolePermissionModels()
  47. {
  48. return $this->roleModel->permission()->select('permission')->where('type', YzPermission::TYPE_ROLE)->get();
  49. }
  50. /**
  51. * @return RoleModel|\Illuminate\Http\JsonResponse
  52. */
  53. private function roleModel()
  54. {
  55. $role_id = $this->roleId();
  56. $roleModel = RoleModel::find($role_id);
  57. if (!$roleModel) {
  58. return $this->errorJson('角色不存在或已删除');
  59. }
  60. return $roleModel;
  61. }
  62. /**
  63. * @return \Illuminate\Http\JsonResponse|mixed
  64. */
  65. private function roleId()
  66. {
  67. $role_id = request()->role_id;
  68. if (!$role_id) {
  69. return $this->errorJson('参数错误');
  70. }
  71. return (int)$role_id;
  72. }
  73. }