mirror of
https://github.com/jumpserver/jumpserver.git
synced 2025-09-07 02:10:23 +00:00
feat: 授权规则分类管理
This commit is contained in:
@@ -11,7 +11,7 @@ from orgs.mixins.models import OrgModelMixin
|
||||
from common.db.models import UnionQuerySet
|
||||
from common.utils import date_expired_default, lazyproperty
|
||||
from orgs.mixins.models import OrgManager
|
||||
|
||||
from ..const import AuthorizationRules
|
||||
|
||||
__all__ = [
|
||||
'BasePermission', 'BasePermissionQuerySet'
|
||||
@@ -31,11 +31,7 @@ class BasePermissionQuerySet(models.QuerySet):
|
||||
|
||||
def invalid(self):
|
||||
now = timezone.now()
|
||||
q = (
|
||||
Q(is_active=False) |
|
||||
Q(date_start__gt=now) |
|
||||
Q(date_expired__lt=now)
|
||||
)
|
||||
q = (Q(is_active=False) | Q(date_start__gt=now) | Q(date_expired__lt=now))
|
||||
return self.filter(q)
|
||||
|
||||
|
||||
@@ -48,13 +44,17 @@ class BasePermission(OrgModelMixin):
|
||||
id = models.UUIDField(default=uuid.uuid4, primary_key=True)
|
||||
name = models.CharField(max_length=128, verbose_name=_('Name'))
|
||||
users = models.ManyToManyField('users.User', blank=True, verbose_name=_("User"), related_name='%(class)ss')
|
||||
user_groups = models.ManyToManyField('users.UserGroup', blank=True, verbose_name=_("User group"), related_name='%(class)ss')
|
||||
user_groups = models.ManyToManyField(
|
||||
'users.UserGroup', blank=True, verbose_name=_("User group"), related_name='%(class)ss')
|
||||
is_active = models.BooleanField(default=True, verbose_name=_('Active'))
|
||||
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'))
|
||||
created_by = models.CharField(max_length=128, blank=True, verbose_name=_('Created by'))
|
||||
date_created = models.DateTimeField(auto_now_add=True, verbose_name=_('Date created'))
|
||||
comment = models.TextField(verbose_name=_('Comment'), blank=True)
|
||||
authorization_rules = models.CharField(
|
||||
max_length=64, default=AuthorizationRules.manual, choices=AuthorizationRules.choices,
|
||||
verbose_name=_('Authorization rules'))
|
||||
|
||||
objects = BasePermissionManager.from_queryset(BasePermissionQuerySet)()
|
||||
|
||||
|
Reference in New Issue
Block a user