mirror of
https://gitlab.crans.org/bde/nk20
synced 2025-06-20 17:41:55 +02:00
Permissions can be permanent
This commit is contained in:
@ -8,7 +8,6 @@ from django.contrib.auth.models import User, AnonymousUser
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
from django.db.models import Q, F
|
||||
from note.models import Note, NoteUser, NoteClub, NoteSpecial
|
||||
from note_kfet import settings
|
||||
from note_kfet.middlewares import get_current_session
|
||||
from member.models import Membership, Club
|
||||
|
||||
@ -41,11 +40,16 @@ class PermissionBackend(ModelBackend):
|
||||
club=F("rolepermissions__role__membership__club"),
|
||||
membership=F("rolepermissions__role__membership"),
|
||||
).filter(
|
||||
rolepermissions__role__membership__user=user,
|
||||
rolepermissions__role__membership__date_start__lte=datetime.date.today(),
|
||||
rolepermissions__role__membership__date_end__gte=datetime.date.today(),
|
||||
type=t,
|
||||
mask__rank__lte=get_current_session().get("permission_mask", 0),
|
||||
(
|
||||
Q(
|
||||
rolepermissions__role__membership__date_start__lte=datetime.date.today(),
|
||||
rolepermissions__role__membership__date_end__gte=datetime.date.today(),
|
||||
)
|
||||
| Q(permanent=True)
|
||||
)
|
||||
& Q(rolepermissions__role__membership__user=user)
|
||||
& Q(type=t)
|
||||
& Q(mask__rank__lte=get_current_session().get("permission_mask", 0))
|
||||
).distinct()
|
||||
|
||||
@staticmethod
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -170,6 +170,12 @@ class Permission(models.Model):
|
||||
verbose_name=_("field"),
|
||||
)
|
||||
|
||||
permanent = models.BooleanField(
|
||||
default=False,
|
||||
help_text=_("Tells if the permission should be granted even if the membership of the user is expired."),
|
||||
verbose_name=_("permanent"),
|
||||
)
|
||||
|
||||
description = models.CharField(
|
||||
max_length=255,
|
||||
blank=True,
|
||||
|
Reference in New Issue
Block a user