On Jul 11, 2009, at 2:17 PM, mdipierro wrote:

>
> 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.

OK, I'll try to work one out.

>
> On Jul 11, 3:40 pm, Jonathan Lundell <jlund...@pobox.com> wrote:
>> On Jul 10, 2009, at 7:57 PM, Yarko Tymciurak wrote:
>>
>>
>>
>>
>>
>>> On Fri, Jul 10, 2009 at 9:41 PM, Jonathan Lundell
>>> <jlund...@pobox.com> 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
>>>> <mdipie...@cs.depaul.edu> 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 <jlund...@pobox.com> 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 <jlund...@pobox.com> 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 <jlund...@pobox.com> 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 <jlund...@pobox.com>
>>>> 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 web2py@googlegroups.com
To unsubscribe from this group, send email to 
web2py+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to