X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=index.php;h=362ab3cd37e1bef5cd189703f949063c99c6309c;hb=4855cb58daf374404bec9489769cc57431e347f4;hp=5f9a048f2c7225917dcc56bfbb1b7326067ef4f9;hpb=4405648afb3417baa1cf3808fb91cf979a76b553;p=quix0rs-gnu-social.git diff --git a/index.php b/index.php index 5f9a048f2c..362ab3cd37 100644 --- a/index.php +++ b/index.php @@ -1,7 +1,7 @@ $val) { + $_GET[$key] = $_REQUEST[$key] = $val; + } + $_GET['p'] = $_REQUEST['p'] = $_lighty_path; + } + } + $_SERVER['REDIRECT_URL'] = preg_replace("/\?.+$/", "", $_SERVER['REQUEST_URI']); + // quick check for fancy URL auto-detection support in installer. - if (isset($_SERVER['REDIRECT_URL']) && ((dirname($_SERVER['REQUEST_URI']) . '/check-fancy') === $_SERVER['REDIRECT_URL'])) { + if (isset($_SERVER['REDIRECT_URL']) && (preg_replace("/^\/$/","",(dirname($_SERVER['REQUEST_URI']))) . '/check-fancy') === $_SERVER['REDIRECT_URL']) { die("Fancy URL support detection succeeded. We suggest you enable this to get fancy (pretty) URLs."); } global $user, $action; @@ -163,11 +189,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'))) { - 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'; @@ -178,7 +229,7 @@ function main() } else { $action_obj = new $action_class(); - checkMirror($action_obj); + checkMirror($action_obj, $args); try { if ($action_obj->prepare($args)) {