Try to do intelligent redirect codes

After fixing the redirect code output, there are a lot of weirdnesses
with e.g. form handling. Try to add explicit redirect codes where
needed -- principly when handling a POST.
This commit is contained in:
Evan Prodromou 2009-04-01 15:30:59 -04:00
parent 88bcef127f
commit c172cbafaa
24 changed files with 56 additions and 41 deletions

View File

@ -93,7 +93,8 @@ class BlockAction extends Action
if ($this->arg('no')) { if ($this->arg('no')) {
$cur = common_current_user(); $cur = common_current_user();
$other = Profile::staticGet('id', $this->arg('blockto')); $other = Profile::staticGet('id', $this->arg('blockto'));
common_redirect(common_local_url('showstream', array('nickname' => $other->nickname))); common_redirect(common_local_url('showstream', array('nickname' => $other->nickname)),
303);
} elseif ($this->arg('yes')) { } elseif ($this->arg('yes')) {
$this->blockProfile(); $this->blockProfile();
} elseif ($this->arg('blockto')) { } elseif ($this->arg('blockto')) {
@ -102,7 +103,6 @@ class BlockAction extends Action
} }
} }
function showContent() { function showContent() {
$this->areYouSureForm(); $this->areYouSureForm();
} }
@ -110,7 +110,7 @@ class BlockAction extends Action
function title() { function title() {
return _('Block user'); return _('Block user');
} }
function showNoticeForm() { function showNoticeForm() {
// nop // nop
} }
@ -178,10 +178,11 @@ class BlockAction extends Action
} }
if ($action) { if ($action) {
common_redirect(common_local_url($action, $args)); common_redirect(common_local_url($action, $args), 303);
} else { } else {
common_redirect(common_local_url('subscriptions', common_redirect(common_local_url('subscriptions',
array('nickname' => $cur->nickname))); array('nickname' => $cur->nickname)),
303);
} }
} }
} }

View File

@ -141,6 +141,6 @@ class DeletenoticeAction extends DeleteAction
$url = common_local_url('public'); $url = common_local_url('public');
} }
common_redirect($url); common_redirect($url, 303);
} }
} }

View File

