1
0
mirror of https://gitlab.crans.org/mediatek/med.git synced 2025-07-06 06:43:56 +02:00

Gestion des clefs

This commit is contained in:
Med
2017-07-03 20:06:21 +02:00
parent b2a653dd97
commit 0738b143b7
11 changed files with 275 additions and 3 deletions

View File

@ -40,7 +40,7 @@ from django.db import transaction
from reversion.models import Version
from reversion import revisions as reversion
from users.models import User, Request, ListRight, Right, DelListRightForm, NewListRightForm, ListRightForm, RightForm, DelRightForm
from users.models import InfoForm, BaseInfoForm, StateForm
from users.models import InfoForm, BaseInfoForm, StateForm, Clef, ClefForm
from users.forms import PassForm, ResetPasswordForm
from media.models import Emprunt
@ -100,7 +100,6 @@ def new_user(request):
req.save()
reset_passwd_mail(req, request)
messages.success(request, "L'utilisateur %s a été crée, un mail pour l'initialisation du mot de passe a été envoyé" % user.pseudo)
capture_mac(request, user)
return redirect("/users/profil/" + str(user.id))
return form({'userform': user}, 'users/user.html', request)
@ -266,6 +265,58 @@ def index_listright(request):
listright_list = ListRight.objects.order_by('listright')
return render(request, 'users/index_listright.html', {'listright_list':listright_list})
@login_required
@permission_required('perm')
def add_clef(request):
clef = ClefForm(request.POST or None)
if clef.is_valid():
with transaction.atomic(), reversion.create_revision():
clef.save()
reversion.set_user(request.user)
reversion.set_comment("Création")
messages.success(request, "La clef a été ajouté")
return redirect("/users/index_clef/")
return form({'userform': clef}, 'users/user.html', request)
@login_required
@permission_required('perm')
def edit_clef(request, clefid):
try:
clef_instance = Clef.objects.get(pk=clefid)
except Clef.DoesNotExist:
messages.error(request, u"Entrée inexistante" )
return redirect("/users/index_clef/")
clef = ClefForm(request.POST or None, instance=clef_instance)
if clef.is_valid():
with transaction.atomic(), reversion.create_revision():
clef.save()
reversion.set_user(request.user)
reversion.set_comment("Champs modifié(s) : %s" % ', '.join(field for field in clef.changed_data))
messages.success(request, "Clef modifié")
return redirect("/users/index_clef/")
return form({'userform': clef}, 'users/user.html', request)
@login_required
@permission_required('perm')
def del_clef(request, clefid):
try:
clef_instance = Clef.objects.get(pk=clefid)
except Clef.DoesNotExist:
messages.error(request, u"Entrée inexistante" )
return redirect("/users/index_clef/")
if request.method == "POST":
with transaction.atomic(), reversion.create_revision():
clef_instance.delete()
reversion.set_user(request.user)
messages.success(request, "La clef a été détruit")
return redirect("/users/index_clef")
return form({'objet': clef_instance, 'objet_name': 'clef'}, 'users/delete.html', request)
@login_required
def index_clef(request):
clef_list = Clef.objects.all().order_by('nom')
return render(request, 'users/index_clef.html', {'clef_list':clef_list})
@login_required
@permission_required('perm')
def index(request):
@ -296,6 +347,12 @@ def history(request, object, id):
if not request.user.has_perms(('perm',)) and object_instance != request.user:
messages.error(request, "Vous ne pouvez pas afficher l'historique d'un autre user que vous sans droit admin")
return redirect("/users/profil/" + str(request.user.id))
elif object == 'clef':
try:
object_instance = Clef.objects.get(pk=id)
except Clef.DoesNotExist:
messages.error(request, "Utilisateur inexistant")
return redirect("/users/")
elif object == 'listright' and request.user.has_perms(('perm',)):
try:
object_instance = ListRight.objects.get(pk=id)