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'); + } }