forked from DGNum/gestioCOF
Fix dev data
This commit is contained in:
parent
d6fa738a25
commit
2d36c85085
3 changed files with 30 additions and 31 deletions
|
@ -7,7 +7,7 @@ from .models import KFetPermission
|
||||||
|
|
||||||
class KFetPermissionsField(forms.ModelMultipleChoiceField):
|
class KFetPermissionsField(forms.ModelMultipleChoiceField):
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
kwargs.setdefault("queryset", KFetPermission.kfet.all())
|
kwargs.setdefault("queryset", KFetPermission.objects.all())
|
||||||
kwargs.setdefault("widget", widgets.CheckboxSelectMultiple)
|
kwargs.setdefault("widget", widgets.CheckboxSelectMultiple)
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,8 @@ from django.db import models
|
||||||
from django.utils.crypto import get_random_string
|
from django.utils.crypto import get_random_string
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
|
KFET_APP_LABELS = ["kfet", "kfetauth"]
|
||||||
|
|
||||||
|
|
||||||
class GenericTeamTokenManager(models.Manager):
|
class GenericTeamTokenManager(models.Manager):
|
||||||
def create_token(self):
|
def create_token(self):
|
||||||
|
@ -18,28 +20,36 @@ class GenericTeamToken(models.Model):
|
||||||
objects = GenericTeamTokenManager()
|
objects = GenericTeamTokenManager()
|
||||||
|
|
||||||
|
|
||||||
class KFetGroup(Group):
|
|
||||||
# Même si on n'ajoute que des méthodes, on fait un héritage complet pour
|
|
||||||
# mieux distinguer les groupes K-Fêt via l'ORM (i.e. faire `KFetGroup.objects.all`)
|
|
||||||
|
|
||||||
class Meta:
|
|
||||||
verbose_name = _("Groupe K-Fêt")
|
|
||||||
verbose_name_plural = _("Groupes K-Fêt")
|
|
||||||
|
|
||||||
|
|
||||||
class KFetPermissionManager(models.Manager):
|
class KFetPermissionManager(models.Manager):
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
return (
|
return (
|
||||||
super()
|
super().get_queryset().filter(content_type__app_label__in=KFET_APP_LABELS)
|
||||||
.get_queryset()
|
|
||||||
.filter(content_type__app_label__in=["kfet", "kfetauth"])
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class KFetPermission(Permission):
|
class KFetPermission(Permission):
|
||||||
kfet = KFetPermissionManager()
|
objects = KFetPermissionManager()
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
proxy = True
|
proxy = True
|
||||||
verbose_name = _("Permission K-Fêt")
|
verbose_name = _("Permission K-Fêt")
|
||||||
verbose_name_plural = _("Permissions K-Fêt")
|
verbose_name_plural = _("Permissions K-Fêt")
|
||||||
|
|
||||||
|
|
||||||
|
class KFetGroup(Group):
|
||||||
|
# Même si on n'ajoute que des méthodes, on fait un héritage complet pour
|
||||||
|
# mieux distinguer les groupes K-Fêt via l'ORM (i.e. faire `KFetGroup.objects.all`)
|
||||||
|
|
||||||
|
def give_admin_access(self):
|
||||||
|
perms = KFetPermission.objects.all()
|
||||||
|
self.permissions.add(*perms)
|
||||||
|
|
||||||
|
def give_staff_access(self):
|
||||||
|
perms = KFetPermission.objects.filter(
|
||||||
|
codename__in=["is_team", "perform_deposit", "add_account", "add_transfer"]
|
||||||
|
)
|
||||||
|
self.permissions.add(*perms)
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
verbose_name = _("Groupe K-Fêt")
|
||||||
|
verbose_name_plural = _("Groupes K-Fêt")
|
||||||
|
|
|
@ -6,12 +6,13 @@ import os
|
||||||
import random
|
import random
|
||||||
from datetime import timedelta
|
from datetime import timedelta
|
||||||
|
|
||||||
from django.contrib.auth.models import Group, Permission, User
|
from django.contrib.auth.models import User
|
||||||
from django.core.management import call_command
|
from django.core.management import call_command
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
|
|
||||||
from gestioncof.management.base import MyBaseCommand
|
from gestioncof.management.base import MyBaseCommand
|
||||||
from gestioncof.models import CofProfile
|
from gestioncof.models import CofProfile
|
||||||
|
from kfet.auth.models import KFetGroup
|
||||||
from kfet.models import (
|
from kfet.models import (
|
||||||
Account,
|
Account,
|
||||||
Article,
|
Article,
|
||||||
|
@ -33,23 +34,11 @@ class Command(MyBaseCommand):
|
||||||
# Groupes
|
# Groupes
|
||||||
# ---
|
# ---
|
||||||
|
|
||||||
Group.objects.filter(name__icontains="K-Fêt").delete()
|
group_chef, _ = KFetGroup.objects.get_or_create(name="K-Fêt César")
|
||||||
|
group_boy, _ = KFetGroup.objects.get_or_create(name="K-Fêt Légionnaire")
|
||||||
|
|
||||||
group_chef = Group(name="K-Fêt César")
|
group_chef.give_admin_access()
|
||||||
group_boy = Group(name="K-Fêt Légionnaire")
|
group_chef.give_staff_access()
|
||||||
|
|
||||||
group_chef.save()
|
|
||||||
group_boy.save()
|
|
||||||
|
|
||||||
permissions_chef = Permission.objects.filter(
|
|
||||||
content_type__app_label="kfet",
|
|
||||||
)
|
|
||||||
permissions_boy = Permission.objects.filter(
|
|
||||||
content_type__app_label="kfet", codename__in=["is_team", "perform_deposit"]
|
|
||||||
)
|
|
||||||
|
|
||||||
group_chef.permissions.add(*permissions_chef)
|
|
||||||
group_boy.permissions.add(*permissions_boy)
|
|
||||||
|
|
||||||
# ---
|
# ---
|
||||||
# Comptes
|
# Comptes
|
||||||
|
|
Loading…
Add table
Reference in a new issue