Shouldn't we always return 403 is ajax?

On Friday, 9 October 2015 12:22:52 UTC-5, DenesL wrote:
>
> Changing
> if current.request.ajax:
>     raise HTTP(401, self.messages.ajax_failed_authentication)
>
> to
> if current.request.ajax and current.request.cid:
>     raise HTTP(401, self.messages.ajax_failed_authentication)
>
> in gluon/tools/Auth class/requires function (line 3749 in release 2.12.03)
> seems to solve the problem since it verifies it is a component before 
> raising a 401, else it follows the "otherwise" or 
> auth.settings.on_failed_authorization redirect (which I am using).
>
> Denes.
>
>
>
>
> On Tuesday, October 6, 2015 at 1:50:04 PM UTC-4, DenesL wrote:
>>
>> Hi
>>
>> an expired session becomes empty but this does not seem to always trigger 
>> auth.requires_login redirection to the login URL neither when set via 
>> auth.requires_login(loginURL), aka the otherwise parameter, nor by 
>> auth.settings.on_failed_authorization = loginURL *when XMLHttpRequest 
>> (XHR) is used.*
>> Actually the otherwise parameter is superfluous in this case.
>>
>> Status 401 UNAUTHORIZED with response
>> <div class="not-authorized alert alert-block"><h4>NOT 
>> AUTHORIZED</h4>Please <a href="">login</a> to view this content.</div>
>> but that is never seen since I am using www.idangero.us/framework7 , 
>> which loads all links with Ajax by default, does not refresh the page.
>>
>> So this probably happens because the call is being treated as a component 
>> by web2py.
>> I can get around this by defining the links as external in framework7 but 
>> I wonder if it would not be better to have a way to tell web2py to redirect 
>> when the session has expired even when using Ajax calls.
>>
>> Thanks,
>> Denes
>>
>>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to