#554: "Last Login" does not update
-----------------------+----------------------------
Reporter: rjollos | Owner: rjollos
Type: defect | Status: accepted
Priority: critical | Milestone: Release 6
Component: plugins | Version: 0.5.3
Resolution: | Keywords: AccountManager
-----------------------+----------------------------
Comment (by rjollos):
Replying to [comment:10 astaric]:
> Can you try opening a report (or doing anything that saves some data to
a session). This should also update your Last Login time (if it is older
than a day).
>
> As far as I can tell from the trac code, it only updates last_visit time
when session data is modified (Session.save in trac.web.session). It is
updated when there is no record for the session in the database
(Session._new == True) and when session data is being modified and session
is older than a day:
> {{{
> if session_saved and now - self.last_visit > UPDATE_INTERVAL:
> }}}
> If user does nothing that changes session data, last_visit will not be
updated.
If I force the save of the session data, such as executing a //Custom
Query// like you suggested, the `last_visit` does update. So it seems the
problem may be isolated to login.
From the testing that I did with vanillia Trac, I observed that the //Last
Login// time updates when the user authenticates. It makes sense that
`last_login` should update when the user authenticates, right? You may
want to do some testing with Trac then, just to confirm what I was seeing,
that `last_visit` is updated when the user authenticates in vanilla Trac.
In the cases of testing with both Trac and Bloodhound, I've set the
`last_login` value to `0` by editing the database before the test (though
it wasn't necessary in Bloodhound because it always stays `0` unless you
do something to force the save of the session data). That was just to make
the situation reproducible and not have to worry about the
`UPDATE_INTERVAL`.
Yesterday I had instances of Trac and Bloodhound running side-by-side with
a debugger, and I was stepping through the code and trying to figure out
how the execution pathways differ. There were some significant differences
in the pathway through `Session.save()` such as `session_saved` not being
set to `True`, but mostly I didn't document what I was seeing well enough
before my VM froze and I decided to call it a night. After I finish
another task I could return to this debugging session.
--
Ticket URL: <https://issues.apache.org/bloodhound/ticket/554#comment:11>
Apache Bloodhound <https://issues.apache.org/bloodhound/>
The Apache Bloodhound issue tracker