I noticed that this problem used to be common, a year ago, but it was supposedly fixed 6 months ago, in ticket #3212:
http://trac.symfony-project.org/ticket/3212 So I tried changing this: $signinUrl = sfConfig::get('app_sf_guard_plugin_success_signin_url', $user->getReferer('@homepage')); to this: $signinUrl = $user->getAttribute('referer') ? $user->getAttribute ('referer') : $this->getRequest()->getReferer(); But now I get "Redirect Loop - Firefox has detected that the server is redirecting the request for this address in a way that will never complete." I'm using Symfony 1.2.7 and sfGuardPlugin, not sure of version, but the files themselves say: 12075 2008-10-08. On May 14, 11:23 pm, nick <lal...@teamlalala.com> wrote: > On May 14, 8:42 pm, Sid Bachtiar <sid.bacht...@gmail.com> wrote: > > > That should be the default behaviour of sfGuardPlugin > > Yes, but somehow that is not working for us. When I look in > BasesfGuardAuthActions.class.php, I see this code: > > $this->form->bind($request->getParameter('signin')); > if ($this->form->isValid()) > { > $values = $this->form->getValues(); > $this->getUser()->signin($values['user'], array_key_exists > ('remember', $values) ? $values['remember'] : false); > > // always redirect to a URL set in app.yml > // or to the referer > // or to the homepage > $signinUrl = sfConfig::get > ('app_sf_guard_plugin_success_signin_url', $user->getReferer > ('@homepage')); > > return $this->redirect($signinUrl); > } > > I can see that the call to sfConfig::get() looks either for a URL set > in the config, or it looks to a response to getReferer. > > But we don't want the referer, we want the page that the user was > trying to get to, which isn't treated as the referer on my machine. So > if I'm at the home page and I try go here: > > index.php/wiki/show/id/54 > > The home page is treated as the referer. But after the user signs in, > I want them to end up here: > > index.php/wiki/show/id/54 > > If I change this: > > return $this->redirect($signinUrl); > > to this: > > return $this->redirect($request->getUri()); > > then I end up with an infinite loop of redirection. (Or rather, if I > put getUri() in the login form that submits.) > > Ideally I could use $this->forward(), but this forward usually takes a > module and action like this: > > $this->forward('question', 'index'); > > I think it would be a lot of work for me to fetch the id and squeeze > it in there. > > I could also drop out of Symfony and do this: > > header('Location: ' . $request->getUri()); > > but that seems like a hack. > > All I want to know is how other Symfony developers handle this. I'd > like to do this the standard Symfony way. > > > But if you want to customize the signinSuccess.php, don't do it on the > > plugin directory. > > > Do it be creating > > "myproject/myapp/modules/sfGuardAuth/templates/signinSuccess.php" (do > > this manually, don't use symfony command line, e.g.: don't use symfony > > init-module). > > > This should override the plugin's signinSuccess.php > > > On Fri, May 15, 2009 at 12:23 PM, nick <lal...@teamlalala.com> wrote: > > > > If someone tries to go to a secure page, and they are not logged in, > > > they get redirected to the login page, which has this template: > > > > plugins/sfGuardPlugin/modules/sfGuardAuth/templates/signinSucess.php > > > > I'd like to remember where the user was coming from, and then send > > > them there if they log in successfully. Do I directly edit > > > signinSuccess.php, or do I override it somewhere else? > > > -- > > Blue Horn Ltd - System Developmenthttp://bluehorn.co.nz --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "symfony users" group. To post to this group, send email to symfony-users@googlegroups.com To unsubscribe from this group, send email to symfony-users+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/symfony-users?hl=en -~----------~----~----~----~------~----~------~--~---