]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - index.php
add hooks to allow loading custom help documentation
[quix0rs-gnu-social.git] / index.php
index 5f13064dabe8b070547d147c537c243821c92f98..b9ce43c607bbca4a852d362e961e9d015fa18a21 100644 (file)
--- a/index.php
+++ b/index.php
@@ -73,7 +73,7 @@ function handleError($error)
     exit(-1);
 }
 
-function checkMirror($action_obj)
+function checkMirror($action_obj, $args)
 {
     global $config;
 
@@ -105,6 +105,19 @@ function checkMirror($action_obj)
     }
 }
 
+function isLoginAction($action)
+{
+    static $loginActions =  array('login', 'recoverpassword', 'api', 'doc', 'register');
+
+    $login = null;
+
+    if (Event::handle('LoginAction', array($action, &$login))) {
+        $login = in_array($action, $loginActions);
+    }
+
+    return $login;
+}
+
 function main()
 {
     // fake HTTP redirects using lighttpd's 404 redirects
@@ -183,8 +196,7 @@ function main()
     // parts of the site, redirect to login
 
     if (!$user && common_config('site', 'private') &&
-        !in_array($action, array('login', 'openidlogin', 'finishopenidlogin',
-                                 'recoverpassword', 'api', 'doc', 'register')) &&
+        !isLoginAction($action) &&
         !preg_match('/rss$/', $action)) {
         common_redirect(common_local_url('login'));
         return;
@@ -198,7 +210,7 @@ function main()
     } else {
         $action_obj = new $action_class();
 
-        checkMirror($action_obj);
+        checkMirror($action_obj, $args);
 
         try {
             if ($action_obj->prepare($args)) {