Bin
2025-12-17 1442f92732d7c5311a627a7ba3aaa0bb8ffc539f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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)