model = new \app\agent\model\auth\Permission(); } /** * 授权规则列表 * * @author 许祖兴 < zuxing.xu@lettered.cn> * * @return mixed */ public function index() { $permissions = $this->model::all(); for ($i = 0; $i < count($permissions) ;$i++) $permissions[$i]['open'] = true; return IResponse::success($permissions); } /** * 新增 * * @author 许祖兴 < zuxing.xu@lettered.cn> * * @return mixed */ public function save() { $params = $this->request->param(); $valid = $this->validate($params, [ 'parent_id|上级ID' => 'require', 'name|用户名' => 'require', 'type|类型' => 'require', 'url|路径' => 'require', 'policy|识标' => 'require' ]); (true !== $valid) && IResponse::failure($valid); $this->model->storeBy($params); return IResponse::success('新增授权规则成功'); } /** * * @author 许祖兴 < zuxing.xu@lettered.cn> * * @param int $id * @return mixed */ public function update($id) { // 接收数据 $params = $this->request->param(); $params['parent_id'] = $params['parent_id'] !== -1 ? $params['parent_id'] : 0; $permission = $this->model->findBy($id); if ($permission->updateBy($id, $params)){ $Access = new Access(); // casbin处理 $permissions = $Access->getAll([ 'v1' => $permission->url, 'v2' => $permission->policy ]); foreach ($permissions as $permission){ $permission->v1 = $params['url']; $permission->v2 = $params['policy']; $permission->save(); } } return IResponse::success('更新授权规则成功'); } /** * 删除授权规则 * * @author 许祖兴 < zuxing.xu@lettered.cn> * @date 2020/3/18 11:14 * * @param int $id 权限ID * @return \think\response\Json */ public function delete($id) { $result = $this->model::destroy($id); return IResponse::success($result,'删除授权规则成功'); } }