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
« prev ^ index » next coverage.py v7.15.4, created at 2026-08-24 12:46 +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. (added in 8.4)"""
18class Object(gws.AuthSessionManager):
19 """Base session manager."""
21 def configure(self):
22 self.lifeTime = self.cfg('lifeTime', default=gws.lib.datetimex.parse_duration(Config.lifeTime))
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