Development

Changeset 10913 for plugins/sfGuardPlugin

You must first sign up to be able to contribute.

Show
Ignore:
Timestamp:
08/17/08 11:41:58 (3 months ago)
Author:
fabien
Message:

[sfGuardPlugin] [1.1, 1.2] fixed redirects after login

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • plugins/sfGuardPlugin/branches/1.0/modules/sfGuardAuth/lib/BasesfGuardAuthActions.class.php

    r8371 r10913  
    2323    if ($this->getRequest()->getMethod() == sfRequest::POST) 
    2424    { 
    25       $referer = $user->getAttribute('referer', $this->getRequest()->getReferer()); 
     25      // always redirect to a URL set in app.yml 
     26      // or to the referer 
     27      // or to the homepage 
     28      $referer = $user->getAttribute('referer', '@homepage'); 
    2629      $user->getAttributeHolder()->remove('referer'); 
     30      $signinUrl = sfConfig::get('app_sf_guard_plugin_success_signin_url', $referer); 
    2731 
    28       $signin_url = sfConfig::get('app_sf_guard_plugin_success_signin_url', $referer); 
    29  
    30       $this->redirect('' != $signin_url ? $signin_url : '@homepage'); 
     32      return $this->redirect('' != $signinUrl ? $signinUrl : '@homepage'); 
    3133    } 
    3234    elseif ($user->isAuthenticated()) 
     
    4446      } 
    4547 
    46       if (!$user->hasAttribute('referer')) 
    47       { 
    48         $user->setAttribute('referer', $this->getRequest()->getUri()); 
    49       } 
     48      // if we have been forwarded, then the referer is the current URL 
     49      // if not, this is the referer of the current request 
     50      $user->setAttribute('referer', $this->getContext()->getActionStack()->getSize() > 1 ? $this->getRequest()->getUri() : $this->getRequest()->getReferer()); 
    5051 
    5152      if ($this->getModuleName() != ($module = sfConfig::get('sf_login_module'))) 
     
    6263    $this->getUser()->signOut(); 
    6364 
    64     $signout_url = sfConfig::get('app_sf_guard_plugin_success_signout_url', $this->getRequest()->getReferer()); 
     65    $signoutUrl = sfConfig::get('app_sf_guard_plugin_success_signout_url', $this->getRequest()->getReferer()); 
    6566 
    66     $this->redirect('' != $signout_url ? $signout_url : '@homepage'); 
     67    $this->redirect('' != $signoutUrl ? $signoutUrl : '@homepage'); 
    6768  } 
    6869 
  • plugins/sfGuardPlugin/branches/1.0/package.xml

    r10882 r10913  
    2929  <active>no</active> 
    3030 </developer> 
    31  <date>2008-08-14</date> 
     31 <date>2008-08-17</date> 
    3232 <version> 
    33    <release>1.1.16</release> 
     33   <release>1.1.17</release> 
    3434   <api>1.1.0</api> 
    3535 </version> 
     
    167167    <release> 
    168168      <version> 
     169        <release>1.1.17</release> 
     170        <api>1.1.0</api> 
     171      </version> 
     172      <stability> 
     173       <release>stable</release> 
     174       <api>stable</api> 
     175      </stability> 
     176      <license uri="http://www.symfony-project.com/license">MIT license</license> 
     177      <date>2008-08-17</date> 
     178      <license>MIT</license> 
     179      <notes> 
     180        * fabien: fixed redirects after login 
     181      </notes> 
     182    </release> 
     183    <release> 
     184      <version> 
    169185        <release>1.1.16</release> 
    170186        <api>1.1.0</api> 
  • plugins/sfGuardPlugin/branches/1.1/lib/user/sfGuardSecurityUser.class.php

    r10134 r10913  
    3838    $this->getAttributeHolder()->remove('referer'); 
    3939 
    40     return $referer
     40    return $referer ? $referer : $default
    4141  } 
    4242 
    4343  public function setReferer($referer) 
    4444  { 
    45     if (!$this->hasAttribute('referer')) 
    46     { 
    47       $this->setAttribute('referer', $referer); 
    48     } 
     45    $this->setAttribute('referer', $referer); 
    4946  } 
    5047 
  • plugins/sfGuardPlugin/branches/1.1/modules/sfGuardAuth/lib/BasesfGuardAuthActions.class.php

    r10128 r10913  
    3737        $this->getUser()->signin($values['user'], array_key_exists('remember', $values) ? $values['remember'] : false); 
    3838 
    39         $signinUrl = sfConfig::get('app_sf_guard_plugin_success_signin_url', $user->getReferer($request->getReferer())); 
     39        // always redirect to a URL set in app.yml 
     40        // or to the referer 
     41        // or to the homepage 
     42        $signinUrl = sfConfig::get('app_sf_guard_plugin_success_signin_url', $user->getReferer('@homepage')); 
    4043 
    41         return $this->redirect('' != $signinUrl ? $signinUrl : '@homepage'); 
     44        return $this->redirect($signinUrl); 
    4245      } 
    4346    } 
     
    5255      } 
    5356 
    54       $user->setReferer($request->getReferer()); 
     57      // if we have been forwarded, then the referer is the current URL 
     58      // if not, this is the referer of the current request 
     59      $user->setReferer($this->getContext()->getActionStack()->getSize() > 1 ? $request->getUri() : $request->getReferer()); 
    5560 
    5661      $module = sfConfig::get('sf_login_module'); 
     
    6873    $this->getUser()->signOut(); 
    6974 
    70     $signout_url = sfConfig::get('app_sf_guard_plugin_success_signout_url', $request->getReferer()); 
     75    $signoutUrl = sfConfig::get('app_sf_guard_plugin_success_signout_url', $request->getReferer()); 
    7176 
    72     $this->redirect('' != $signout_url ? $signout_url : '@homepage'); 
     77    $this->redirect('' != $signoutUrl ? $signoutUrl : '@homepage'); 
    7378  } 
    7479 
  • plugins/sfGuardPlugin/branches/1.1/package.xml

    r10883 r10913  
    2727  <user>fzaninotto</user> 
    2828  <email>francois.zaninotto@symfony-project.com</email> 
    29   <active>yes</active> 
     29  <active>no</active> 
    3030 </developer> 
    31  <date>2008-08-14</date> 
     31 <date>2008-08-17</date> 
    3232 <version> 
    33    <release>2.2.0</release> 
     33   <release>2.2.1</release> 
    3434   <api>1.1.0</api> 
    3535 </version> 
     
    175175 
    176176  <changelog> 
     177    <release> 
     178      <version> 
     179        <release>2.2.1</release> 
     180        <api>1.1.0</api> 
     181      </version> 
     182      <stability> 
     183       <release>stable</release> 
     184       <api>stable</api> 
     185      </stability> 
     186      <license uri="http://www.symfony-project.com/license">MIT license</license> 
     187      <date>2008-08-17</date> 
     188      <license>MIT</license> 
     189      <notes> 
     190        * fabien: fixed redirects after login 
     191      </notes> 
     192    </release> 
    177193    <release> 
    178194      <version>