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