Note, the first two options below will disable the _next functionality for 
all Auth actions. The last solution disables it only for the register 
action.

Anthony

On Saturday, June 30, 2012 10:12:50 AM UTC-4, Anthony wrote:
>
> Looks like auth.navbar() automatically adds the current URL as the _next 
> parameter so whenever someone clicks on an auth.navbar() link, after 
> finishing that action, they are returned to their original page. Also, 
> auth.settings.register_next (and similar) are only used as backup defaults 
> when there is no _next parameter in the URL (i.e., _next takes precedence). 
> Perhaps we should make it easier to override these two behaviors. For now, 
> though, I think you have a few options.
>
> First, right after you define auth, do:
>
> auth = Auth(...)
> auth.next = None
>
> That should remove the _next value, which will allow the 
> auth.settings.register_next setting to take effect. Alternatively, right *
> before* you define auth, you can remove _next from request.vars:
>
> request.vars._next = None
> auth = Auth(...)
>
> You can also pass a "next" argument directly to the auth.register() 
> function (and other Auth functions):
>
> def user():
>     if request.args(0) == 'register':
>         form = auth.register(next=auth.settings.register_next)
>     else:
>         form = auth()
>     return dict(form=form)
>
> Anthony
>
> On Saturday, June 30, 2012 2:37:36 AM UTC-4, Doug Philips wrote:
>>
>> I've been customizing how registration works for my app as a few of my 
>> app's users are getting confused by the registration verification 
>> email. 
>> Ok, so I will just have my app send them to a nice hand-holding 
>> explanatory page after they've submitted their registration 
>> information. 
>>
>> According to The Book, "all" I have to do is set 
>> auth.settings.register_next to the URL I want, and I'm good to go. 
>> But I can't get that to work. 
>>
>> (all line numbers are for 
>> https://github.com/web2py/web2py/blob/master/gluon/tools.py as of the 
>> time of this message) 
>>
>> First off, it seems that the Register link I get from auth.navbar() 
>> always has a _next parameter appended to it, 
>> and that _next seems to override anything I set in my model for 
>> auth.settings.registration_next. 
>> Fine, I go into the navbar function of the Auth class in tools.py and 
>> delete the "+next" part of the registration link. (line 1242) 
>> That doesn't work, as for some reason I don't understand, the ?_next 
>> parameter in the URL is still present when the navbar is constructed 
>> from a regular page, but the ?_next parameter is (properly) missing 
>> from Register link when I first click on Login. Very odd to me. 
>>
>> After trying a few more fixes, I decide that I do not understand how 
>> next processing is done for Auth. 
>> My fix is a huge hammer. 
>> I go into the register function and change lines 1983 and 1984. 
>> Actually I delete them and replace them with: 
>> next = self.settings.register_next 
>>
>> I have no idea what the lines I deleted are trying to do, but they 
>> were keeping my expressed intent from working. 
>> Now my users are directed to the page I want after submitting their 
>> registrations, but I have no idea what else I have subtly screwed up. 
>> I don't even know if I should submit a bug report or if there is some 
>> other configuration I could do that would avoid having to make this 
>> code change. 
>> Help! 
>>
>> -Doug 
>>
>

Reply via email to