From 8f122dd71efcc54b820629bc4c39efe91b8e8726 Mon Sep 17 00:00:00 2001
From: Evan Prodromou <evan@controlyourself.ca>
Date: Tue, 4 Aug 2009 13:10:37 -0400
Subject: new action for when we redirect to login page

---
 EVENTS.txt             |  4 ++++
 lib/settingsaction.php | 10 ++++++----
 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();
-- 
cgit v1.2.3-54-g00ecf