On Oct 17, 2011, at 6:21 AM, Massimo Di Pierro wrote:

> @auth.requires(condition)
> 
> First checks that user is logged in then it check whether the
> condition is true or False.
> This behavior has changed but it was undocumented.
> 
> I guess next question is how do you do what you need to do. I thought
> about it and I pushed this to trunk:
> 
> @auth.requires(request.client=='127.0.0.1' or auth.user,login=False)
> 
> 
> The login=False skips the pre-check on user login.

Could that be changed perhaps to require_login=False? It's a little less 
ambiguous, since login=False could be read to require that the user *not* be 
logged in.


> 
> Massimo
> 
> 
> On Oct 17, 1:19 am, "Ray (a.k.a. Iceberg)" <iceb...@21cn.com> wrote:
>> Thanks for the workaround, I might take that. But I will still argue
>> that:
>> 
>> 1. Does authentication have to mean logged-in, or can it be something
>> else, such as "accessing from localhost", "accessing via ajax", etc.?
>> 
>> 2. if @auth already means authentication, why there is still an
>> auth.requires_login() which implemented as
>> auth.requires(auth.is_logged_in())? Shouldn't this implementation
>> imply that auth.requires() does not check is_logged_in()? All in all,
>> what is auth.requires()'s semantics?
>> 
>> Regards,
>> Ray
>> 
>> On Oct 17, 1:41 pm, Bruno Rocha <rochacbr...@gmail.com> wrote:
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>>> I think it should be, because @auth means authentication, so needs
>>> authenticated user.
>> 
>>> In your case I should do differently.
>> 
>>> def secret():
>>>    if not request.client == '127.0.0.1' or not auth.user:
>>>        redirect(URL('default', 'user', args='login'))
>>>    return {"": "some cool stuff"}


Reply via email to