it is either

auth.settings.logout_onlogout = ...

or

auth.logout(onlogout= ...)

As I answered in my previous response. logout always redirects so check2 
will never be printed.

On Saturday, 4 January 2014 06:32:39 UTC-6, Wonton wrote:
>
> Is "logout_onlogout=" or "onlogout=", both ways have no errors and I guess 
> the logout has been made correctly.
>
> If I put again the prints:
>
>  def logout():
>     if auth.user:
>         print 'check 1'
>         auth.logout(logout_onlogout=lambda user: 
> session.update({'auth':None}))
>         print 'check 2'
>
> check 2 doesn't appear, but I guess is because of what you said in your 
> previous post, logout redirects automatically to index, so ok.
>
> I think my logout problem is solved, thak you very much again.
>
> If you don't mind I will write again my questions about sessions (I still 
> have problems trying to understand how they work), just in case anyone has 
> any clue about this:
>
> - A session file is created associated to a user each time that user logs 
> in. Is this ok?
> - My users make a login through auth.login_bare(user, password), does this 
> create a session file then?
> - What should be the code to remove the session file of a user when he/she 
> makes a logout?
> - I've set my auth.settings.expiration to 999999999, does this affect to 
> sessions too? As far as I know it only affects to when an inactive user is 
> automatically logged out, is this correct?
> - Testing this I've seen that with no logged users in my server, if I 
> manually remove the sessions files, some of them are created again!! Why 
> and how? As I said I have no users logged in the server.
>
> On Saturday, January 4, 2014 1:20:29 PM UTC+1, Massimo Di Pierro wrote:
>>
>> Try:
>>
>>  auth.logout(onlogout=lambda user: session.update({'auth':None})) 
>>
>>
>> On Saturday, 4 January 2014 05:56:23 UTC-6, Wonton wrote:
>>>
>>> Hello Massimo,
>>>
>>> Thank you very much for your answer.
>>>
>>> I've made a copy&paste of your code, my code is now:
>>>
>>>  def logout():
>>>     if auth.user:
>>>         auth.logout(logout_onlogout=lambda user: session.auth=None)
>>>
>>> but I get a "invalid syntax error in line 154 char 61" trying to save 
>>> the file:
>>> line 154 is auth.logout(logout_onlogout=lambda user: session.auth=None)and 
>>> char 61 is '='.
>>>
>>> what am i doing wrong?
>>>
>>>
>>> On Saturday, January 4, 2014 3:38:06 AM UTC+1, Massimo Di Pierro wrote:
>>>>
>>>> No because auth.logout(next=...) redirects to he value of next. Next 
>>>> defaults to auth.settings.logout_next which is set to URL('index')
>>>>
>>>> What you want is:
>>>>
>>>> def logout():
>>>>     auth.logout(logout_onlogout=lambda user: session.auth=None)
>>>>
>>>> On Friday, 3 January 2014 19:44:43 UTC-6, Wonton wrote:
>>>>>
>>>>> Hello everyone,
>>>>>
>>>>> Recently I suffered the problem with the number of session files 
>>>>> growing very fast in my server. This worried me a lot because the server 
>>>>> is 
>>>>> a development environment with only 4 or 5 testers, so when the number of 
>>>>> users is higher I guess I will have a big problem with this issue.
>>>>> I've tried to investigate about this but I'm not expert working with 
>>>>> web2py or with servers, so I have some questions:
>>>>>
>>>>> - A session file is created associated to a user each time that user 
>>>>> logs in. Is this ok?
>>>>> - My users make a login through auth.login_bare(user, password), does 
>>>>> this create a session file then?
>>>>> - What should be the code to remove the session file of a user when 
>>>>> he/she makes a logout?
>>>>> - I've set my auth.settings.expiration to 999999999, does this affect 
>>>>> to sessions too? As far as I know it only affects to when an inactive 
>>>>> user 
>>>>> is automatically logged out, is this correct?
>>>>> - Testing this I've seen that with no logged users in my server, if I 
>>>>> manually remove the sessions files, some of them are created again!! Why 
>>>>> and how? As I said I have no users logged in the server.
>>>>>
>>>>> Regarding to the logout problem I've seen that my logout method is as 
>>>>> simple as this:
>>>>>
>>>>>  def logout():
>>>>>     if auth.user:
>>>>>         auth.log_event(auth.messages.logout_log, auth.user)
>>>>>     session.auth = None
>>>>>
>>>>> I don't really make a logout of the user so I change my method to this:
>>>>>
>>>>>  def logout():
>>>>>     if auth.user:
>>>>>         print 'check 1'
>>>>>         auth.logout()
>>>>>         print 'check 2'
>>>>>     session.auth = None
>>>>>
>>>>> But when this method is called, the output is this:
>>>>> check1
>>>>>
>>>>> check 2 is never printed so, has the user actually make a logout?
>>>>>
>>>>> I know they are a lot of questions, but any kind of help will be very 
>>>>> appreciated.
>>>>>
>>>>> Kind regards!
>>>>>
>>>>

-- 
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 web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to