diff options
author | Evan Prodromou <evan@controlyourself.ca> | 2009-08-24 16:55:49 -0400 |
---|---|---|
committer | Evan Prodromou <evan@controlyourself.ca> | 2009-08-24 16:55:49 -0400 |
commit | ff87732053bae38879988ba7d002a294998ccb4e (patch) | |
tree | ccccfe7fc8976baf1f0cd4438a57bf817dc4052c /index.php | |
parent | 27aeba01dd366f15f7847267b7518fb873987ddb (diff) | |
parent | f3cdc7f272e409d391979d3e6c58dd63573530c0 (diff) |
Merge branch '0.8.x' into testing
Conflicts:
actions/twitterauthorization.php
lib/oauthclient.php
lib/twitter.php
lib/twitterapi.php
lib/twitteroauthclient.php
scripts/twitterstatusfetcher.php
Diffstat (limited to 'index.php')
-rw-r--r-- | index.php | 36 |
1 files changed, 30 insertions, 6 deletions
@@ -182,12 +182,36 @@ function main() // If the site is private, and they're not on one of the "public" // parts of the site, redirect to login - if (!$user && common_config('site', 'private') && - !in_array($action, array('login', 'openidlogin', 'finishopenidlogin', - 'recoverpassword', 'api', 'doc', 'register')) && - !preg_match('/rss$/', $action)) { - common_redirect(common_local_url('login')); - return; + if (!$user && common_config('site', 'private')) { + $public_actions = array('openidlogin', 'finishopenidlogin', + 'recoverpassword', 'api', 'doc', + 'opensearch'); + $login_action = 'openidlogin'; + if (!common_config('site', 'openidonly')) { + $public_actions[] = 'login'; + $public_actions[] = 'register'; + $login_action = 'login'; + } + if (!in_array($action, $public_actions) && + !preg_match('/rss$/', $action)) { + + // set returnto + $rargs =& common_copy_args($args); + unset($rargs['action']); + if (common_config('site', 'fancy')) { + unset($rargs['p']); + } + if (array_key_exists('submit', $rargs)) { + unset($rargs['submit']); + } + foreach (array_keys($_COOKIE) as $cookie) { + unset($rargs[$cookie]); + } + common_set_returnto(common_local_url($action, $rargs)); + + common_redirect(common_local_url($login_action)); + return; + } } $action_class = ucfirst($action).'Action'; |