Permission.php 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. <?php
  2. namespace app\admin\controller\auth;
  3. use app\common\controller\AdminController;
  4. use app\http\IResponse;
  5. class Permission extends AdminController
  6. {
  7. /**
  8. * 授权规则列表
  9. *
  10. * @author 许祖兴 < zuxing.xu@lettered.cn>
  11. *
  12. * @return mixed
  13. */
  14. public function index()
  15. {
  16. $permissions = model('Permissions')::all();
  17. for ($i = 0; $i < count($permissions) ;$i++)
  18. $permissions[$i]['open'] = true;
  19. return IResponse::success($permissions);
  20. }
  21. /**
  22. * 新增
  23. *
  24. * @author 许祖兴 < zuxing.xu@lettered.cn>
  25. *
  26. * @return mixed
  27. */
  28. public function save()
  29. {
  30. $params = $this->request->param();
  31. $valid = $this->validate($params, [
  32. 'parent_id|上级ID' => 'require',
  33. 'name|用户名' => 'require',
  34. 'type|类型' => 'require',
  35. 'url|路径' => 'require',
  36. 'policy|识标' => 'require'
  37. ]);
  38. (true !== $valid) && IResponse::failure($valid);
  39. model('Permissions')->storeBy($params);
  40. return IResponse::success('新增授权规则成功');
  41. }
  42. /**
  43. *
  44. * @author 许祖兴 < zuxing.xu@lettered.cn>
  45. *
  46. * @param int $id
  47. * @return mixed
  48. */
  49. public function update($id)
  50. {
  51. // 接收数据
  52. $params = $this->request->param();
  53. $permission = model('Permissions')->findBy($id);
  54. if ($permission->updateBy($id, $params)){
  55. // casbin处理
  56. $permissions = model('PermissionsAccess')->getAll([
  57. 'v1' => $permission->url,
  58. 'v2' => $permission->policy
  59. ]);
  60. foreach ($permissions as $permission){
  61. $permission->v1 = $params['url'];
  62. $permission->v2 = $params['policy'];
  63. $permission->save();
  64. }
  65. }
  66. return IResponse::success('更新授权规则成功');
  67. }
  68. /**
  69. * 删除授权规则
  70. *
  71. * @author 许祖兴 < zuxing.xu@lettered.cn>
  72. * @date 2020/3/18 11:14
  73. *
  74. * @param int $id 权限ID
  75. * @return \think\response\Json
  76. */
  77. public function delete($id)
  78. {
  79. $result = model('Permissions')::destroy($id);
  80. return IResponse::success($result,'删除授权规则成功');
  81. }
  82. }