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

1"""Authentication session object.""" 

2 

3from typing import Optional 

4 

5import datetime 

6import gws.lib.datetimex 

7 

8import gws 

9 

10 

11class Object(gws.AuthSession): 

12 """Authentication session.""" 

13 

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. 

26 

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 

45 

46 def get(self, key, default=None): 

47 return self.data.get(key, default) 

48 

49 def set(self, key, val): 

50 self.data[key] = val 

51 self.isChanged = True