From 439ed2cc33a1c4ec37a862d640ab7736fd193325 Mon Sep 17 00:00:00 2001 From: Ashleigh Sims Date: Tue, 7 Apr 2020 20:22:41 +0100 Subject: [PATCH] Unsuspend a backend user from user update screen (#5032) --- modules/backend/controllers/Users.php | 14 ++++++++++++++ .../controllers/users/_btn_unsuspend.htm | 14 ++++++++++++++ modules/backend/lang/en/lang.php | 4 ++++ modules/backend/models/User.php | 19 +++++++++++++++++++ modules/backend/models/user/fields.yaml | 4 ++++ 5 files changed, 55 insertions(+) create mode 100644 modules/backend/controllers/users/_btn_unsuspend.htm diff --git a/modules/backend/controllers/Users.php b/modules/backend/controllers/Users.php index c464b039b..58f752cad 100644 --- a/modules/backend/controllers/Users.php +++ b/modules/backend/controllers/Users.php @@ -148,6 +148,20 @@ class Users extends Controller return Backend::redirect('backend/users/myaccount'); } + /** + * Unsuspend this user + */ + public function update_onUnsuspendUser($recordId) + { + $model = $this->formFindModelObject($recordId); + + $model->unsuspend(); + + Flash::success(Lang::get('backend::lang.account.unsuspend_success')); + + return Redirect::refresh(); + } + /** * My Settings controller */ diff --git a/modules/backend/controllers/users/_btn_unsuspend.htm b/modules/backend/controllers/users/_btn_unsuspend.htm new file mode 100644 index 000000000..dcae86c05 --- /dev/null +++ b/modules/backend/controllers/users/_btn_unsuspend.htm @@ -0,0 +1,14 @@ +isSuspended()): ?> +
+ +
+ diff --git a/modules/backend/lang/en/lang.php b/modules/backend/lang/en/lang.php index 9a3ac3207..f4e933c03 100644 --- a/modules/backend/lang/en/lang.php +++ b/modules/backend/lang/en/lang.php @@ -48,6 +48,10 @@ return [ 'impersonate_working' => 'Impersonating...', 'impersonating' => 'Impersonating :full_name', 'stop_impersonating' => 'Stop impersonating', + 'unsuspend' => 'Unsuspend', + 'unsuspend_confirm' => 'Are you sure you want to unsuspend this user?', + 'unsuspend_success' => 'User has been unsuspended.', + 'unsuspend_working' => 'Unsuspending...', 'signed_in_as' => 'Signed in as :full_name', 'sign_out' => 'Sign out', 'login' => 'Login', diff --git a/modules/backend/models/User.php b/modules/backend/models/User.php index f2b54442c..650a1378e 100644 --- a/modules/backend/models/User.php +++ b/modules/backend/models/User.php @@ -3,6 +3,7 @@ use Mail; use Event; use Backend; +use BackendAuth; use October\Rain\Auth\Models\User as UserBase; /** @@ -190,4 +191,22 @@ class User extends UserBase return $result; } + + /** + * Check if the user is suspended. + * @return bool + */ + public function isSuspended() + { + return BackendAuth::findThrottleByUserId($this->id)->checkSuspended(); + } + + /** + * Remove the suspension on this user. + * @return void + */ + public function unsuspend() + { + BackendAuth::findThrottleByUserId($this->id)->unsuspend(); + } } diff --git a/modules/backend/models/user/fields.yaml b/modules/backend/models/user/fields.yaml index 83fdcbf33..bbfbae286 100644 --- a/modules/backend/models/user/fields.yaml +++ b/modules/backend/models/user/fields.yaml @@ -71,6 +71,10 @@ secondaryTabs: label: '' context: [update] type: partial + btn_unsuspend: + label: '' + context: [update] + type: partial avatar: label: backend::lang.user.avatar type: fileupload