summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--EVENTS.txt4
-rw-r--r--lib/settingsaction.php10
2 files changed, 10 insertions, 4 deletions
diff --git a/EVENTS.txt b/EVENTS.txt
index ef4c2cffa..25d95fe06 100644
--- a/EVENTS.txt
+++ b/EVENTS.txt
@@ -223,3 +223,7 @@ EndRegistrationTry: after saving a new user (note: no profile or user object!)
StartNewQueueManager: before trying to start a new queue manager; good for plugins implementing new queue manager classes
- $qm: empty queue manager to set
+
+RedirectToLogin: event when we force a redirect to login (like when going to a settings page on a remembered login)
+- $action: action object being shown
+- $user: current user
diff --git a/lib/settingsaction.php b/lib/settingsaction.php
index 17d3a2f64..4cf9b80c4 100644
--- a/lib/settingsaction.php
+++ b/lib/settingsaction.php
@@ -77,10 +77,12 @@ class SettingsAction extends CurrentUserDesignAction
// _all_ our settings are important
common_set_returnto($this->selfUrl());
$user = common_current_user();
- if ($user->hasOpenID()) {
- common_redirect(common_local_url('openidlogin'), 303);
- } else {
- common_redirect(common_local_url('login'), 303);
+ if (Event::handle('RedirectToLogin', array($this, $user))) {
+ if ($user->hasOpenID()) {
+ common_redirect(common_local_url('openidlogin'), 303);
+ } else {
+ common_redirect(common_local_url('login'), 303);
+ }
}
} else if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$this->handlePost();