Coverage for gws-app/gws/base/auth/session_manager.py: 100%

15 statements  

« prev     ^ index     » next       coverage.py v7.15.4, created at 2026-08-24 12:46 +0200

1"""Base session manager.""" 

2 

3from typing import Optional 

4 

5import gws 

6import gws.lib.datetimex 

7 

8 

9class Config(gws.Config): 

10 """Configuration for the session manager.""" 

11 

12 lifeTime: gws.Duration = '20m' 

13 """Session life time, counted from the last request.""" 

14 maxLifeTime: Optional[gws.Duration] 

15 """Absolute session life time. (added in 8.4)""" 

16 

17 

18class Object(gws.AuthSessionManager): 

19 """Base session manager.""" 

20 

21 def configure(self): 

22 self.lifeTime = self.cfg('lifeTime', default=gws.lib.datetimex.parse_duration(Config.lifeTime)) 

23 

24 p = self.cfg('maxLifeTime') or 0 

25 if 0 < p < self.lifeTime: 

26 raise gws.ConfigurationError(f'invalid maxLifeTime={p}, must not be less than lifeTime={self.lifeTime}') 

27 self.maxLifeTime = p