diff --git a/app/Http/Controllers/AdminController.php b/app/Http/Controllers/AdminController.php index 472da937..b903da21 100644 --- a/app/Http/Controllers/AdminController.php +++ b/app/Http/Controllers/AdminController.php @@ -333,10 +333,8 @@ class AdminController extends Controller return json(trans('admin.users.operations.non-existent'), 1); } - if ($user->uid !== $currentUser->uid) { - if ($user->permission >= $currentUser->permission) { - return json(trans('admin.users.operations.no-permission'), 1); - } + if ($user->uid !== $currentUser->uid && $user->permission >= $currentUser->permission) { + return json(trans('admin.users.operations.no-permission'), 1); } if ($action == 'email') { @@ -382,25 +380,15 @@ class AdminController extends Controller $user->setScore($request->input('score')); return json(trans('admin.users.operations.score.success'), 0); - } elseif ($action == 'ban') { - $permission = $user->getPermission() == User::BANNED ? User::NORMAL : User::BANNED; - - $user->setPermission($permission); + } elseif ($action == 'permission') { + $user->permission = $this->validate($request, [ + 'permission' => 'required|in:-1,0,1' + ])['permission']; + $user->save(); return json([ - 'errno' => 0, - 'msg' => trans('admin.users.operations.ban.'.($permission == User::BANNED ? 'ban' : 'unban').'.success'), - 'permission' => $user->getPermission(), - ]); - } elseif ($action == 'admin') { - $permission = $user->getPermission() == User::ADMIN ? User::NORMAL : User::ADMIN; - - $user->setPermission($permission); - - return json([ - 'errno' => 0, - 'msg' => trans('admin.users.operations.admin.'.($permission == User::ADMIN ? 'set' : 'unset').'.success'), - 'permission' => $user->getPermission(), + 'errno' => 0, + 'msg' => trans('admin.users.operations.permission'), ]); } elseif ($action == 'delete') { $user->delete(); diff --git a/resources/assets/src/components/admin/Users.vue b/resources/assets/src/components/admin/Users.vue index 54783fa9..9005565d 100644 --- a/resources/assets/src/components/admin/Users.vue +++ b/resources/assets/src/components/admin/Users.vue @@ -41,7 +41,15 @@ >{{ props.formattedRow[props.column.field] }} - {{ props.row | humanizePermission }} + {{ props.row | humanizePermission }} + + + @@ -59,36 +67,11 @@
-
- - -
+