Coverage for gws-app/gws/base/auth/session.py: 100%
19 statements
« prev ^ index » next coverage.py v7.16.2, created at 2026-10-05 13:35 +0200
« prev ^ index » next coverage.py v7.16.2, created at 2026-10-05 13:35 +0200
1"""Authentication session object."""
3from typing import Optional
5import datetime
6import gws.lib.datetimex
8import gws
11class Object(gws.AuthSession):
12 """Authentication session."""
14 def __init__(
15 self,
16 uid: str,
17 user: gws.User,
18 method: Optional[gws.AuthMethod],
19 data: dict = None,
20 created: datetime.datetime = None,
21 updated: datetime.datetime = None,
22 is_changed=True,
23 is_transient=False,
24 ):
25 """Create a session.
27 Args:
28 uid: Session uid.
29 user: The session user.
30 method: The method that created the session, ``None`` for the guest session.
31 data: Session data.
32 created: Creation time, defaults to now.
33 updated: Last update time, defaults to now.
34 is_changed: Whether the session has unsaved changes.
35 is_transient: Whether the session lives only for the duration of the request.
36 """
37 self.uid = uid
38 self.method = method
39 self.user = user
40 self.data = data or {}
41 self.created = created or gws.lib.datetimex.now()
42 self.updated = updated or gws.lib.datetimex.now()
43 self.isChanged = is_changed
44 self.isTransient = is_transient
46 def get(self, key, default=None):
47 return self.data.get(key, default)
49 def set(self, key, val):
50 self.data[key] = val
51 self.isChanged = True