forked from DGNum/gestioCOF
Added basic buro right handling while updating member
This commit is contained in:
parent
ba9aa06b4f
commit
bf6d6d6430
2 changed files with 12 additions and 0 deletions
|
@ -1,6 +1,7 @@
|
||||||
from django import forms
|
from django import forms
|
||||||
from django.contrib.auth import get_user_model
|
from django.contrib.auth import get_user_model
|
||||||
from django.contrib.auth.forms import UserCreationForm
|
from django.contrib.auth.forms import UserCreationForm
|
||||||
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
from bds.models import BDSProfile
|
from bds.models import BDSProfile
|
||||||
|
|
||||||
|
@ -8,6 +9,8 @@ User = get_user_model()
|
||||||
|
|
||||||
|
|
||||||
class UserForm(forms.ModelForm):
|
class UserForm(forms.ModelForm):
|
||||||
|
is_buro = forms.BooleanField(label=_("membre du Burô"), required=False)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = User
|
model = User
|
||||||
fields = ["email", "first_name", "last_name"]
|
fields = ["email", "first_name", "last_name"]
|
||||||
|
|
|
@ -3,6 +3,7 @@ import csv
|
||||||
from django.contrib import messages
|
from django.contrib import messages
|
||||||
from django.contrib.auth import get_user_model
|
from django.contrib.auth import get_user_model
|
||||||
from django.contrib.auth.decorators import permission_required
|
from django.contrib.auth.decorators import permission_required
|
||||||
|
from django.contrib.auth.models import Permission
|
||||||
from django.http import HttpResponse
|
from django.http import HttpResponse
|
||||||
from django.shortcuts import get_object_or_404
|
from django.shortcuts import get_object_or_404
|
||||||
from django.urls import reverse, reverse_lazy
|
from django.urls import reverse, reverse_lazy
|
||||||
|
@ -40,6 +41,9 @@ class UserUpdateView(StaffRequiredMixin, MultipleFormView):
|
||||||
"profile": ProfileForm,
|
"profile": ProfileForm,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def get_user_initial(self):
|
||||||
|
return {"is_buro": self.get_user_instance().has_perm("bds.is_team")}
|
||||||
|
|
||||||
def dispatch(self, request, *args, **kwargs):
|
def dispatch(self, request, *args, **kwargs):
|
||||||
self.user = get_object_or_404(User, pk=self.kwargs["pk"])
|
self.user = get_object_or_404(User, pk=self.kwargs["pk"])
|
||||||
return super().dispatch(request, *args, **kwargs)
|
return super().dispatch(request, *args, **kwargs)
|
||||||
|
@ -56,6 +60,11 @@ class UserUpdateView(StaffRequiredMixin, MultipleFormView):
|
||||||
def form_valid(self, forms):
|
def form_valid(self, forms):
|
||||||
user = forms["user"].save()
|
user = forms["user"].save()
|
||||||
profile = forms["profile"].save(commit=False)
|
profile = forms["profile"].save(commit=False)
|
||||||
|
perm = Permission.objects.get(content_type__app_label="bds", codename="is_team")
|
||||||
|
if forms["user"].cleaned_data["is_buro"]:
|
||||||
|
user.user_permissions.add(perm)
|
||||||
|
else:
|
||||||
|
user.user_permissions.remove(perm)
|
||||||
profile.user = user
|
profile.user = user
|
||||||
profile.save()
|
profile.save()
|
||||||
messages.success(self.request, _("Profil mis à jour avec succès !"))
|
messages.success(self.request, _("Profil mis à jour avec succès !"))
|
||||||
|
|
Loading…
Reference in a new issue