Send me a patch of what you are proposing. If it involves only a
change in the register funciton than I am fine with it.

On Jul 11, 3:40 pm, Jonathan Lundell <[email protected]> wrote:
> On Jul 10, 2009, at 7:57 PM, Yarko Tymciurak wrote:
>
>
>
>
>
> > On Fri, Jul 10, 2009 at 9:41 PM, Jonathan Lundell  
> > <[email protected]> wrote:
> > On Jul 10, 2009, at 7:22 PM, Yarko Tymciurak wrote:
>
> >> Hold on -
>
> >> getting away from the code / implementation for a second - what do  
> >> you want to happen from the person's end:
>
> >> requires_login => login()
>
> >> login() ->  fail retry login() (which should have a link for  
> >> registration);
> >>          -> fail(limit) ->  login_failed()
>
> >>        -> succeed -> login_next()
>
> >> registration ->  succeed:   ????
>
> > Two ways to go, right?
>
> >    registration -> succeed -> autologin -> login_next()
>
> > I've never seen a site with autologin (that I respected) - simpler  
> > reason?  Confirm you got the password or whatever correct,
> > so I think practically speaking just the next will be sufficient,  
> > simple, and useful:
>
> >    registration -> succeed -> requires_login ...
>
> > The current implementation does the former. But there's another  
> > case, when there's an email verification:
>
> >    registration -> pending -> ??
>
> > If you go to registration -> succeed -> requires_login, then this is  
> > irrelevant; I (registrant) can check my email, and validate some  
> > other way, so that makes 2 of these go away without (I think) any  
> > end-user functionally adverse impact.
>
> > I was thinking maybe something like
>
> >    registration -> pending -> registration_pending_next()
>
> > too many choices now;  simpler == better, unless something  
> > compelling driving additional functionality...
>
> The counterargument from the designer's pov is that we want to make  
> the barrier to users as low as possible, consistent with security. To  
> me, this implies not asking the user to redundantly log in after  
> successfully registering (or completing the verification step).
>
> You're right, though, that there are two basic considerations: do we  
> log a user in automatically after registration/verification? Second,  
> how do we distinguish between the treatment of registration-pending  
> and registration-successful (with no verification)?
>
> BTW, for the record, the current behavior if a registration-pending  
> user logs in is to fail the login with a "Registration needs  
> verification" flash.
>
>
>
>
>
> > ...where there *could* be, at least, a way for the user to request  
> > another verification cycle.
>
> > The other possible case, from the user's POV, is
>
> >    registration -> success (possibly via verification) -> autologin ->  
> > firstlogin_next()
>
> > Again - I'd can autologin....
>
> > I can see that it's worth having these landing pages:
>
> >    requires_login_or_registration (we don't know which, and should  
> > offer both)
>
> > I think just login, with 2 default links:
>
> >    - not registered?  Register (link / button)
> >    - forgot password?  click here (email id, re-up verification link  
> > or reset password - same function in one link)
>
> >    registration_pending
>
> > don't need (?)
>
> >    first_login_after_registration (implies autologin after registration)
>
> > I'd kill autologin...
>
> >    login_failed (separate case for limit?)
>
> > I would just lockout the userid which failed (12 minutes, something  
> > to prevent robot attacks)
>
> > There could be two ways to get to registration_pending, too: just  
> > after the verification email is sent, as part of the registration  
> > sequence, or any time thereafter if the user signs in with  
> > registration pending (after all, they're in the database with a  
> > password). That's the page were another verification email could be  
> > sent.
>
> > I see no registration pending needed;   "forgot password" or  
> > "haven't confirmed registration" should be one functional link...
>
> > WRT limiting login attempts, my preference would be to have a  
> > (possibly increasing) delay between logins. You can try forever, but  
> > eventually you have to wait maybe 10 seconds for another attempt. Of  
> > course, enforcing that (or the limit) is slightly complicated by the  
> > statelessness of http; it's not as if it's a VT100 or an ATM screen.
>
> > Just timed lockout on a userid...  not too tough.
>
> > .... those are my thoughts.... on how to simplify... If you think  
> > I've gone too far, please speak up - but I don't think I did - I  
> > don't think more than this is necessary.
>
> Philosophically, I'd say that it's web2py's job to make life easier  
> for the developer, and the developer to make life easier for the user.
>
> Autologin is a reasonable design choice, because it doesn't needlessly  
> abuse the new user. Perhaps web2py should simply expose that decision  
> to the developer in a straightforward way. Yes, it's a little more  
> framework, but registration/login is highly visible, and worth getting  
> right. And the autologin question is a policy decision that should be  
> left to the developer.
>
> I could see overloading lost-password with registration-pending, but  
> the retrieve-password page would have to change to make that clear.
>
> If we make autologin optional, we have these landing pages to consider:
>
> 1. failed login (no change)
> 2. successful login of registered user (whether explicit or automatic  
> after registration/verification)
> 3. login with registration pending
> 4. first login (variation on #2)
>
> I don't have a big problem treating #3 as a failed login, as long as  
> we add an option to re-send the verification.
>
> I'm not married to #4, but from a site designer's pov, I can see the  
> desirability of having a first-login welcome page, maybe for  
> orientation, etc.
>
> And regardless, there's a bug of sorts in the current implementation  
> in that it doesn't distinguish between registration-with-autologin and  
> registration-pending: both go to the registration_next page, and  
> that's wrong. That's what Massimo's suggestion appears to address,  
> though I confess some confusion about it (where does registration_next  
> figure?):
>
> auth.settings.registration_onaccept=lambda form: auth.is_logged_in()
> or redirect(URL(r=request,f='login'))
>
>
>
> >> .... someone finish this....
>
> >> On Fri, Jul 10, 2009 at 8:14 PM, mdipierro  
> >> <[email protected]> wrote:
>
> >> what about this?
>
> >> auth.settings.registration_onaccept=lambda form: auth.is_logged_in()
> >> or redirect(URL(r=request,f='login'))
>
> >> On Jul 10, 7:51 pm, Jonathan Lundell <[email protected]> wrote:
> >> > On Jul 10, 2009, at 5:34 PM, mdipierro wrote:
>
> >> > > I do not like the idea of a paremeter dependent on another  
> >> parameter.
> >> > > What do other people think?
> >> > > I think people should propably override this variable anyway.
>
> >> > The problem is that there's no way to override the variable(s) to  
> >> get
> >> > the desired (by me, anyway, but I think it's logical) distinction
> >> > between being logged in or not.
>
> >> > That's crucial, isn't it? Either the user is logged in and ready to
> >> > go, so we go to login_next (regardless of whether we got there via
> >> > login or registration-and-auto-login), or the user is not logged in
> >> > and we don't.
>
> >> > The problem is that registration_next takes us to the same place
> >> > regardless of whether the registration resulted in a login or not.
>
> >> > Perhaps there should be three nexts: login, registration+login,
> >> > registration+pending.
>
> >> > > Massimo
>
> >> > > On Jul 10, 7:10 pm, Jonathan Lundell <[email protected]> wrote:
> >> > >> On Jul 9, 2009, at 3:05 PM, mdipierro wrote:
>
> >> > >>> You are right. Uploading your fix  to trunk. Thanks.
>
> >> > >> There's a remaining problem, I think.
>
> >> > >> The current behavior (after this patch) is to log in after
> >> > >> registration and go to index. The problem is that (and I think  
> >> that
> >> > >> Fran brought this up), after registration you really want to  
> >> go to
> >> > >> login_next if you're logged in, but to registration_next if  
> >> you're
> >> > >> not
> >> > >> (which would be the case if you're using email verification).
>
> >> > >> Making them both index fixes simple apps like welcome, because  
> >> its
> >> > >> login_next (index) doesn't really care if you're logged in.  
> >> But if
> >> > >> you've got (as I do) login_next that uses (say) auth.user.id,  
> >> you'll
> >> > >> get a ticket if you go there after a registration that doesn't  
> >> do a
> >> > >> login.
>
> >> > >> I think the behavior should be: go to login_next after a  
> >> successful
> >> > >> login *or* after a registration that performs a successful  
> >> login. Go
> >> > >> to registration_next if the registration process went OK but  
> >> for some
> >> > >> reason (like email verification) the user isn't logged in.
>
> >> > >> On a somewhat related matter: there ought to be a way to  
> >> request the
> >> > >> sending of another email verification. If the message gets  
> >> lost for
> >> > >> some reason, there's no way for the user to deal with it,  
> >> excepting
> >> > >> maybe trying to get some administrator's attention to manually  
> >> edit
> >> > >> the user table.
>
> >> > >>> Massimo
>
> >> > >>> On Jul 9, 4:09 pm, Jonathan Lundell <[email protected]> wrote:
> >> > >>>> On Jul 9, 2009, at 1:48 PM, mdipierro wrote:
>
> >> > >>>>> You should not ne already logged in after registration.  
> >> That is
> >> > >>>>> not
> >> > >>>>> default behaviour
>
> >> > >>>> That's how welcome is working. This is immediately after
> >> > >>>> registering:
>
> >> > >>>> pastedGraphic.tiff
> >> > >>>> 57KViewDownload
>
> >> > >>>>> On Jul 9, 3:11 pm, Jonathan Lundell <[email protected]>  
> >> wrote:
> >> > >>>>>> From the pov of a novice...
>
> >> > >>>>>> The default auth.settings.register_next (user/login) is  
> >> confusing
> >> > >>>>>> in
> >> > >>>>>> that after registration you're already logged in, but user/
> >> > >>>>>> login is
> >> > >>>>>> asking for a login again. f=index might be a better choice.
>
> >> > >>>>>> Yes, I know it's easy to override, but the confusion starts
> >> > >>>>>> with a
> >> > >>>>>> new
> >> > >>>>>> user playing with the welcome application.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"web2py Web Framework" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to