@ -49,7 +49,7 @@ class DisfavorAction extends Action
{ {
/** /**
* Class handler. * Class handler.
* *
* @param array $args query arguments * @param array $args query arguments
* *
* @return void * @return void
@ -100,7 +100,8 @@ class DisfavorAction extends Action
$this->elementEnd('html'); $this->elementEnd('html');
} else { } else {
common_redirect(common_local_url('showfavorites', common_redirect(common_local_url('showfavorites',
array('nickname' => $user->nickname))); array('nickname' => $user->nickname)),
303);
} }
} }
} }

View File

@ -166,7 +166,6 @@ class EditgroupAction extends Action
return; return;
} }
$nickname = common_canonical_nickname($this->trimmed('nickname')); $nickname = common_canonical_nickname($this->trimmed('nickname'));
$fullname = $this->trimmed('fullname'); $fullname = $this->trimmed('fullname');
$homepage = $this->trimmed('homepage'); $homepage = $this->trimmed('homepage');
@ -221,7 +220,7 @@ class EditgroupAction extends Action
if ($this->group->nickname != $orig->nickname) { if ($this->group->nickname != $orig->nickname) {
common_redirect(common_local_url('editgroup', common_redirect(common_local_url('editgroup',
array('nickname' => $nickname)), array('nickname' => $nickname)),
307); 303);
} else { } else {
$this->showForm(_('Options saved.')); $this->showForm(_('Options saved.'));
} }

View File

@ -52,7 +52,7 @@ class FavorAction extends Action
{ {
/** /**
* Class handler. * Class handler.
* *
* @param array $args query arguments * @param array $args query arguments
* *
* @return void * @return void
@ -100,13 +100,14 @@ class FavorAction extends Action
$this->elementEnd('html'); $this->elementEnd('html');
} else { } else {
common_redirect(common_local_url('showfavorites', common_redirect(common_local_url('showfavorites',
array('nickname' => $user->nickname))); array('nickname' => $user->nickname)),
303);
} }
} }
/** /**
* Notifies a user when his notice is favorited. * Notifies a user when his notice is favorited.
* *
* @param class $notice favorited notice * @param class $notice favorited notice
* @param class $user user declaring a favorite * @param class $user user declaring a favorite
* *

View File

@ -139,7 +139,7 @@ class FinishaddopenidAction extends Action
oid_set_last($display); oid_set_last($display);
common_redirect(common_local_url('openidsettings')); common_redirect(common_local_url('openidsettings'), 303);
} }
} }

View File

@ -271,7 +271,8 @@ class FinishopenidloginAction extends Action
common_rememberme($user); common_rememberme($user);
} }
unset($_SESSION['openid_rememberme']); unset($_SESSION['openid_rememberme']);
common_redirect(common_local_url('showstream', array('nickname' => $user->nickname))); common_redirect(common_local_url('showstream', array('nickname' => $user->nickname)),
303);
} }
function connectUser() function connectUser()
@ -324,7 +325,7 @@ class FinishopenidloginAction extends Action
array('nickname' => array('nickname' =>
$nickname)); $nickname));
} }
common_redirect($url); common_redirect($url, 303);
} }
function bestNewNickname($display, $sreg) function bestNewNickname($display, $sreg)

View File

@ -230,7 +230,8 @@ class FinishremotesubscribeAction extends Action
# show up close to the top of the page # show up close to the top of the page
common_redirect(common_local_url('subscribers', array('nickname' => common_redirect(common_local_url('subscribers', array('nickname' =>
$user->nickname))); $user->nickname)),
303);
} }
function add_avatar($profile, $url) function add_avatar($profile, $url)

View File

@ -143,7 +143,8 @@ class JoingroupAction extends Action
$this->elementEnd('html'); $this->elementEnd('html');
} else { } else {
common_redirect(common_local_url('groupmembers', array('nickname' => common_redirect(common_local_url('groupmembers', array('nickname' =>
$this->group->nickname))); $this->group->nickname)),
303);
} }
} }
} }

View File

@ -147,7 +147,8 @@ class LeavegroupAction extends Action
$this->elementEnd('html'); $this->elementEnd('html');
} else { } else {
common_redirect(common_local_url('groupmembers', array('nickname' => common_redirect(common_local_url('groupmembers', array('nickname' =>
$this->group->nickname))); $this->group->nickname)),
303);
} }
} }
} }

View File

@ -138,7 +138,7 @@ class LoginAction extends Action
$nickname)); $nickname));
} }
common_redirect($url); common_redirect($url, 303);
} }
/** /**

View File

@ -46,10 +46,10 @@ require_once INSTALLDIR.'/lib/openid.php';
*/ */
class LogoutAction extends Action class LogoutAction extends Action
{ {
/** /**
* This is read only. * This is read only.
* *
* @return boolean true * @return boolean true
*/ */
function isReadOnly() function isReadOnly()
@ -59,7 +59,7 @@ class LogoutAction extends Action
/** /**
* Class handler. * Class handler.
* *
* @param array $args array of arguments * @param array $args array of arguments
* *
* @return nothing * @return nothing
@ -73,7 +73,7 @@ class LogoutAction extends Action
common_set_user(null); common_set_user(null);
common_real_login(false); // not logged in common_real_login(false); // not logged in
common_forgetme(); // don't log back in! common_forgetme(); // don't log back in!
common_redirect(common_local_url('public')); common_redirect(common_local_url('public'), 303);
} }
} }
} }

View File

@ -193,7 +193,7 @@ class NewgroupAction extends Action
$group->query('COMMIT'); $group->query('COMMIT');
common_redirect($group->homeUrl(), 307); common_redirect($group->homeUrl(), 303);
} }
function nicknameExists($nickname) function nicknameExists($nickname)

View File

@ -50,7 +50,7 @@ class NudgeAction extends Action
{ {
/** /**
* Class handler. * Class handler.
* *
* @param array $args array of arguments * @param array $args array of arguments
* *
* @return nothing * @return nothing
@ -75,7 +75,7 @@ class NudgeAction extends Action
// CSRF protection // CSRF protection
$token = $this->trimmed('token'); $token = $this->trimmed('token');
if (!$token || $token != common_session_token()) { if (!$token || $token != common_session_token()) {
$this->clientError(_('There was a problem with your session token. Try again, please.')); $this->clientError(_('There was a problem with your session token. Try again, please.'));
return; return;
@ -100,7 +100,8 @@ class NudgeAction extends Action
} else { } else {
// display a confirmation to the user // display a confirmation to the user
common_redirect(common_local_url('showstream', common_redirect(common_local_url('showstream',
array('nickname' => $other->nickname))); array('nickname' => $other->nickname)),
303);
} }
} }

View File

@ -99,7 +99,7 @@ class RemotesubscribeAction extends Action
$this->elementStart('fieldset'); $this->elementStart('fieldset');
$this->element('legend', 'Subscribe to a remote user'); $this->element('legend', 'Subscribe to a remote user');
$this->hidden('token', common_session_token()); $this->hidden('token', common_session_token());
$this->elementStart('ul', 'form_data'); $this->elementStart('ul', 'form_data');
$this->elementStart('li'); $this->elementStart('li');
$this->input('nickname', _('User nickname'), $this->nickname, $this->input('nickname', _('User nickname'), $this->nickname,
@ -407,7 +407,7 @@ class RemotesubscribeAction extends Action
# Redirect to authorization service # Redirect to authorization service
common_redirect($req->to_url()); common_redirect($req->to_url(), 303);
return; return;
} }
} }

View File

@ -488,7 +488,8 @@ class SmssettingsAction extends ConnectSettingsAction
} }
common_redirect(common_local_url('confirmaddress', common_redirect(common_local_url('confirmaddress',
array('code' => $code))); array('code' => $code)),
303);
} }
/** /**

View File

@ -85,7 +85,8 @@ class SubeditAction extends Action
} }
common_redirect(common_local_url('subscriptions', common_redirect(common_local_url('subscriptions',
array('nickname' => $cur->nickname))); array('nickname' => $cur->nickname)),
303);
} }
} }
} }

View File

@ -75,7 +75,8 @@ class SubscribeAction extends Action
$this->elementEnd('html'); $this->elementEnd('html');
} else { } else {
common_redirect(common_local_url('subscriptions', array('nickname' => common_redirect(common_local_url('subscriptions', array('nickname' =>
$user->nickname))); $user->nickname)),
303);
} }
} }
} }

View File

@ -33,7 +33,9 @@ class TagAction extends Action
} }
if ($this->tag != $taginput) { if ($this->tag != $taginput) {
common_redirect(common_local_url('tag', array('tag' => $this->tag))); common_redirect(common_local_url('tag', array('tag' => $this->tag)),
301);
return false;
} }
$this->page = ($this->arg('page')) ? ($this->arg('page')+0) : 1; $this->page = ($this->arg('page')) ? ($this->arg('page')+0) : 1;

View File

@ -221,7 +221,8 @@ class TagotherAction extends Action
$this->elementEnd('html'); $this->elementEnd('html');
} else { } else {
common_redirect(common_local_url($action, array('nickname' => common_redirect(common_local_url($action, array('nickname' =>
$user->nickname))); $user->nickname)),
303);
} }
} }

View File

@ -116,10 +116,11 @@ class UnblockAction extends Action
} }
} }
if ($action) { if ($action) {
common_redirect(common_local_url($action, $args)); common_redirect(common_local_url($action, $args), 303);
} else { } else {
common_redirect(common_local_url('subscriptions', common_redirect(common_local_url('subscriptions',
array('nickname' => $cur->nickname))); array('nickname' => $cur->nickname)),
303);
} }
} }
} }

View File

@ -77,7 +77,8 @@ class UnsubscribeAction extends Action
$this->elementEnd('html'); $this->elementEnd('html');
} else { } else {
common_redirect(common_local_url('subscriptions', array('nickname' => common_redirect(common_local_url('subscriptions', array('nickname' =>
$user->nickname))); $user->nickname)),
303);
} }
} }
} }

View File

@ -171,7 +171,7 @@ function oid_authenticate($openid_url, $returnto, $immediate=false)
} else if (Auth_OpenID::isFailure($redirect_url)) { } else if (Auth_OpenID::isFailure($redirect_url)) {
return sprintf(_('Could not redirect to server: %s'), $redirect_url->message); return sprintf(_('Could not redirect to server: %s'), $redirect_url->message);
} else { } else {
common_redirect($redirect_url); common_redirect($redirect_url, 303);
} }
} else { } else {
// Generate form markup and render it. // Generate form markup and render it.

View File

@ -78,9 +78,9 @@ class SettingsAction extends Action
common_set_returnto($this->selfUrl()); common_set_returnto($this->selfUrl());
$user = common_current_user(); $user = common_current_user();
if ($user->hasOpenID()) { if ($user->hasOpenID()) {
common_redirect(common_local_url('openidlogin')); common_redirect(common_local_url('openidlogin'), 303);
} else { } else {
common_redirect(common_local_url('login')); common_redirect(common_local_url('login'), 303);
} }
} else if ($_SERVER['REQUEST_METHOD'] == 'POST') { } else if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$this->handlePost(); $this->handlePost();