Hello, I just find this :
Mailing-list [x] expire_sessions.py respects expiration time, thanks iceberg >From the book : The file "applications/admin/cron/expire_sessions.py" actually exists and ships with the *admin* app. It checks for expired sessions and deletes them. "applications/admin/cron/crontab" runs this task hourly. I don't understand why Massimo wrote session never end up here in the thread? How safe it is if I adapt the expire_sessions.py to my app? What do I lost if I use to clear sessions files... Until now I was using them as kind of log to know what a user as do during it session. Thanks Richard On Tue, Nov 15, 2011 at 1:35 PM, Richard Vézina <[email protected] > wrote: > I see 2 issues with this method : > > 1) If user close his navigator instead of disconnecting properly before... > > 2) User use long expiration option (I will disabling the option) > > So to resolve the remaining issue 1, I would like to trigger a action when > user session is expired that will reset my flag in case user don't > disconnect (close navigator instead of clic disconnecting) before his > session has end. > > How can I get know since how long a user is logged on or when user has > login so I can delta time? > > Richard > > > > On Mon, Nov 14, 2011 at 4:05 PM, Richard Vézina < > [email protected]> wrote: > >> Here it is : >> >> Redefine auth table like this : >> auth_table = db.define_table( >> auth.settings.table_user_name, >> >> >> Append to default auth user field this field : >> >> Field('logged_on','boolean', writable=False, readable=False, >> default=None), >> >> >> Then I put those lines into db.py that contain my auth redefined table >> that's it (other models files contain the rest of my tables models) >> >> auth.settings.login_onaccept = lambda form: user_logged_on_update('True', >> auth.user and auth.user.id) >> auth.settings.logout_onlogout = lambda user: >> user_logged_on_update('False', user.id) >> >> def user_logged_on_update(flag, user_id): >> """ >> Update of "logged_on" auth_user field. True = logged on. >> """ >> if user_id != None and flag != None: >> db.auth_user[user_id] = dict(logged_on = flag) >> return >> >> I know that function don't go into model so it properly best fitting into >> module... But to allow lambda functions to call it I will have to import >> them so... Don't know what best pratice... >> >> Also I get user id at login accept by calling : auth.user and >> auth.user.id >> >> But is the form containing user id? >> >> What do you think about that? >> >> Richard >> >> >> On Mon, Nov 14, 2011 at 2:37 PM, Richard Vézina < >> [email protected]> wrote: >> >>> Hello Sathvik, >>> >>> Do you use the RBAC web2py feature? >>> >>> How you "last_in" get update as user logon? >>> >>> >>> Ok, just re-read your email you don't use the auth... >>> >>> I think personnalise the auth_user table (or any other name you give it) >>> and append a boolean "loged_on" (TRUE/FALSE) field could do it in >>> conjunction with : >>> >>> auth.settings.login_onaccept = lambda form: user_logged_on_update('True') >>> >>> >>> auth.settings.logout_onlogout - lambda user: >>> user_logged_on_update('False') >>> >>> Since we can't assign in lambda using a sub-function that update the >>> auth_user.logged_on=True or auth_user.logged_on=False will do it. >>> >>> Note : It's just pseudo code... I can report here when I get a working >>> implementation... >>> >>> :) >>> >>> Richard >>> >>> >>> On Fri, Nov 11, 2011 at 1:06 AM, Sathvik Ponangi <[email protected]>wrote: >>> >>>> I'm using a Users table & sessions to handle users. >>>> >>>> db.define_table('users', >>>>> db.Field('name', 'string'), >>>>> db.Field('password', 'password'),#If local user >>>>> db.Field('active', 'boolean', default=False), >>>>> db.Field('uid', 'string'), >>>>> db.Field('slinked', 'string', >>>>> default=""),#Redirect to a linked account >>>>> db.Field('last_in', 'datetime', >>>>> default=request.now), >>>>> db.Field('date', 'datetime', default=request.now, >>>>> writable=False) >>>>> ) >>>> >>>> >>>> Is it a good idea to switch-over to auth? If so, how do I do it? >>>> >>>> >>>> On Thu, Nov 10, 2011 at 3:44 AM, Richard Vézina < >>>> [email protected]> wrote: >>>> >>>>> Thank you! >>>>> >>>>> Richard >>>>> >>>>> >>>>> On Wed, Nov 9, 2011 at 4:23 PM, Massimo Di Pierro < >>>>> [email protected]> wrote: >>>>> >>>>>> They are usually called >>>>>> >>>>>> auth.settings.login_onaccept = lambda form: .. >>>>>> auth.settings.profile_onaccept = lambda form: .. >>>>>> auth.settings.<method>_onaccept = lambda form: .. >>>>>> >>>>>> and they all take the form. >>>>>> >>>>>> the name exception is >>>>>> >>>>>> auth.settings.logout_onlogout - lambda user: ... >>>>>> >>>>>> because there is no form to fill on logout but there is a user. >>>>>> >>>>>> On Nov 9, 1:37 pm, Richard Vézina <[email protected]> >>>>>> wrote: >>>>>> > Nice approach so I could update a custom field in auth_user and put >>>>>> it true >>>>>> > or false at login and logout? >>>>>> > >>>>>> > How I may set my flag to true? >>>>>> > >>>>>> > Is there a auth.settings.login_onlogin ?? >>>>>> > >>>>>> > Thanks >>>>>> > >>>>>> > Richard >>>>>> > >>>>>> > On Wed, Nov 9, 2011 at 2:14 PM, Massimo Di Pierro < >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > [email protected]> wrote: >>>>>> > > Sessions never end. Do you want to detect logout? >>>>>> > >>>>>> > > auth.settings.logout_onlogout = lambda user: >>>>>> do_something_with(user) >>>>>> > >>>>>> > > On Nov 9, 11:58 am, Sathvik Ponangi <[email protected]> wrote: >>>>>> > > > Is there someway that I could call a function when the user >>>>>> ends their >>>>>> > > > session? >>>>>> >>>>> >>>>> >>>> >>>> >>>> -- >>>> Sathvik Ponangi >>>> >>> >>> >> >

