From f64e6494c66a9b34d570714cdb9b3a7a84d71e8a Mon Sep 17 00:00:00 2001 From: Pig Fang Date: Mon, 18 Mar 2019 13:24:03 +0800 Subject: [PATCH] One operation to change permission --- app/Http/Controllers/AdminController.php | 30 +-- .../assets/src/components/admin/Users.vue | 88 +++---- .../tests/components/admin/Users.test.ts | 230 ++++-------------- resources/lang/en/admin.yml | 29 +-- resources/lang/en/front-end.yml | 14 +- resources/lang/zh_CN/admin.yml | 29 +-- resources/lang/zh_CN/front-end.yml | 16 +- tests/AdminControllerTest.php | 66 ++--- 8 files changed, 137 insertions(+), 365 deletions(-) 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 @@
-
- - -
+