from annoying.fields import AutoOneToOneField from django.core.validators import MinValueValidator from django.db import models from django.utils.translation import gettext_lazy as _ from organizations.models import Organization class SessionTimeoutPolicy(models.Model): """Organization-specific session timeout policy configuration""" organization = AutoOneToOneField( Organization, related_name='session_timeout_policy', primary_key=True, on_delete=models.DO_NOTHING ) max_session_age = models.IntegerField( _('Max session age (minutes)'), default=(8 * 24 * 60), # 8 days, validators=[MinValueValidator(1)], help_text='Number of minutes that a session can be active before needing to re-login', ) max_time_between_activity = models.IntegerField( _('Max time (minutes) between activity'), validators=[MinValueValidator(1)], default=(3 * 24 * 60), # 3 days help_text='Number of minutes that a session stays active without any activity', ) created_at = models.DateTimeField(_('created at'), auto_now_add=True) updated_at = models.DateTimeField(_('updated at'), auto_now=True)