From e83421ea5b6dee5db3b6ec7ee7d0332a75bf2bb5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E4=B8=96=E7=95=8C?= <642747453@qq.com> Date: Tue, 2 Aug 2022 18:20:06 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20#20220802=20=E7=94=A8=E6=88=B7=E6=9B=B4?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Http/Controllers/Role/RolesController.php | 2 +- app/Http/Controllers/User/UsersController.php | 46 +++++++++++++++++-- 2 files changed, 42 insertions(+), 6 deletions(-) diff --git a/app/Http/Controllers/Role/RolesController.php b/app/Http/Controllers/Role/RolesController.php index caca780..93ecc3d 100644 --- a/app/Http/Controllers/Role/RolesController.php +++ b/app/Http/Controllers/Role/RolesController.php @@ -45,7 +45,7 @@ class RolesController extends Controller $this->setAfterUpdate($role->name); $this->addLog($role->id, 'add'); - return response($this->res, $this->res['httpCode']); + return new RolesResource($role); } public function addPermissions($id, Request $request) diff --git a/app/Http/Controllers/User/UsersController.php b/app/Http/Controllers/User/UsersController.php index dd69dc0..e341bae 100644 --- a/app/Http/Controllers/User/UsersController.php +++ b/app/Http/Controllers/User/UsersController.php @@ -10,6 +10,7 @@ use Faker\Generator as Faker; use Illuminate\Support\Facades\Validator; use Illuminate\Support\Str; use App\Http\Resources\UsersResource; +use Illuminate\Validation\Rule; class UsersController extends Controller { @@ -24,7 +25,7 @@ class UsersController extends Controller public function index() { - $users = User::query()->where('id', '<>', 1)->paginate(); + $users = User::query()->where('id', '<>', 1)->with('roles:id,name,guard_name')->paginate(); return UsersResource::collection($users); } @@ -32,7 +33,7 @@ class UsersController extends Controller public function store(Request $request, Faker $faker) { $validator = Validator::make($request->all(), [ - 'name' => 'required|string|unique:users,name|max:255', + 'name' => 'required|string|max:255|unique:users,name', 'password' => 'required|string|min:8|confirmed', 'email' => 'email', 'role_name' => 'required|string|exists:roles,name' @@ -57,16 +58,51 @@ class UsersController extends Controller public function show($id) { - return new UsersResource(User::query()->find($id)); + return new UsersResource(User::query()->with('roles:id,name,guard_name')->find($id)); } - public function update() + public function update($id, Request $request) { + $validator = Validator::make($request->all(), [ + 'name' => [ + 'required', + 'string', + 'max:255', + Rule::unique('users')->ignore($id), + ], +// 'old_password' => 'sometimes|required|string|min:8', + 'password' => 'sometimes|string|min:8|confirmed', + 'email' => 'sometimes|email', + 'role_name' => 'sometimes|required|string|exists:roles,name' + ]); + if ($validator->fails()) { + $this->setValidatorFailResponse($validator->getMessageBag()->getMessages()); + return response($this->res, $this->res['httpCode']); + } + $user = User::query()->find($id); + $user->update($request->toArray()); + if ($request->has('role_name')) { + $user->syncRoles($request->role_name); + } + + return new UsersResource($user); } - public function destory() + public function destory($id) { + $user = User::query()->find($id); + try { + $user->delete(); + $this->addLog($id, 'status'); + } catch (\Exception $e) { + $this->res = [ + 'httpCode' => 500, + 'errorCode' => 500416, + 'errorMessage' => $e->getMessage(), + ]; + } + return response($this->res, $this->res['httpCode']); } }