mirror of https://github.com/jumpserver/jumpserver
feat: Set the default expiration days for adding user and asset permissions
parent
f4f74909a8
commit
48239b0c63
|
@ -51,6 +51,19 @@ def date_expired_default():
|
||||||
years = 70
|
years = 70
|
||||||
return timezone.now() + timezone.timedelta(days=365 * years)
|
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):
|
def union_queryset(*args, base_queryset=None):
|
||||||
if len(args) == 1:
|
if len(args) == 1:
|
||||||
|
|
|
@ -229,6 +229,8 @@ class Config(dict):
|
||||||
|
|
||||||
'TOKEN_EXPIRATION': 3600 * 24,
|
'TOKEN_EXPIRATION': 3600 * 24,
|
||||||
'DEFAULT_EXPIRED_YEARS': 70,
|
'DEFAULT_EXPIRED_YEARS': 70,
|
||||||
|
'USER_DEFAULT_EXPIRED_DAYS': 25550,
|
||||||
|
'ASSET_PERMISSION_DEFAULT_EXPIRED_DAYS': 25550,
|
||||||
'SESSION_COOKIE_DOMAIN': None,
|
'SESSION_COOKIE_DOMAIN': None,
|
||||||
'CSRF_COOKIE_DOMAIN': None,
|
'CSRF_COOKIE_DOMAIN': None,
|
||||||
'SESSION_COOKIE_NAME_PREFIX': None,
|
'SESSION_COOKIE_NAME_PREFIX': None,
|
||||||
|
|
|
@ -117,7 +117,9 @@ EMAIL_CUSTOM_USER_CREATED_BODY = CONFIG.EMAIL_CUSTOM_USER_CREATED_BODY
|
||||||
EMAIL_CUSTOM_USER_CREATED_SIGNATURE = CONFIG.EMAIL_CUSTOM_USER_CREATED_SIGNATURE
|
EMAIL_CUSTOM_USER_CREATED_SIGNATURE = CONFIG.EMAIL_CUSTOM_USER_CREATED_SIGNATURE
|
||||||
|
|
||||||
DISPLAY_PER_PAGE = CONFIG.DISPLAY_PER_PAGE
|
DISPLAY_PER_PAGE = CONFIG.DISPLAY_PER_PAGE
|
||||||
DEFAULT_EXPIRED_YEARS = 70
|
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
|
USER_GUIDE_URL = CONFIG.USER_GUIDE_URL
|
||||||
HTTP_LISTEN_PORT = CONFIG.HTTP_LISTEN_PORT
|
HTTP_LISTEN_PORT = CONFIG.HTTP_LISTEN_PORT
|
||||||
WS_LISTEN_PORT = CONFIG.WS_LISTEN_PORT
|
WS_LISTEN_PORT = CONFIG.WS_LISTEN_PORT
|
||||||
|
|
|
@ -8,7 +8,7 @@ from django.utils.translation import gettext_lazy as _
|
||||||
from accounts.const import AliasAccount
|
from accounts.const import AliasAccount
|
||||||
from accounts.models import Account
|
from accounts.models import Account
|
||||||
from assets.models import Asset
|
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 common.utils.timezone import local_now
|
||||||
from labels.mixins import LabeledMixin
|
from labels.mixins import LabeledMixin
|
||||||
from orgs.mixins.models import JMSOrgBaseModel
|
from orgs.mixins.models import JMSOrgBaseModel
|
||||||
|
@ -77,7 +77,7 @@ class AssetPermission(LabeledMixin, JMSOrgBaseModel):
|
||||||
actions = models.IntegerField(default=ActionChoices.connect, verbose_name=_("Actions"))
|
actions = models.IntegerField(default=ActionChoices.connect, verbose_name=_("Actions"))
|
||||||
date_start = models.DateTimeField(default=timezone.now, db_index=True, verbose_name=_("Date start"))
|
date_start = models.DateTimeField(default=timezone.now, db_index=True, verbose_name=_("Date start"))
|
||||||
date_expired = models.DateTimeField(
|
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'))
|
is_active = models.BooleanField(default=True, verbose_name=_('Active'))
|
||||||
from_ticket = models.BooleanField(default=False, verbose_name=_('From ticket'))
|
from_ticket = models.BooleanField(default=False, verbose_name=_('From ticket'))
|
||||||
|
|
|
@ -64,6 +64,9 @@ class PrivateSettingSerializer(PublicSettingSerializer):
|
||||||
GPT_MODEL = serializers.CharField()
|
GPT_MODEL = serializers.CharField()
|
||||||
FILE_UPLOAD_SIZE_LIMIT_MB = serializers.IntegerField()
|
FILE_UPLOAD_SIZE_LIMIT_MB = serializers.IntegerField()
|
||||||
|
|
||||||
|
DEFAULT_EXPIRED_YEARS = serializers.IntegerField()
|
||||||
|
USER_DEFAULT_EXPIRED_DAYS = serializers.IntegerField()
|
||||||
|
ASSET_PERMISSION_DEFAULT_EXPIRED_DAYS = serializers.IntegerField()
|
||||||
|
|
||||||
class ServerInfoSerializer(serializers.Serializer):
|
class ServerInfoSerializer(serializers.Serializer):
|
||||||
CURRENT_TIME = serializers.DateTimeField()
|
CURRENT_TIME = serializers.DateTimeField()
|
||||||
|
|
|
@ -22,7 +22,7 @@ from rest_framework.exceptions import PermissionDenied
|
||||||
|
|
||||||
from common.db import fields, models as jms_models
|
from common.db import fields, models as jms_models
|
||||||
from common.utils import (
|
from common.utils import (
|
||||||
date_expired_default, get_logger, lazyproperty,
|
user_date_expired_default, get_logger, lazyproperty,
|
||||||
random_string, bulk_create_with_signal
|
random_string, bulk_create_with_signal
|
||||||
)
|
)
|
||||||
from labels.mixins import LabeledMixin
|
from labels.mixins import LabeledMixin
|
||||||
|
@ -868,7 +868,7 @@ class User(AuthMixin, TokenMixin, RoleMixin, MFAMixin, LabeledMixin, JSONFilterM
|
||||||
)
|
)
|
||||||
is_first_login = models.BooleanField(default=True, verbose_name=_('Is first login'))
|
is_first_login = models.BooleanField(default=True, verbose_name=_('Is first login'))
|
||||||
date_expired = models.DateTimeField(
|
date_expired = models.DateTimeField(
|
||||||
default=date_expired_default, blank=True, null=True,
|
default=user_date_expired_default, blank=True, null=True,
|
||||||
db_index=True, verbose_name=_('Date expired')
|
db_index=True, verbose_name=_('Date expired')
|
||||||
)
|
)
|
||||||
created_by = models.CharField(max_length=30, default='', blank=True, verbose_name=_('Created by'))
|
created_by = models.CharField(max_length=30, default='', blank=True, verbose_name=_('Created by'))
|
||||||
|
|
Loading…
Reference in New Issue