Coverage for gws-app/gws/base/auth/session_manager.py: 100%
14 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"""Base session manager."""
3from typing import Optional
5import gws
6import gws.lib.datetimex
9class Config(gws.Config):
10 """Configuration for the session manager."""
12 lifeTime: gws.Duration = '20m'
13 """Session life time, counted from the last request."""
14 maxLifeTime: Optional[gws.Duration]
15 """Absolute session life time, counted from the login."""
18class Object(gws.AuthSessionManager):
19 """Base session manager.
21 Reads the session life times. Subclasses implement the storage of sessions.
22 """
24 def configure(self):
25 self.lifeTime = self.cfg('lifeTime', default=gws.lib.datetimex.parse_duration(Config.lifeTime))
27 p = self.cfg('maxLifeTime') or 0
28 if 0 < p < self.lifeTime:
29 raise gws.ConfigurationError(f'invalid maxLifeTime={p}, must not be less than lifeTime={self.lifeTime}')
30 self.maxLifeTime = p