log = new LogModel([ 'module' => 'permission', 'action' => $request->getMethod(), 'target_type' => 'permission', ]); } public function index() { $permissions = Permission::query()->get()->toArray(); $permissions = ArrayUtils::index($permissions, 'name'); $routes = include(resource_path('lang/zh-CN/permission.php')); foreach ($routes as $key => &$route) { $route['id'] = $permissions[$key]['id']; } $routes = FormatUtils::formatTreeData($routes, 0); return PermissionsResource::collection($routes); } public function store(Request $request) { $validator = Validator::make($request->all(), [ 'name' => 'required|string|max:191|unique:permissions,name', ]); if ($validator->fails()) { $this->setValidatorFailResponse($validator->getMessageBag()->getMessages()); return response($this->res, $this->res['httpCode']); } $permission = new Permission(); $permission->name = $request->name; $permission->save(); $this->setAfterUpdate($permission->name); $this->addLog($permission->id, 'add'); return response($this->res, $this->res['httpCode']); } public function show($id) { return new PermissionsResource(Permission::query()->find($id)); } public function update($id, Request $request) { $validator = Validator::make($request->all(), [ 'name' => ['required', 'string', 'max:191', Rule::unique('permissions')->ignore($id),] ]); if ($validator->fails()) { $this->setValidatorFailResponse($validator->getMessageBag()->getMessages()); return response($this->res, $this->res['httpCode']); } $permission = Permission::query()->find($id); $this->setBeforeUpdate($permission->name); $permission->name = $request->name; $permission->save(); $this->setAfterUpdate($permission->name); $this->addLog($id, 'name'); return new PermissionsResource($permission); } }