X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=index.php;h=b9ce43c607bbca4a852d362e961e9d015fa18a21;hb=9aa39c757396e66ad959adc9fda63bfd0a869e8b;hp=5f13064dabe8b070547d147c537c243821c92f98;hpb=3ebbc1c3886a67dcc83ca4f906bdd375d599e86b;p=quix0rs-gnu-social.git diff --git a/index.php b/index.php index 5f13064dab..b9ce43c607 100644 --- 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)) {