From b1d17622ff6ecd023e19f53ba72cda9a294db080 Mon Sep 17 00:00:00 2001 From: vine_liutk <961510893@qq.com> Date: Fri, 14 Oct 2022 15:58:40 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E7=99=BB=E5=BD=95=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E7=9A=84=E6=9D=83=E9=99=90ID=E7=BB=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Http/Controllers/AdminUserController.php | 16 ++++++++++++++-- app/Http/Controllers/AuthController.php | 3 +-- app/Models/AdminUser.php | 4 ++++ 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/app/Http/Controllers/AdminUserController.php b/app/Http/Controllers/AdminUserController.php index 5a46958..e72a0ab 100644 --- a/app/Http/Controllers/AdminUserController.php +++ b/app/Http/Controllers/AdminUserController.php @@ -23,13 +23,19 @@ class AdminUserController extends Controller public function store(AdminUserRequest $request) { $baseIds = $request->input('base_ids', []); + if(AdminUser::where('username', $request->input('username'))->exists()){ + return $this->error('该登录名已存在'); + } try{ DB::beginTransaction(); //添加管理员信息 - $password = bcrypt($request->input('password')); - $user = AdminUser::create(array_merge(['password'=> $password], $request->input())); + $input = $request->input(); + $input['password'] = bcrypt($request->input('password')); + $user = AdminUser::create($input); //添加管理员查看基地的数据权限; $user->bases()->sync($baseIds); + //添加管理员角色关联; + $user->roles()->sync($request->input('role_id')); DB::commit(); }catch(\Throwable $th){ DB::rollBack(); @@ -46,12 +52,17 @@ class AdminUserController extends Controller public function update(AdminUser $adminUser, AdminUserUpdateRequest $request) { $baseIds = $request->input('base_ids', []); + if(AdminUser::where('username', $request->input('username'))->where('id', '<>', $adminUser->id)->exists()){ + return $this->error('该登录名已存在'); + } try{ DB::beginTransaction(); //添加管理员信息 $adminUser->update($request->input()); //添加管理员查看基地的数据权限; $adminUser->crops()->sync($baseIds); + //添加管理员角色关联; + $adminUser->roles()->sync($request->input('role_id')); DB::commit(); }catch(\Throwable $th){ DB::rollBack(); @@ -68,6 +79,7 @@ class AdminUserController extends Controller try{ DB::beginTransaction(); $adminUser->crops()->sync([]); + $adminUser->roles()->sync([]); $adminUser->delete(); DB::commit(); }catch(\Throwable $th){ diff --git a/app/Http/Controllers/AuthController.php b/app/Http/Controllers/AuthController.php index 00e201d..ccd7bf7 100644 --- a/app/Http/Controllers/AuthController.php +++ b/app/Http/Controllers/AuthController.php @@ -33,7 +33,6 @@ class AuthController extends Controller protected function attemptUser(AdminUser $user, $name = 'api') { $token = $user->createToken($name)->plainTextToken; - - return $this->json(['token' => $token, 'info' => $user, 'permissions' => $user->getCachePermissions()]); + return $this->json(['token' => $token, 'info' => $user, 'permissions' => $user->permissionIds()]); } } diff --git a/app/Models/AdminUser.php b/app/Models/AdminUser.php index 1ab675b..b0700c4 100644 --- a/app/Models/AdminUser.php +++ b/app/Models/AdminUser.php @@ -25,4 +25,8 @@ class AdminUser extends BaseAdminModel public function bases(){ return $this->belongsToMany(AgriculturalBase::class, 'admin_user_bases', 'user_id', 'base_id'); } + + public function permissionIds(){ + return $this->getCachePermissions()->pluck('id'); + } }