RoleController.php 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. <?php
  2. namespace backend\modules\admin\controllers;
  3. use backend\models\AdminRole;
  4. use backend\controllers\AdminController;
  5. use common\enums\AppEnum;
  6. use common\enums\StatusEnum;
  7. use common\models\rbac\AuthItem;
  8. use common\models\rbac\AuthRole;
  9. use Yii;
  10. class RoleController extends AdminController
  11. {
  12. public $appId = AppEnum::BACKEND;
  13. /**
  14. * @return mixed|string|void
  15. */
  16. public function actionIndex()
  17. {
  18. $request = Yii::$app->request;
  19. if ($request->isAjax) {
  20. $pid = Yii::$app->request->get('pid', 0);
  21. $cond = [
  22. ['mall_id' => 0],
  23. ['pid' => $pid],
  24. ['app_id' => AppEnum::BACKEND],
  25. ['status' => [StatusEnum::ENABLED, StatusEnum::DISABLED]]
  26. ];
  27. $list = AuthRole::getRole($cond, ['child'], true);
  28. return $this->success('操作成功', compact('list'));
  29. }
  30. return $this->render($this->action->id);
  31. }
  32. /**
  33. * 编辑
  34. * @param null $keyword
  35. * @param int $is_recycle
  36. * @return mixed|void
  37. */
  38. public function actionEdit()
  39. {
  40. $request = Yii::$app->request;
  41. if ($request->isAjax) {
  42. try {
  43. if ($request->isGet) {
  44. $params = $request->get();
  45. $params['app_id'] = $this->appId;
  46. $params['id'] = empty($params['id'])?'':$params['id'];
  47. $params['route'] = empty($params['route'])?'':$params['route'];
  48. $params['mall_id'] = 0;
  49. $data = AuthRole::getEditData($params);
  50. $where = [['app_id'=>$params['app_id']],['cate_id'=>AppEnum::PLATFORM], ['is_addon'=>0],['status' => [StatusEnum::ENABLED]]];
  51. $data['item_list1'] = AuthItem::getItemListTree($where,$params['route']);
  52. $where = [['app_id'=>$params['app_id']],['cate_id'=>AppEnum::MALL], ['is_addon'=>0],['status' => [StatusEnum::ENABLED]]];
  53. $data['item_list2'] = AuthItem::getItemListTree($where,$params['route']);
  54. $where = [['app_id'=>$params['app_id']], ['is_addon'=>1],['status' => [StatusEnum::ENABLED]]];
  55. $data['item_list3'] = AuthItem::getItemListTree($where,$params['route']);
  56. return $this->success('操作成功', $data);
  57. }
  58. } catch (\Exception $e) {
  59. return $this->error($e->getMessage(), []);
  60. }
  61. try {
  62. if ($request->isPost) {
  63. $params = Yii::$app->request->post();
  64. $res = Yii::$app->services->validate->validate($params, [
  65. [['title'], 'trim'],
  66. [['title'], 'required'],
  67. // [['title'], 'isUniquTitle'],
  68. [['id', 'item_ids', 'merchant_id', 'pid', 'is_default', 'sort', 'status', 'app_id', 'created_at', 'updated_at'], 'safe'],
  69. ]);
  70. if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  71. $params['app_id'] = $this->appId;
  72. $params['mall_id'] = 0;
  73. $res = AuthRole::setData($params);
  74. if ($res === false) return $this->error(AuthItem::getStaticError());
  75. return $this->success('操作成功');
  76. }
  77. } catch (\Exception $e) {
  78. return $this->error($e->getMessage(), []);
  79. }
  80. }
  81. }
  82. /**
  83. * 删除
  84. * @param null $keyword
  85. * @param int $is_recycle
  86. * @return mixed|void
  87. */
  88. public function actionDel()
  89. {
  90. $request = Yii::$app->request;
  91. if ($request->isAjax) {
  92. if ($request->isGet) {
  93. $id = Yii::$app->request->get('id', '');
  94. if(AuthRole::findOne(['pid'=>$id,'status'=>[StatusEnum::ENABLED,StatusEnum::DISABLED]])){
  95. return $this->error('关联了下级不允许删除');
  96. }
  97. if(AdminRole::findOne(['role_id'=>$id])) return $this->error('关联了账号不允许删除');
  98. $res = AuthRole::updateRole(['id' => $id, 'mall_id' => 0, 'status' => StatusEnum::DELETE]);
  99. if ($res === false) return $this->error(AuthItem::getStaticError());
  100. return $this->success('操作成功');
  101. }
  102. }
  103. }
  104. }