feat: Set the default expiration days for adding user and asset permissions

This commit is contained in:
ewall555 2025-05-12 11:41:58 +08:00 committed by 老广
parent bd0c50a3e4
commit a88ebeff15
6 changed files with 25 additions and 4 deletions

View File

@ -51,6 +51,21 @@ def date_expired_default():
years = 70
return timezone.now() + timezone.timedelta(days=365 * years)
def user_date_expired_default():
try:
days = int(settings.USER_DEFAULT_EXPIRED_DAYS)
except TypeError:
days = 25550
return timezone.now() + timezone.timedelta(days=days)
def asset_permission_date_expired_default():
try:
days = int(settings.ASSET_PERMISSION_DEFAULT_EXPIRED_DAYS)
except TypeError:
days = 25550
return timezone.now() + timezone.timedelta(days=days)
def union_queryset(*args, base_queryset=None):
if len(args) == 1:

View File

@ -229,6 +229,8 @@ class Config(dict):
'TOKEN_EXPIRATION': 3600 * 24,
'DEFAULT_EXPIRED_YEARS': 70,
'USER_DEFAULT_EXPIRED_DAYS': 25550,
'ASSET_PERMISSION_DEFAULT_EXPIRED_DAYS': 25550,
'SESSION_COOKIE_DOMAIN': None,
'CSRF_COOKIE_DOMAIN': None,
'SESSION_COOKIE_NAME_PREFIX': None,

View File

@ -118,6 +118,8 @@ EMAIL_CUSTOM_USER_CREATED_SIGNATURE = CONFIG.EMAIL_CUSTOM_USER_CREATED_SIGNATURE
DISPLAY_PER_PAGE = CONFIG.DISPLAY_PER_PAGE
DEFAULT_EXPIRED_YEARS = CONFIG.DEFAULT_EXPIRED_YEARS
USER_DEFAULT_EXPIRED_DAYS = CONFIG.USER_DEFAULT_EXPIRED_DAYS
ASSET_PERMISSION_DEFAULT_EXPIRED_DAYS = CONFIG.ASSET_PERMISSION_DEFAULT_EXPIRED_DAYS
USER_GUIDE_URL = CONFIG.USER_GUIDE_URL
HTTP_LISTEN_PORT = CONFIG.HTTP_LISTEN_PORT
WS_LISTEN_PORT = CONFIG.WS_LISTEN_PORT

View File

@ -8,7 +8,7 @@ from django.utils.translation import gettext_lazy as _
from accounts.const import AliasAccount
from accounts.models import Account
from assets.models import Asset
from common.utils import date_expired_default, lazyproperty
from common.utils import asset_permission_date_expired_default, lazyproperty
from common.utils.timezone import local_now
from labels.mixins import LabeledMixin
from orgs.mixins.models import JMSOrgBaseModel
@ -77,7 +77,7 @@ class AssetPermission(LabeledMixin, JMSOrgBaseModel):
actions = models.IntegerField(default=ActionChoices.connect, verbose_name=_("Actions"))
date_start = models.DateTimeField(default=timezone.now, db_index=True, verbose_name=_("Date start"))
date_expired = models.DateTimeField(
default=date_expired_default, db_index=True, verbose_name=_('Date expired')
default=asset_permission_date_expired_default, db_index=True, verbose_name=_('Date expired')
)
is_active = models.BooleanField(default=True, verbose_name=_('Active'))
from_ticket = models.BooleanField(default=False, verbose_name=_('From ticket'))

View File

@ -78,6 +78,8 @@ class PrivateSettingSerializer(PublicSettingSerializer):
TOOL_USER_ENABLED = serializers.BooleanField()
DEFAULT_EXPIRED_YEARS = serializers.IntegerField()
USER_DEFAULT_EXPIRED_DAYS = serializers.IntegerField()
ASSET_PERMISSION_DEFAULT_EXPIRED_DAYS = serializers.IntegerField()
PRIVACY_MODE = serializers.BooleanField()

View File

@ -13,7 +13,7 @@ from rest_framework.exceptions import PermissionDenied
from common.db import fields, models as jms_models
from common.utils import (
date_expired_default, get_logger, lazyproperty
user_date_expired_default, get_logger, lazyproperty
)
from labels.mixins import LabeledMixin
from orgs.utils import current_org
@ -99,7 +99,7 @@ class User(
comment = models.TextField(blank=True, null=True, verbose_name=_("Comment"))
is_first_login = models.BooleanField(default=True, verbose_name=_("Is first login"))
date_expired = models.DateTimeField(
default=date_expired_default,
default=user_date_expired_default,
blank=True,
null=True,
db_index=True,