mirror of
https://gitlab2.federez.net/re2o/re2o
synced 2024-12-28 09:53:47 +00:00
Merge branch 'reverse_url' into 'master'
Utilisation d'URL dynamiques See merge request federez/re2o!31
This commit is contained in:
commit
66dec02f59
8 changed files with 413 additions and 249 deletions
|
@ -25,6 +25,8 @@
|
|||
# Gplv2
|
||||
from __future__ import unicode_literals
|
||||
import os
|
||||
|
||||
from django.urls import reverse
|
||||
from django.shortcuts import render, redirect
|
||||
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
|
||||
from django.contrib.auth.decorators import login_required, permission_required
|
||||
|
@ -76,7 +78,7 @@ def new_facture(request, userid):
|
|||
user = User.objects.get(pk=userid)
|
||||
except User.DoesNotExist:
|
||||
messages.error(request, u"Utilisateur inexistant")
|
||||
return redirect("/cotisations/")
|
||||
return redirect(reverse('cotisations:index'))
|
||||
facture = Facture(user=user)
|
||||
# Le template a besoin de connaitre les articles pour le js
|
||||
article_list = Article.objects.filter(
|
||||
|
@ -110,7 +112,10 @@ def new_facture(request, userid):
|
|||
if float(user.solde) - float(prix_total) < solde_negatif:
|
||||
messages.error(request, "Le solde est insuffisant pour\
|
||||
effectuer l'opération")
|
||||
return redirect("/users/profil/" + userid)
|
||||
return redirect(reverse(
|
||||
'users:profil',
|
||||
kwargs={'userid': userid}
|
||||
))
|
||||
with transaction.atomic(), reversion.create_revision():
|
||||
new_facture_instance.save()
|
||||
reversion.set_user(request.user)
|
||||
|
@ -142,7 +147,10 @@ def new_facture(request, userid):
|
|||
)
|
||||
else:
|
||||
messages.success(request, "La facture a été crée")
|
||||
return redirect("/users/profil/" + userid)
|
||||
return redirect(reverse(
|
||||
'users:profil',
|
||||
kwargs={'userid': userid}
|
||||
))
|
||||
messages.error(
|
||||
request,
|
||||
u"Il faut au moins un article valide pour créer une facture"
|
||||
|
@ -204,16 +212,22 @@ def facture_pdf(request, factureid):
|
|||
facture = Facture.objects.get(pk=factureid)
|
||||
except Facture.DoesNotExist:
|
||||
messages.error(request, u"Facture inexistante")
|
||||
return redirect("/cotisations/")
|
||||
return redirect(reverse('cotisations:index'))
|
||||
if not request.user.has_perms(('cableur',))\
|
||||
and facture.user != request.user:
|
||||
messages.error(request, "Vous ne pouvez pas afficher une facture ne vous\
|
||||
appartenant pas sans droit cableur")
|
||||
return redirect("/users/profil/" + str(request.user.id))
|
||||
return redirect(reverse(
|
||||
'users:profil',
|
||||
kwargs={'userid': str(request.user.id)}
|
||||
))
|
||||
if not facture.valid:
|
||||
messages.error(request, "Vous ne pouvez pas afficher\
|
||||
une facture non valide")
|
||||
return redirect("/users/profil/" + str(request.user.id))
|
||||
return redirect(reverse(
|
||||
'users:profil',
|
||||
kwargs={'userid': str(request.user.id)}
|
||||
))
|
||||
ventes_objects = Vente.objects.all().filter(facture=facture)
|
||||
ventes = []
|
||||
options, _created = AssoOption.objects.get_or_create()
|
||||
|
@ -246,7 +260,7 @@ def edit_facture(request, factureid):
|
|||
facture = Facture.objects.get(pk=factureid)
|
||||
except Facture.DoesNotExist:
|
||||
messages.error(request, u"Facture inexistante")
|
||||
return redirect("/cotisations/")
|
||||
return redirect(reverse('cotisations:index'))
|
||||
if request.user.has_perms(['tresorier']):
|
||||
facture_form = TrezEditFactureForm(
|
||||
request.POST or None,
|
||||
|
@ -255,7 +269,7 @@ def edit_facture(request, factureid):
|
|||
elif facture.control or not facture.valid:
|
||||
messages.error(request, "Vous ne pouvez pas editer une facture\
|
||||
controlée ou invalidée par le trésorier")
|
||||
return redirect("/cotisations/")
|
||||
return redirect(reverse('cotisations:index'))
|
||||
else:
|
||||
facture_form = EditFactureForm(request.POST or None, instance=facture)
|
||||
ventes_objects = Vente.objects.filter(facture=facture)
|
||||
|
@ -275,7 +289,7 @@ def edit_facture(request, factureid):
|
|||
field for form in vente_form for field
|
||||
in facture_form.changed_data + form.changed_data))
|
||||
messages.success(request, "La facture a bien été modifiée")
|
||||
return redirect("/cotisations/")
|
||||
return redirect(reverse('cotisations:index'))
|
||||
return form({
|
||||
'factureform': facture_form,
|
||||
'venteform': vente_form
|
||||
|
@ -291,17 +305,17 @@ def del_facture(request, factureid):
|
|||
facture = Facture.objects.get(pk=factureid)
|
||||
except Facture.DoesNotExist:
|
||||
messages.error(request, u"Facture inexistante")
|
||||
return redirect("/cotisations/")
|
||||
return redirect(reverse('cotisations:index'))
|
||||
if facture.control or not facture.valid:
|
||||
messages.error(request, "Vous ne pouvez pas editer une facture\
|
||||
controlée ou invalidée par le trésorier")
|
||||
return redirect("/cotisations/")
|
||||
return redirect(reverse('cotisations:index'))
|
||||
if request.method == "POST":
|
||||
with transaction.atomic(), reversion.create_revision():
|
||||
facture.delete()
|
||||
reversion.set_user(request.user)
|
||||
messages.success(request, "La facture a été détruite")
|
||||
return redirect("/cotisations/")
|
||||
return redirect(reverse('cotisations:index'))
|
||||
return form({
|
||||
'objet': facture,
|
||||
'objet_name': 'facture'
|
||||
|
@ -316,7 +330,7 @@ def credit_solde(request, userid):
|
|||
user = User.objects.get(pk=userid)
|
||||
except User.DoesNotExist:
|
||||
messages.error(request, u"Utilisateur inexistant")
|
||||
return redirect("/cotisations/")
|
||||
return redirect(reverse('cotisations:index'))
|
||||
facture = CreditSoldeForm(request.POST or None)
|
||||
if facture.is_valid():
|
||||
facture_instance = facture.save(commit=False)
|
||||
|
@ -336,7 +350,7 @@ def credit_solde(request, userid):
|
|||
reversion.set_user(request.user)
|
||||
reversion.set_comment("Création")
|
||||
messages.success(request, "Solde modifié")
|
||||
return redirect("/cotisations/")
|
||||
return redirect(reverse('cotisations:index'))
|
||||
return form({'factureform': facture}, 'cotisations/facture.html', request)
|
||||
|
||||
|
||||
|
@ -357,7 +371,7 @@ def add_article(request):
|
|||
reversion.set_user(request.user)
|
||||
reversion.set_comment("Création")
|
||||
messages.success(request, "L'article a été ajouté")
|
||||
return redirect("/cotisations/index_article/")
|
||||
return redirect(reverse('cotisations:index-article'))
|
||||
return form({'factureform': article}, 'cotisations/facture.html', request)
|
||||
|
||||
|
||||
|
@ -370,7 +384,7 @@ def edit_article(request, articleid):
|
|||
article_instance = Article.objects.get(pk=articleid)
|
||||
except Article.DoesNotExist:
|
||||
messages.error(request, u"Entrée inexistante")
|
||||
return redirect("/cotisations/index_article/")
|
||||
return redirect(reverse('cotisations:index-article'))
|
||||
article = ArticleForm(request.POST or None, instance=article_instance)
|
||||
if article.is_valid():
|
||||
with transaction.atomic(), reversion.create_revision():
|
||||
|
@ -382,7 +396,7 @@ def edit_article(request, articleid):
|
|||
)
|
||||
)
|
||||
messages.success(request, "Type d'article modifié")
|
||||
return redirect("/cotisations/index_article/")
|
||||
return redirect(reverse('cotisations:index-article'))
|
||||
return form({'factureform': article}, 'cotisations/facture.html', request)
|
||||
|
||||
|
||||
|
@ -397,7 +411,7 @@ def del_article(request):
|
|||
article_del.delete()
|
||||
reversion.set_user(request.user)
|
||||
messages.success(request, "Le/les articles ont été supprimé")
|
||||
return redirect("/cotisations/index_article")
|
||||
return redirect(reverse('cotisations:index-article'))
|
||||
return form({'factureform': article}, 'cotisations/facture.html', request)
|
||||
|
||||
|
||||
|
@ -413,7 +427,7 @@ def add_paiement(request):
|
|||
reversion.set_user(request.user)
|
||||
reversion.set_comment("Création")
|
||||
messages.success(request, "Le moyen de paiement a été ajouté")
|
||||
return redirect("/cotisations/index_paiement/")
|
||||
return redirect(reverse('cotisations:index-paiement'))
|
||||
return form({'factureform': paiement}, 'cotisations/facture.html', request)
|
||||
|
||||
|
||||
|
@ -425,7 +439,7 @@ def edit_paiement(request, paiementid):
|
|||
paiement_instance = Paiement.objects.get(pk=paiementid)
|
||||
except Paiement.DoesNotExist:
|
||||
messages.error(request, u"Entrée inexistante")
|
||||
return redirect("/cotisations/index_paiement/")
|
||||
return redirect(reverse('cotisations:index-paiement'))
|
||||
paiement = PaiementForm(request.POST or None, instance=paiement_instance)
|
||||
if paiement.is_valid():
|
||||
with transaction.atomic(), reversion.create_revision():
|
||||
|
@ -437,7 +451,7 @@ def edit_paiement(request, paiementid):
|
|||
)
|
||||
)
|
||||
messages.success(request, "Type de paiement modifié")
|
||||
return redirect("/cotisations/index_paiement/")
|
||||
return redirect(reverse('cotisations:index-paiement'))
|
||||
return form({'factureform': paiement}, 'cotisations/facture.html', request)
|
||||
|
||||
|
||||
|
@ -464,7 +478,7 @@ def del_paiement(request):
|
|||
"Le moyen de paiement %s est affecté à au moins une\
|
||||
facture, vous ne pouvez pas le supprimer" % paiement_del
|
||||
)
|
||||
return redirect("/cotisations/index_paiement/")
|
||||
return redirect(reverse('cotisations:index-paiement'))
|
||||
return form({'factureform': paiement}, 'cotisations/facture.html', request)
|
||||
|
||||
|
||||
|
@ -479,7 +493,7 @@ def add_banque(request):
|
|||
reversion.set_user(request.user)
|
||||
reversion.set_comment("Création")
|
||||
messages.success(request, "La banque a été ajoutée")
|
||||
return redirect("/cotisations/index_banque/")
|
||||
return redirect(reverse('cotisations:index-banque'))
|
||||
return form({'factureform': banque}, 'cotisations/facture.html', request)
|
||||
|
||||
|
||||
|
@ -491,7 +505,7 @@ def edit_banque(request, banqueid):
|
|||
banque_instance = Banque.objects.get(pk=banqueid)
|
||||
except Banque.DoesNotExist:
|
||||
messages.error(request, u"Entrée inexistante")
|
||||
return redirect("/cotisations/index_banque/")
|
||||
return redirect(reverse('cotisations:index-banque'))
|
||||
banque = BanqueForm(request.POST or None, instance=banque_instance)
|
||||
if banque.is_valid():
|
||||
with transaction.atomic(), reversion.create_revision():
|
||||
|
@ -503,7 +517,7 @@ def edit_banque(request, banqueid):
|
|||
)
|
||||
)
|
||||
messages.success(request, "Banque modifiée")
|
||||
return redirect("/cotisations/index_banque/")
|
||||
return redirect(reverse('cotisations:index-banque'))
|
||||
return form({'factureform': banque}, 'cotisations/facture.html', request)
|
||||
|
||||
|
||||
|
@ -524,7 +538,7 @@ def del_banque(request):
|
|||
except ProtectedError:
|
||||
messages.error(request, "La banque %s est affectée à au moins\
|
||||
une facture, vous ne pouvez pas la supprimer" % banque_del)
|
||||
return redirect("/cotisations/index_banque/")
|
||||
return redirect(reverse('cotisations:index-banque'))
|
||||
return form({'factureform': banque}, 'cotisations/facture.html', request)
|
||||
|
||||
|
||||
|
@ -561,7 +575,7 @@ def control(request):
|
|||
controlform.save()
|
||||
reversion.set_user(request.user)
|
||||
reversion.set_comment("Controle trésorier")
|
||||
return redirect("/cotisations/control/")
|
||||
return redirect(reverse('cotisations:control'))
|
||||
return render(request, 'cotisations/control.html', {
|
||||
'facture_list': facture_list,
|
||||
'controlform': controlform
|
||||
|
@ -635,33 +649,36 @@ def history(request, object_name, object_id):
|
|||
object_instance = Facture.objects.get(pk=object_id)
|
||||
except Facture.DoesNotExist:
|
||||
messages.error(request, "Facture inexistante")
|
||||
return redirect("/cotisations/")
|
||||
return redirect(reverse('cotisations:index'))
|
||||
if not request.user.has_perms(('cableur',))\
|
||||
and object_instance.user != request.user:
|
||||
messages.error(request, "Vous ne pouvez pas afficher l'historique\
|
||||
d'une facture d'un autre user que vous sans droit cableur")
|
||||
return redirect("/users/profil/" + str(request.user.id))
|
||||
return redirect(reverse(
|
||||
'users:profil',
|
||||
kwargs={'userid':str(request.user.id)}
|
||||
))
|
||||
elif object_name == 'paiement' and request.user.has_perms(('cableur',)):
|
||||
try:
|
||||
object_instance = Paiement.objects.get(pk=object_id)
|
||||
except Paiement.DoesNotExist:
|
||||
messages.error(request, "Paiement inexistant")
|
||||
return redirect("/cotisations/")
|
||||
return redirect(reverse('cotisations:index'))
|
||||
elif object_name == 'article' and request.user.has_perms(('cableur',)):
|
||||
try:
|
||||
object_instance = Article.objects.get(pk=object_id)
|
||||
except Article.DoesNotExist:
|
||||
messages.error(request, "Article inexistante")
|
||||
return redirect("/cotisations/")
|
||||
return redirect(reverse('cotisations:index'))
|
||||
elif object_name == 'banque' and request.user.has_perms(('cableur',)):
|
||||
try:
|
||||
object_instance = Banque.objects.get(pk=object_id)
|
||||
except Banque.DoesNotExist:
|
||||
messages.error(request, "Banque inexistante")
|
||||
return redirect("/cotisations/")
|
||||
return redirect(reverse('cotisations:index'))
|
||||
else:
|
||||
messages.error(request, "Objet inconnu")
|
||||
return redirect("/cotisations/")
|
||||
return redirect(reverse('cotisations:index'))
|
||||
options, _created = GeneralOption.objects.get_or_create()
|
||||
pagination_number = options.pagination_number
|
||||
reversions = Version.objects.get_for_object(object_instance)
|
||||
|
|
|
@ -37,6 +37,7 @@ nombre d'objets par models, nombre d'actions par user, etc
|
|||
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.urls import reverse
|
||||
from django.shortcuts import render, redirect
|
||||
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
|
||||
from django.contrib import messages
|
||||
|
@ -206,7 +207,7 @@ def revert_action(request, revision_id):
|
|||
if request.method == "POST":
|
||||
revision.revert()
|
||||
messages.success(request, "L'action a été supprimée")
|
||||
return redirect("/logs/")
|
||||
return redirect(reverse('logs:index'))
|
||||
return form({
|
||||
'objet': revision,
|
||||
'objet_name': revision.__class__.__name__
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.urls import reverse
|
||||
from django.http import HttpResponse
|
||||
from django.shortcuts import render, redirect
|
||||
from django.shortcuts import get_object_or_404
|
||||
|
@ -213,7 +214,7 @@ def new_machine(request, userid):
|
|||
user = User.objects.get(pk=userid)
|
||||
except User.DoesNotExist:
|
||||
messages.error(request, u"Utilisateur inexistant" )
|
||||
return redirect("/machines/")
|
||||
return redirect(reverse('machines:index'))
|
||||
options, created = OptionalMachine.objects.get_or_create()
|
||||
max_lambdauser_interfaces = options.max_lambdauser_interfaces
|
||||
if not request.user.has_perms(('cableur',)):
|
||||
|
@ -221,10 +222,16 @@ def new_machine(request, userid):
|
|||
messages.error(
|
||||
request,
|
||||
"Vous ne pouvez pas ajouter une machine à un autre user que vous sans droit")
|
||||
return redirect("/users/profil/" + str(request.user.id))
|
||||
return redirect(reverse(
|
||||
'users:profil',
|
||||
kwargs={'userid':str(request.user.id)}
|
||||
))
|
||||
if user.user_interfaces().count() >= max_lambdauser_interfaces:
|
||||
messages.error(request, "Vous avez atteint le maximum d'interfaces autorisées que vous pouvez créer vous même (%s) " % max_lambdauser_interfaces)
|
||||
return redirect("/users/profil/" + str(request.user.id))
|
||||
return redirect(reverse(
|
||||
'users:profil',
|
||||
kwargs={'userid':str(request.user.id)}
|
||||
))
|
||||
machine = NewMachineForm(request.POST or None)
|
||||
interface = AddInterfaceForm(request.POST or None, infra=request.user.has_perms(('infra',)))
|
||||
domain = DomainForm(request.POST or None, user=user)
|
||||
|
@ -250,7 +257,10 @@ def new_machine(request, userid):
|
|||
reversion.set_user(request.user)
|
||||
reversion.set_comment("Création")
|
||||
messages.success(request, "La machine a été créée")
|
||||
return redirect("/users/profil/" + str(user.id))
|
||||
return redirect(reverse(
|
||||
'users:profil',
|
||||
kwargs={'userid':str(user.id)}
|
||||
))
|
||||
i_mbf_param = generate_ipv4_mbf_param( interface, False )
|
||||
return form({'machineform': machine, 'interfaceform': interface, 'domainform': domain, 'i_mbf_param': i_mbf_param}, 'machines/machine.html', request)
|
||||
|
||||
|
@ -262,11 +272,14 @@ def edit_interface(request, interfaceid):
|
|||
interface = Interface.objects.get(pk=interfaceid)
|
||||
except Interface.DoesNotExist:
|
||||
messages.error(request, u"Interface inexistante" )
|
||||
return redirect("/machines")
|
||||
return redirect(reverse('machines:index'))
|
||||
if not request.user.has_perms(('infra',)):
|
||||
if not request.user.has_perms(('cableur',)) and interface.machine.user != request.user:
|
||||
messages.error(request, "Vous ne pouvez pas éditer une machine d'un autre user que vous sans droit")
|
||||
return redirect("/users/profil/" + str(request.user.id))
|
||||
return redirect(reverse(
|
||||
'users:profil',
|
||||
kwargs={'userid':str(request.user.id)}
|
||||
))
|
||||
machine_form = BaseEditMachineForm(request.POST or None, instance=interface.machine)
|
||||
interface_form = BaseEditInterfaceForm(request.POST or None, instance=interface, infra=False)
|
||||
else:
|
||||
|
@ -290,7 +303,10 @@ def edit_interface(request, interfaceid):
|
|||
reversion.set_user(request.user)
|
||||
reversion.set_comment("Champs modifié(s) : %s" % ', '.join(field for field in domain_form.changed_data))
|
||||
messages.success(request, "La machine a été modifiée")
|
||||
return redirect("/users/profil/" + str(interface.machine.user.id))
|
||||
return redirect(reverse(
|
||||
'users:profil',
|
||||
kwargs={'userid':str(interface.machine.user.id)}
|
||||
))
|
||||
i_mbf_param = generate_ipv4_mbf_param( interface_form, False )
|
||||
return form({'machineform': machine_form, 'interfaceform': interface_form, 'domainform': domain_form, 'i_mbf_param': i_mbf_param}, 'machines/machine.html', request)
|
||||
|
||||
|
@ -301,17 +317,23 @@ def del_machine(request, machineid):
|
|||
machine = Machine.objects.get(pk=machineid)
|
||||
except Machine.DoesNotExist:
|
||||
messages.error(request, u"Machine inexistante" )
|
||||
return redirect("/machines")
|
||||
return redirect(reverse('machines:index'))
|
||||
if not request.user.has_perms(('cableur',)):
|
||||
if machine.user != request.user:
|
||||
messages.error(request, "Vous ne pouvez pas éditer une machine d'un autre user que vous sans droit")
|
||||
return redirect("/users/profil/" + str(machine.user.id))
|
||||
return redirect(reverse(
|
||||
'users:profil',
|
||||
kwargs={'userid':str(machine.user.id)}
|
||||
))
|
||||
if request.method == "POST":
|
||||
with transaction.atomic(), reversion.create_revision():
|
||||
machine.delete()
|
||||
reversion.set_user(request.user)
|
||||
messages.success(request, "La machine a été détruite")
|
||||
return redirect("/users/profil/" + str(machine.user.id))
|
||||
return redirect(reverse(
|
||||
'users:profil',
|
||||
kwargs={'userid':str(machine.user.id)}
|
||||
))
|
||||
return form({'objet': machine, 'objet_name': 'machine'}, 'machines/delete.html', request)
|
||||
|
||||
@login_required
|
||||
|
@ -321,16 +343,22 @@ def new_interface(request, machineid):
|
|||
machine = Machine.objects.get(pk=machineid)
|
||||
except Machine.DoesNotExist:
|
||||
messages.error(request, u"Machine inexistante" )
|
||||
return redirect("/machines")
|
||||
return redirect(reverse('machines:index'))
|
||||
if not request.user.has_perms(('cableur',)):
|
||||
options, created = OptionalMachine.objects.get_or_create()
|
||||
max_lambdauser_interfaces = options.max_lambdauser_interfaces
|
||||
if machine.user != request.user:
|
||||
messages.error(request, "Vous ne pouvez pas ajouter une interface à une machine d'un autre user que vous sans droit")
|
||||
return redirect("/users/profil/" + str(request.user.id))
|
||||
return redirect(reverse(
|
||||
'users:profil',
|
||||
kwargs={'userid':str(request.user.id)}
|
||||
))
|
||||
if machine.user.user_interfaces().count() >= max_lambdauser_interfaces:
|
||||
messages.error(request, "Vous avez atteint le maximum d'interfaces autorisées que vous pouvez créer vous même (%s) " % max_lambdauser_interfaces)
|
||||
return redirect("/users/profil/" + str(request.user.id))
|
||||
return redirect(reverse(
|
||||
'users:profil',
|
||||
kwargs={'userid':str(request.user.id)}
|
||||
))
|
||||
interface_form = AddInterfaceForm(request.POST or None, infra=request.user.has_perms(('infra',)))
|
||||
domain_form = DomainForm(request.POST or None)
|
||||
if interface_form.is_valid():
|
||||
|
@ -349,7 +377,10 @@ def new_interface(request, machineid):
|
|||
reversion.set_user(request.user)
|
||||
reversion.set_comment("Création")
|
||||
messages.success(request, "L'interface a été ajoutée")
|
||||
return redirect("/users/profil/" + str(machine.user.id))
|
||||
return redirect(reverse(
|
||||
'users:profil',
|
||||
kwargs={'userid':str(machine.user.id)}
|
||||
))
|
||||
i_mbf_param = generate_ipv4_mbf_param( interface_form, False )
|
||||
return form({'interfaceform': interface_form, 'domainform': domain_form, 'i_mbf_param': i_mbf_param}, 'machines/machine.html', request)
|
||||
|
||||
|
@ -360,11 +391,14 @@ def del_interface(request, interfaceid):
|
|||
interface = Interface.objects.get(pk=interfaceid)
|
||||
except Interface.DoesNotExist:
|
||||
messages.error(request, u"Interface inexistante" )
|
||||
return redirect("/machines")
|
||||
return redirect(reverse('machines:index'))
|
||||
if not request.user.has_perms(('cableur',)):
|
||||
if interface.machine.user != request.user:
|
||||
messages.error(request, "Vous ne pouvez pas éditer une machine d'un autre user que vous sans droit")
|
||||
return redirect("/users/profil/" + str(request.user.id))
|
||||
return redirect(reverse(
|
||||
'users:profil',
|
||||
kwargs={'userid':str(request.user.id)}
|
||||
))
|
||||
if request.method == "POST":
|
||||
machine = interface.machine
|
||||
with transaction.atomic(), reversion.create_revision():
|
||||
|
@ -373,7 +407,10 @@ def del_interface(request, interfaceid):
|
|||
machine.delete()
|
||||
reversion.set_user(request.user)
|
||||
messages.success(request, "L'interface a été détruite")
|
||||
return redirect("/users/profil/" + str(request.user.id))
|
||||
return redirect(reverse(
|
||||
'users:profil',
|
||||
kwargs={'userid':str(request.user.id)}
|
||||
))
|
||||
return form({'objet': interface, 'objet_name': 'interface'}, 'machines/delete.html', request)
|
||||
|
||||
@login_required
|
||||
|
@ -387,7 +424,7 @@ def add_iptype(request):
|
|||
reversion.set_user(request.user)
|
||||
reversion.set_comment("Création")
|
||||
messages.success(request, "Ce type d'ip a été ajouté")
|
||||
return redirect("/machines/index_iptype")
|
||||
return redirect(reverse('machines:index-iptype'))
|
||||
return form({'iptypeform': iptype}, 'machines/machine.html', request)
|
||||
|
||||
@login_required
|
||||
|
@ -398,7 +435,7 @@ def edit_iptype(request, iptypeid):
|
|||
iptype_instance = IpType.objects.get(pk=iptypeid)
|
||||
except IpType.DoesNotExist:
|
||||
messages.error(request, u"Entrée inexistante" )
|
||||
return redirect("/machines/index_iptype/")
|
||||
return redirect(reverse('machines:index-iptype'))
|
||||
iptype = EditIpTypeForm(request.POST or None, instance=iptype_instance)
|
||||
if iptype.is_valid():
|
||||
with transaction.atomic(), reversion.create_revision():
|
||||
|
@ -406,7 +443,7 @@ def edit_iptype(request, iptypeid):
|
|||
reversion.set_user(request.user)
|
||||
reversion.set_comment("Champs modifié(s) : %s" % ', '.join(field for field in iptype.changed_data))
|
||||
messages.success(request, "Type d'ip modifié")
|
||||
return redirect("/machines/index_iptype/")
|
||||
return redirect(reverse('machines:index-iptype'))
|
||||
return form({'iptypeform': iptype}, 'machines/machine.html', request)
|
||||
|
||||
@login_required
|
||||
|
@ -424,7 +461,7 @@ def del_iptype(request):
|
|||
messages.success(request, "Le type d'ip a été supprimé")
|
||||
except ProtectedError:
|
||||
messages.error(request, "Le type d'ip %s est affectée à au moins une machine, vous ne pouvez pas le supprimer" % iptype_del)
|
||||
return redirect("/machines/index_iptype")
|
||||
return redirect(reverse('machines:index-iptype'))
|
||||
return form({'iptypeform': iptype}, 'machines/machine.html', request)
|
||||
|
||||
@login_required
|
||||
|
@ -437,7 +474,7 @@ def add_machinetype(request):
|
|||
reversion.set_user(request.user)
|
||||
reversion.set_comment("Création")
|
||||
messages.success(request, "Ce type de machine a été ajouté")
|
||||
return redirect("/machines/index_machinetype")
|
||||
return redirect(reverse('machines:index-machinetype'))
|
||||
return form({'machinetypeform': machinetype}, 'machines/machine.html', request)
|
||||
|
||||
@login_required
|
||||
|
@ -447,7 +484,7 @@ def edit_machinetype(request, machinetypeid):
|
|||
machinetype_instance = MachineType.objects.get(pk=machinetypeid)
|
||||
except MachineType.DoesNotExist:
|
||||
messages.error(request, u"Entrée inexistante" )
|
||||
return redirect("/machines/index_machinetype/")
|
||||
return redirect(reverse('machines:index-machinetype'))
|
||||
machinetype = MachineTypeForm(request.POST or None, instance=machinetype_instance)
|
||||
if machinetype.is_valid():
|
||||
with transaction.atomic(), reversion.create_revision():
|
||||
|
@ -455,7 +492,7 @@ def edit_machinetype(request, machinetypeid):
|
|||
reversion.set_user(request.user)
|
||||
reversion.set_comment("Champs modifié(s) : %s" % ', '.join(field for field in machinetype.changed_data))
|
||||
messages.success(request, "Type de machine modifié")
|
||||
return redirect("/machines/index_machinetype/")
|
||||
return redirect(reverse('machines:index-machinetype'))
|
||||
return form({'machinetypeform': machinetype}, 'machines/machine.html', request)
|
||||
|
||||
@login_required
|
||||
|
@ -472,7 +509,7 @@ def del_machinetype(request):
|
|||
messages.success(request, "Le type de machine a été supprimé")
|
||||
except ProtectedError:
|
||||
messages.error(request, "Le type de machine %s est affectée à au moins une machine, vous ne pouvez pas le supprimer" % machinetype_del)
|
||||
return redirect("/machines/index_machinetype")
|
||||
return redirect(reverse('machines:index-machinetype'))
|
||||
return form({'machinetypeform': machinetype}, 'machines/machine.html', request)
|
||||
|
||||
@login_required
|
||||
|
@ -485,7 +522,7 @@ def add_extension(request):
|
|||
reversion.set_user(request.user)
|
||||
reversion.set_comment("Création")
|
||||
messages.success(request, "Cette extension a été ajoutée")
|
||||
return redirect("/machines/index_extension")
|
||||
return redirect(reverse('machines:index-extension'))
|
||||
return form({'extensionform': extension}, 'machines/machine.html', request)
|
||||
|
||||
@login_required
|
||||
|
@ -495,7 +532,7 @@ def edit_extension(request, extensionid):
|
|||
extension_instance = Extension.objects.get(pk=extensionid)
|
||||
except Extension.DoesNotExist:
|
||||
messages.error(request, u"Entrée inexistante" )
|
||||
return redirect("/machines/index_extension/")
|
||||
return redirect(reverse('machines:index-extension'))
|
||||
extension = ExtensionForm(request.POST or None, instance=extension_instance)
|
||||
if extension.is_valid():
|
||||
with transaction.atomic(), reversion.create_revision():
|
||||
|
@ -503,7 +540,7 @@ def edit_extension(request, extensionid):
|
|||
reversion.set_user(request.user)
|
||||
reversion.set_comment("Champs modifié(s) : %s" % ', '.join(field for field in extension.changed_data))
|
||||
messages.success(request, "Extension modifiée")
|
||||
return redirect("/machines/index_extension/")
|
||||
return redirect(reverse('machines:index-extension'))
|
||||
return form({'extensionform': extension}, 'machines/machine.html', request)
|
||||
|
||||
@login_required
|
||||
|
@ -520,7 +557,7 @@ def del_extension(request):
|
|||
messages.success(request, "L'extension a été supprimée")
|
||||
except ProtectedError:
|
||||
messages.error(request, "L'extension %s est affectée à au moins un type de machine, vous ne pouvez pas la supprimer" % extension_del)
|
||||
return redirect("/machines/index_extension")
|
||||
return redirect(reverse('machines:index-extension'))
|
||||
return form({'extensionform': extension}, 'machines/machine.html', request)
|
||||
|
||||
@login_required
|
||||
|
@ -533,7 +570,7 @@ def add_soa(request):
|
|||
reversion.set_user(request.user)
|
||||
reversion.set_comment("Création")
|
||||
messages.success(request, "Cet enregistrement SOA a été ajouté")
|
||||
return redirect("/machines/index_extension")
|
||||
return redirect(reverse('machines:index-extension'))
|
||||
return form({'soaform': soa}, 'machines/machine.html', request)
|
||||
|
||||
@login_required
|
||||
|
@ -543,7 +580,7 @@ def edit_soa(request, soaid):
|
|||
soa_instance = SOA.objects.get(pk=soaid)
|
||||
except SOA.DoesNotExist:
|
||||
messages.error(request, u"Entrée inexistante" )
|
||||
return redirect("/machines/index_extension/")
|
||||
return redirect(reverse('machines:index-extension'))
|
||||
soa = SOAForm(request.POST or None, instance=soa_instance)
|
||||
if soa.is_valid():
|
||||
with transaction.atomic(), reversion.create_revision():
|
||||
|
@ -551,7 +588,7 @@ def edit_soa(request, soaid):
|
|||
reversion.set_user(request.user)
|
||||
reversion.set_comment("Champs modifié(s) : %s" % ', '.join(field for field in soa.changed_data))
|
||||
messages.success(request, "SOA modifié")
|
||||
return redirect("/machines/index_extension/")
|
||||
return redirect(reverse('machines:index-extension'))
|
||||
return form({'soaform': soa}, 'machines/machine.html', request)
|
||||
|
||||
@login_required
|
||||
|
@ -568,7 +605,7 @@ def del_soa(request):
|
|||
messages.success(request, "Le SOA a été supprimée")
|
||||
except ProtectedError:
|
||||
messages.error(request, "Erreur le SOA suivant %s ne peut être supprimé" % soa_del)
|
||||
return redirect("/machines/index_extension")
|
||||
return redirect(reverse('machines:index-extension'))
|
||||
return form({'soaform': soa}, 'machines/machine.html', request)
|
||||
|
||||
@login_required
|
||||
|
@ -581,7 +618,7 @@ def add_mx(request):
|
|||
reversion.set_user(request.user)
|
||||
reversion.set_comment("Création")
|
||||
messages.success(request, "Cet enregistrement mx a été ajouté")
|
||||
return redirect("/machines/index_extension")
|
||||
return redirect(reverse('machines:index-extension'))
|
||||
return form({'mxform': mx}, 'machines/machine.html', request)
|
||||
|
||||
@login_required
|
||||
|
@ -591,7 +628,7 @@ def edit_mx(request, mxid):
|
|||
mx_instance = Mx.objects.get(pk=mxid)
|
||||
except Mx.DoesNotExist:
|
||||
messages.error(request, u"Entrée inexistante" )
|
||||
return redirect("/machines/index_extension/")
|
||||
return redirect(reverse('machines:index-extension'))
|
||||
mx = MxForm(request.POST or None, instance=mx_instance)
|
||||
if mx.is_valid():
|
||||
with transaction.atomic(), reversion.create_revision():
|
||||
|
@ -599,7 +636,7 @@ def edit_mx(request, mxid):
|
|||
reversion.set_user(request.user)
|
||||
reversion.set_comment("Champs modifié(s) : %s" % ', '.join(field for field in mx.changed_data))
|
||||
messages.success(request, "Mx modifié")
|
||||
return redirect("/machines/index_extension/")
|
||||
return redirect(reverse('machines:index-extension'))
|
||||
return form({'mxform': mx}, 'machines/machine.html', request)
|
||||
|
||||
@login_required
|
||||
|
@ -616,7 +653,7 @@ def del_mx(request):
|
|||
messages.success(request, "L'mx a été supprimée")
|
||||
except ProtectedError:
|
||||
messages.error(request, "Erreur le Mx suivant %s ne peut être supprimé" % mx_del)
|
||||
return redirect("/machines/index_extension")
|
||||
return redirect(reverse('machines:index-extension'))
|
||||
return form({'mxform': mx}, 'machines/machine.html', request)
|
||||
|
||||
@login_required
|
||||
|
@ -629,7 +666,7 @@ def add_ns(request):
|
|||
reversion.set_user(request.user)
|
||||
reversion.set_comment("Création")
|
||||
messages.success(request, "Cet enregistrement ns a été ajouté")
|
||||
return redirect("/machines/index_extension")
|
||||
return redirect(reverse('machines:index-extension'))
|
||||
return form({'nsform': ns}, 'machines/machine.html', request)
|
||||
|
||||
@login_required
|
||||
|
@ -639,7 +676,7 @@ def edit_ns(request, nsid):
|
|||
ns_instance = Ns.objects.get(pk=nsid)
|
||||
except Ns.DoesNotExist:
|
||||
messages.error(request, u"Entrée inexistante" )
|
||||
return redirect("/machines/index_extension/")
|
||||
return redirect(reverse('machines:index-extension'))
|
||||
ns = NsForm(request.POST or None, instance=ns_instance)
|
||||
if ns.is_valid():
|
||||
with transaction.atomic(), reversion.create_revision():
|
||||
|
@ -647,7 +684,7 @@ def edit_ns(request, nsid):
|
|||
reversion.set_user(request.user)
|
||||
reversion.set_comment("Champs modifié(s) : %s" % ', '.join(field for field in ns.changed_data))
|
||||
messages.success(request, "Ns modifié")
|
||||
return redirect("/machines/index_extension/")
|
||||
return redirect(reverse('machines:index-extension'))
|
||||
return form({'nsform': ns}, 'machines/machine.html', request)
|
||||
|
||||
@login_required
|
||||
|
@ -664,7 +701,7 @@ def del_ns(request):
|
|||
messages.success(request, "Le ns a été supprimée")
|
||||
except ProtectedError:
|
||||
messages.error(request, "Erreur le Ns suivant %s ne peut être supprimé" % ns_del)
|
||||
return redirect("/machines/index_extension")
|
||||
return redirect(reverse('machines:index-extension'))
|
||||
return form({'nsform': ns}, 'machines/machine.html', request)
|
||||
|
||||
@login_required
|
||||
|
@ -677,7 +714,7 @@ def add_txt(request):
|
|||
reversion.set_user(request.user)
|
||||
reversion.set_comment("Création")
|
||||
messages.success(request, "Cet enregistrement text a été ajouté")
|
||||
return redirect("/machines/index_extension")
|
||||
return redirect(reverse('machines:index-extension'))
|
||||
return form({'txtform': txt}, 'machines/machine.html', request)
|
||||
|
||||
@login_required
|
||||
|
@ -687,7 +724,7 @@ def edit_txt(request, txtid):
|
|||
txt_instance = Text.objects.get(pk=txtid)
|
||||
except Text.DoesNotExist:
|
||||
messages.error(request, u"Entrée inexistante" )
|
||||
return redirect("/machines/index_extension/")
|
||||
return redirect(reverse('machines:index-extension'))
|
||||
txt = TxtForm(request.POST or None, instance=txt_instance)
|
||||
if txt.is_valid():
|
||||
with transaction.atomic(), reversion.create_revision():
|
||||
|
@ -695,7 +732,7 @@ def edit_txt(request, txtid):
|
|||
reversion.set_user(request.user)
|
||||
reversion.set_comment("Champs modifié(s) : %s" % ', '.join(field for field in txt.changed_data))
|
||||
messages.success(request, "Txt modifié")
|
||||
return redirect("/machines/index_extension/")
|
||||
return redirect(reverse('machines:index-extension'))
|
||||
return form({'txtform': txt}, 'machines/machine.html', request)
|
||||
|
||||
@login_required
|
||||
|
@ -712,7 +749,7 @@ def del_txt(request):
|
|||
messages.success(request, "Le txt a été supprimé")
|
||||
except ProtectedError:
|
||||
messages.error(request, "Erreur le Txt suivant %s ne peut être supprimé" % txt_del)
|
||||
return redirect("/machines/index_extension")
|
||||
return redirect(reverse('machines:index-extension'))
|
||||
return form({'txtform': txt}, 'machines/machine.html', request)
|
||||
|
||||
@login_required
|
||||
|
@ -721,16 +758,22 @@ def add_alias(request, interfaceid):
|
|||
interface = Interface.objects.get(pk=interfaceid)
|
||||
except Interface.DoesNotExist:
|
||||
messages.error(request, u"Interface inexistante" )
|
||||
return redirect("/machines")
|
||||
return redirect(reverse('machines:index'))
|
||||
if not request.user.has_perms(('cableur',)):
|
||||
options, created = OptionalMachine.objects.get_or_create()
|
||||
max_lambdauser_aliases = options.max_lambdauser_aliases
|
||||
if interface.machine.user != request.user:
|
||||
messages.error(request, "Vous ne pouvez pas ajouter un alias à une machine d'un autre user que vous sans droit")
|
||||
return redirect("/users/profil/" + str(request.user.id))
|
||||
return redirect(reverse(
|
||||
'users:profil',
|
||||
kwargs={'userid':str(request.user.id)}
|
||||
))
|
||||
if Domain.objects.filter(cname__in=Domain.objects.filter(interface_parent__in=interface.machine.user.user_interfaces())).count() >= max_lambdauser_aliases:
|
||||
messages.error(request, "Vous avez atteint le maximum d'alias autorisées que vous pouvez créer vous même (%s) " % max_lambdauser_aliases)
|
||||
return redirect("/users/profil/" + str(request.user.id))
|
||||
return redirect(reverse(
|
||||
'users:profil',
|
||||
kwargs={'userid':str(request.user.id)}
|
||||
))
|
||||
alias = AliasForm(request.POST or None, infra=request.user.has_perms(('infra',)))
|
||||
if alias.is_valid():
|
||||
alias = alias.save(commit=False)
|
||||
|
@ -740,7 +783,10 @@ def add_alias(request, interfaceid):
|
|||
reversion.set_user(request.user)
|
||||
reversion.set_comment("Création")
|
||||
messages.success(request, "Cet alias a été ajouté")
|
||||
return redirect("/machines/index_alias/" + str(interfaceid))
|
||||
return redirect(reverse(
|
||||
'machines:index-alias',
|
||||
kwargs={'interfaceid':str(interfaceid)}
|
||||
))
|
||||
return form({'aliasform': alias}, 'machines/machine.html', request)
|
||||
|
||||
@login_required
|
||||
|
@ -749,10 +795,13 @@ def edit_alias(request, aliasid):
|
|||
alias_instance = Domain.objects.get(pk=aliasid)
|
||||
except Domain.DoesNotExist:
|
||||
messages.error(request, u"Entrée inexistante" )
|
||||
return redirect("/machines/index_extension/")
|
||||
return redirect(reverse('machines:index-extension'))
|
||||
if not request.user.has_perms(('cableur',)) and alias_instance.cname.interface_parent.machine.user != request.user:
|
||||
messages.error(request, "Vous ne pouvez pas ajouter un alias à une machine d'un autre user que vous sans droit")
|
||||
return redirect("/users/profil/" + str(request.user.id))
|
||||
return redirect(reverse(
|
||||
'users:profil',
|
||||
kwargs={'userid':str(request.user.id)}
|
||||
))
|
||||
alias = AliasForm(request.POST or None, instance=alias_instance, infra=request.user.has_perms(('infra',)))
|
||||
if alias.is_valid():
|
||||
with transaction.atomic(), reversion.create_revision():
|
||||
|
@ -760,7 +809,10 @@ def edit_alias(request, aliasid):
|
|||
reversion.set_user(request.user)
|
||||
reversion.set_comment("Champs modifié(s) : %s" % ', '.join(field for field in alias.changed_data))
|
||||
messages.success(request, "Alias modifié")
|
||||
return redirect("/machines/index_alias/" + str(alias_instance.cname.interface_parent.id))
|
||||
return redirect(reverse(
|
||||
'machines:index-alias',
|
||||
kwargs={'interfaceid':str(alias_instance.cname.interface_parent.id)}
|
||||
))
|
||||
return form({'aliasform': alias}, 'machines/machine.html', request)
|
||||
|
||||
@login_required
|
||||
|
@ -769,10 +821,13 @@ def del_alias(request, interfaceid):
|
|||
interface = Interface.objects.get(pk=interfaceid)
|
||||
except Interface.DoesNotExist:
|
||||
messages.error(request, u"Interface inexistante" )
|
||||
return redirect("/machines")
|
||||
return redirect(reverse('machines:index'))
|
||||
if not request.user.has_perms(('cableur',)) and interface.machine.user != request.user:
|
||||
messages.error(request, "Vous ne pouvez pas ajouter un alias à une machine d'un autre user que vous sans droit")
|
||||
return redirect("/users/profil/" + str(request.user.id))
|
||||
return redirect(reverse(
|
||||
'users:profil',
|
||||
kwargs={'userid':str(request.user.id)}
|
||||
))
|
||||
alias = DelAliasForm(request.POST or None, interface=interface)
|
||||
if alias.is_valid():
|
||||
alias_dels = alias.cleaned_data['alias']
|
||||
|
@ -784,7 +839,10 @@ def del_alias(request, interfaceid):
|
|||
messages.success(request, "L'alias %s a été supprimé" % alias_del)
|
||||
except ProtectedError:
|
||||
messages.error(request, "Erreur l'alias suivant %s ne peut être supprimé" % alias_del)
|
||||
return redirect("/machines/index_alias/" + str(interfaceid))
|
||||
return redirect(reverse(
|
||||
'machines:index-alias',
|
||||
kwargs={'interfaceid':str(interfaceid)}
|
||||
))
|
||||
return form({'aliasform': alias}, 'machines/machine.html', request)
|
||||
|
||||
|
||||
|
@ -798,7 +856,7 @@ def add_service(request):
|
|||
reversion.set_user(request.user)
|
||||
reversion.set_comment("Création")
|
||||
messages.success(request, "Cet enregistrement service a été ajouté")
|
||||
return redirect("/machines/index_service")
|
||||
return redirect(reverse('machines:index-service'))
|
||||
return form({'serviceform': service}, 'machines/machine.html', request)
|
||||
|
||||
@login_required
|
||||
|
@ -808,7 +866,7 @@ def edit_service(request, serviceid):
|
|||
service_instance = Service.objects.get(pk=serviceid)
|
||||
except Ns.DoesNotExist:
|
||||
messages.error(request, u"Entrée inexistante" )
|
||||
return redirect("/machines/index_extension/")
|
||||
return redirect(reverse('machines:index-extension'))
|
||||
service = ServiceForm(request.POST or None, instance=service_instance)
|
||||
if service.is_valid():
|
||||
with transaction.atomic(), reversion.create_revision():
|
||||
|
@ -816,7 +874,7 @@ def edit_service(request, serviceid):
|
|||
reversion.set_user(request.user)
|
||||
reversion.set_comment("Champs modifié(s) : %s" % ', '.join(field for field in service.changed_data))
|
||||
messages.success(request, "Service modifié")
|
||||
return redirect("/machines/index_service/")
|
||||
return redirect(reverse('machines:index-service'))
|
||||
return form({'serviceform': service}, 'machines/machine.html', request)
|
||||
|
||||
@login_required
|
||||
|
@ -833,7 +891,7 @@ def del_service(request):
|
|||
messages.success(request, "Le service a été supprimée")
|
||||
except ProtectedError:
|
||||
messages.error(request, "Erreur le service suivant %s ne peut être supprimé" % service_del)
|
||||
return redirect("/machines/index_service")
|
||||
return redirect(reverse('machines:index-service'))
|
||||
return form({'serviceform': service}, 'machines/machine.html', request)
|
||||
|
||||
@login_required
|
||||
|
@ -846,7 +904,7 @@ def add_vlan(request):
|
|||
reversion.set_user(request.user)
|
||||
reversion.set_comment("Création")
|
||||
messages.success(request, "Cet enregistrement vlan a été ajouté")
|
||||
return redirect("/machines/index_vlan")
|
||||
return redirect(reverse('machines:index-vlan'))
|
||||
return form({'vlanform': vlan}, 'machines/machine.html', request)
|
||||
|
||||
@login_required
|
||||
|
@ -856,7 +914,7 @@ def edit_vlan(request, vlanid):
|
|||
vlan_instance = Vlan.objects.get(pk=vlanid)
|
||||
except Vlan.DoesNotExist:
|
||||
messages.error(request, u"Entrée inexistante" )
|
||||
return redirect("/machines/index_vlan/")
|
||||
return redirect(reverse('machines:index-vlan'))
|
||||
vlan = VlanForm(request.POST or None, instance=vlan_instance)
|
||||
if vlan.is_valid():
|
||||
with transaction.atomic(), reversion.create_revision():
|
||||
|
@ -864,7 +922,7 @@ def edit_vlan(request, vlanid):
|
|||
reversion.set_user(request.user)
|
||||
reversion.set_comment("Champs modifié(s) : %s" % ', '.join(field for field in vlan.changed_data))
|
||||
messages.success(request, "Vlan modifié")
|
||||
return redirect("/machines/index_vlan/")
|
||||
return redirect(reverse('machines:index-vlan'))
|
||||
return form({'vlanform': vlan}, 'machines/machine.html', request)
|
||||
|
||||
@login_required
|
||||
|
@ -881,7 +939,7 @@ def del_vlan(request):
|
|||
messages.success(request, "Le vlan a été supprimée")
|
||||
except ProtectedError:
|
||||
messages.error(request, "Erreur le Vlan suivant %s ne peut être supprimé" % vlan_del)
|
||||
return redirect("/machines/index_vlan")
|
||||
return redirect(reverse('machines:index-vlan'))
|
||||
return form({'vlanform': vlan}, 'machines/machine.html', request)
|
||||
|
||||
@login_required
|
||||
|
@ -894,7 +952,7 @@ def add_nas(request):
|
|||
reversion.set_user(request.user)
|
||||
reversion.set_comment("Création")
|
||||
messages.success(request, "Cet enregistrement nas a été ajouté")
|
||||
return redirect("/machines/index_nas")
|
||||
return redirect(reverse('machines:index-nas'))
|
||||
return form({'nasform': nas}, 'machines/machine.html', request)
|
||||
|
||||
@login_required
|
||||
|
@ -904,7 +962,7 @@ def edit_nas(request, nasid):
|
|||
nas_instance = Nas.objects.get(pk=nasid)
|
||||
except Nas.DoesNotExist:
|
||||
messages.error(request, u"Entrée inexistante" )
|
||||
return redirect("/machines/index_nas/")
|
||||
return redirect(reverse('machines:index-nas'))
|
||||
nas = NasForm(request.POST or None, instance=nas_instance)
|
||||
if nas.is_valid():
|
||||
with transaction.atomic(), reversion.create_revision():
|
||||
|
@ -912,7 +970,7 @@ def edit_nas(request, nasid):
|
|||
reversion.set_user(request.user)
|
||||
reversion.set_comment("Champs modifié(s) : %s" % ', '.join(field for field in nas.changed_data))
|
||||
messages.success(request, "Nas modifié")
|
||||
return redirect("/machines/index_nas/")
|
||||
return redirect(reverse('machines:index-nas'))
|
||||
return form({'nasform': nas}, 'machines/machine.html', request)
|
||||
|
||||
@login_required
|
||||
|
@ -929,7 +987,7 @@ def del_nas(request):
|
|||
messages.success(request, "Le nas a été supprimé")
|
||||
except ProtectedError:
|
||||
messages.error(request, "Erreur le Nas suivant %s ne peut être supprimé" % nas_del)
|
||||
return redirect("/machines/index_nas")
|
||||
return redirect(reverse('machines:index-nas'))
|
||||
return form({'nasform': nas}, 'machines/machine.html', request)
|
||||
|
||||
@login_required
|
||||
|
@ -996,10 +1054,13 @@ def index_alias(request, interfaceid):
|
|||
interface = Interface.objects.get(pk=interfaceid)
|
||||
except Interface.DoesNotExist:
|
||||
messages.error(request, u"Interface inexistante" )
|
||||
return redirect("/machines")
|
||||
return redirect(reverse('machines:index'))
|
||||
if not request.user.has_perms(('cableur',)) and interface.machine.user != request.user:
|
||||
messages.error(request, "Vous ne pouvez pas éditer une machine d'un autre user que vous sans droit")
|
||||
return redirect("/users/profil/" + str(request.user.id))
|
||||
return redirect(reverse(
|
||||
'users:profil',
|
||||
kwargs={'userid':str(request.user.id)}
|
||||
))
|
||||
alias_list = Domain.objects.filter(cname=Domain.objects.filter(interface_parent=interface)).order_by('name')
|
||||
return render(request, 'machines/index_alias.html', {'alias_list':alias_list, 'interface_id': interfaceid})
|
||||
|
||||
|
@ -1014,94 +1075,103 @@ def index_service(request):
|
|||
def history(request, object, id):
|
||||
if object == 'machine':
|
||||
try:
|
||||
object_instance = Machine.objects.get(pk=id)
|
||||
object_instance = Machine.objects.get(pk=id)
|
||||
except Machine.DoesNotExist:
|
||||
messages.error(request, "Machine inexistante")
|
||||
return redirect("/machines/")
|
||||
messages.error(request, "Machine inexistante")
|
||||
return redirect(reverse('machines:index'))
|
||||
if not request.user.has_perms(('cableur',)) and object_instance.user != request.user:
|
||||
messages.error(request, "Vous ne pouvez pas afficher l'historique d'une machine d'un autre user que vous sans droit cableur")
|
||||
return redirect("/users/profil/" + str(request.user.id))
|
||||
messages.error(request, "Vous ne pouvez pas afficher l'historique d'une machine d'un autre user que vous sans droit cableur")
|
||||
return redirect(reverse(
|
||||
'users:profil',
|
||||
kwargs={'userid':str(request.user.id)}
|
||||
))
|
||||
elif object == 'interface':
|
||||
try:
|
||||
object_instance = Interface.objects.get(pk=id)
|
||||
object_instance = Interface.objects.get(pk=id)
|
||||
except Interface.DoesNotExist:
|
||||
messages.error(request, "Interface inexistante")
|
||||
return redirect("/machines/")
|
||||
messages.error(request, "Interface inexistante")
|
||||
return redirect(reverse('machines:index'))
|
||||
if not request.user.has_perms(('cableur',)) and object_instance.machine.user != request.user:
|
||||
messages.error(request, "Vous ne pouvez pas afficher l'historique d'une interface d'un autre user que vous sans droit cableur")
|
||||
return redirect("/users/profil/" + str(request.user.id))
|
||||
messages.error(request, "Vous ne pouvez pas afficher l'historique d'une interface d'un autre user que vous sans droit cableur")
|
||||
return redirect(reverse(
|
||||
'users:profil',
|
||||
kwargs={'userid':str(request.user.id)}
|
||||
))
|
||||
elif object == 'alias':
|
||||
try:
|
||||
object_instance = Domain.objects.get(pk=id)
|
||||
object_instance = Domain.objects.get(pk=id)
|
||||
except Domain.DoesNotExist:
|
||||
messages.error(request, "Alias inexistant")
|
||||
return redirect("/machines/")
|
||||
messages.error(request, "Alias inexistant")
|
||||
return redirect(reverse('machines:index'))
|
||||
if not request.user.has_perms(('cableur',)) and object_instance.cname.interface_parent.machine.user != request.user:
|
||||
messages.error(request, "Vous ne pouvez pas afficher l'historique d'un alias d'un autre user que vous sans droit cableur")
|
||||
return redirect("/users/profil/" + str(request.user.id))
|
||||
messages.error(request, "Vous ne pouvez pas afficher l'historique d'un alias d'un autre user que vous sans droit cableur")
|
||||
return redirect(reverse(
|
||||
'users:profil',
|
||||
kwargs={'userid':str(request.user.id)}
|
||||
))
|
||||
elif object == 'machinetype' and request.user.has_perms(('cableur',)):
|
||||
try:
|
||||
object_instance = MachineType.objects.get(pk=id)
|
||||
except MachineType.DoesNotExist:
|
||||
messages.error(request, "Type de machine inexistant")
|
||||
return redirect("/machines/")
|
||||
return redirect(reverse('machines:index'))
|
||||
elif object == 'iptype' and request.user.has_perms(('cableur',)):
|
||||
try:
|
||||
object_instance = IpType.objects.get(pk=id)
|
||||
except IpType.DoesNotExist:
|
||||
messages.error(request, "Type d'ip inexistant")
|
||||
return redirect("/machines/")
|
||||
return redirect(reverse('machines:index'))
|
||||
elif object == 'extension' and request.user.has_perms(('cableur',)):
|
||||
try:
|
||||
object_instance = Extension.objects.get(pk=id)
|
||||
except Extension.DoesNotExist:
|
||||
messages.error(request, "Extension inexistante")
|
||||
return redirect("/machines/")
|
||||
return redirect(reverse('machines:index'))
|
||||
elif object == 'soa' and request.user.has_perms(('cableur',)):
|
||||
try:
|
||||
object_instance = SOA.objects.get(pk=id)
|
||||
except SOA.DoesNotExist:
|
||||
messages.error(request, "SOA inexistant")
|
||||
return redirect("/machines/")
|
||||
return redirect(reverse('machines:index'))
|
||||
elif object == 'mx' and request.user.has_perms(('cableur',)):
|
||||
try:
|
||||
object_instance = Mx.objects.get(pk=id)
|
||||
except Mx.DoesNotExist:
|
||||
messages.error(request, "Mx inexistant")
|
||||
return redirect("/machines/")
|
||||
return redirect(reverse('machines:index'))
|
||||
elif object == 'txt' and request.user.has_perms(('cableur',)):
|
||||
try:
|
||||
object_instance = Text.objects.get(pk=id)
|
||||
except Text.DoesNotExist:
|
||||
messages.error(request, "Txt inexistant")
|
||||
return redirect("/machines/")
|
||||
return redirect(reverse('machines:index'))
|
||||
elif object == 'ns' and request.user.has_perms(('cableur',)):
|
||||
try:
|
||||
object_instance = Ns.objects.get(pk=id)
|
||||
except Ns.DoesNotExist:
|
||||
messages.error(request, "Ns inexistant")
|
||||
return redirect("/machines/")
|
||||
return redirect(reverse('machines:index'))
|
||||
elif object == 'service' and request.user.has_perms(('cableur',)):
|
||||
try:
|
||||
object_instance = Service.objects.get(pk=id)
|
||||
except Service.DoesNotExist:
|
||||
messages.error(request, "Service inexistant")
|
||||
return redirect("/machines/")
|
||||
return redirect(reverse('machines:index'))
|
||||
elif object == 'vlan' and request.user.has_perms(('cableur',)):
|
||||
try:
|
||||
object_instance = Vlan.objects.get(pk=id)
|
||||
except Vlan.DoesNotExist:
|
||||
messages.error(request, "Vlan inexistant")
|
||||
return redirect("/machines/")
|
||||
return redirect(reverse('machines:index'))
|
||||
elif object == 'nas' and request.user.has_perms(('cableur',)):
|
||||
try:
|
||||
object_instance = Nas.objects.get(pk=id)
|
||||
except Nas.DoesNotExist:
|
||||
messages.error(request, "Nas inexistant")
|
||||
return redirect("/machines/")
|
||||
return redirect(reverse('machines:index'))
|
||||
else:
|
||||
messages.error(request, "Objet inconnu")
|
||||
return redirect("/machines/")
|
||||
return redirect(reverse('machines:index'))
|
||||
options, created = GeneralOption.objects.get_or_create()
|
||||
pagination_number = options.pagination_number
|
||||
reversions = Version.objects.get_for_object(object_instance)
|
||||
|
@ -1133,7 +1203,7 @@ def edit_portlist(request, pk):
|
|||
port_list_instance = OuverturePortList.objects.get(pk=pk)
|
||||
except OuverturePortList.DoesNotExist:
|
||||
messages.error(request, "Liste de ports inexistante")
|
||||
return redirect("/machines/index_portlist/")
|
||||
return redirect(reverse('machines:index-portlist'))
|
||||
port_list = EditOuverturePortListForm(request.POST or None, instance=port_list_instance)
|
||||
port_formset = modelformset_factory(
|
||||
OuverturePort,
|
||||
|
@ -1152,7 +1222,7 @@ def edit_portlist(request, pk):
|
|||
port.port_list = pl
|
||||
port.save()
|
||||
messages.success(request, "Liste de ports modifiée")
|
||||
return redirect("/machines/index_portlist/")
|
||||
return redirect(reverse('machines:index-portlist'))
|
||||
return form({'port_list' : port_list, 'ports' : port_formset}, 'machines/edit_portlist.html', request)
|
||||
|
||||
@login_required
|
||||
|
@ -1162,13 +1232,13 @@ def del_portlist(request, pk):
|
|||
port_list_instance = OuverturePortList.objects.get(pk=pk)
|
||||
except OuverturePortList.DoesNotExist:
|
||||
messages.error(request, "Liste de ports inexistante")
|
||||
return redirect("/machines/index_portlist/")
|
||||
return redirect(reverse('machines:index-portlist'))
|
||||
if port_list_instance.interface_set.all():
|
||||
messages.error(request, "Cette liste de ports est utilisée")
|
||||
return redirect("/machines/index_portlist/")
|
||||
return redirect(reverse('machines:index-portlist'))
|
||||
port_list_instance.delete()
|
||||
messages.success(request, "La liste de ports a été supprimée")
|
||||
return redirect("/machines/index_portlist/")
|
||||
return redirect(reverse('machines:index-portlist'))
|
||||
|
||||
@login_required
|
||||
@permission_required('bureau')
|
||||
|
@ -1191,13 +1261,13 @@ def add_portlist(request):
|
|||
port.port_list = pl
|
||||
port.save()
|
||||
messages.success(request, "Liste de ports créée")
|
||||
return redirect("/machines/index_portlist/")
|
||||
return redirect(reverse('machines:index-portlist'))
|
||||
return form({'port_list' : port_list, 'ports' : port_formset}, 'machines/edit_portlist.html', request)
|
||||
port_list = EditOuverturePortListForm(request.POST or None)
|
||||
if port_list.is_valid():
|
||||
port_list.save()
|
||||
messages.success(request, "Liste de ports créée")
|
||||
return redirect("/machines/index_portlist/")
|
||||
return redirect(reverse('machines:index-portlist'))
|
||||
return form({'machineform' : port_list}, 'machines/machine.html', request)
|
||||
|
||||
@login_required
|
||||
|
@ -1207,14 +1277,14 @@ def configure_ports(request, pk):
|
|||
interface_instance = Interface.objects.get(pk=pk)
|
||||
except Interface.DoesNotExist:
|
||||
messages.error(request, u"Interface inexistante" )
|
||||
return redirect("/machines")
|
||||
return redirect(reverse('machines:index'))
|
||||
if not interface_instance.may_have_port_open():
|
||||
messages.error(request, "Attention, l'ipv4 n'est pas publique, l'ouverture n'aura pas d'effet en v4")
|
||||
interface = EditOuverturePortConfigForm(request.POST or None, instance=interface_instance)
|
||||
if interface.is_valid():
|
||||
interface.save()
|
||||
messages.success(request, "Configuration des ports mise à jour.")
|
||||
return redirect("/machines/")
|
||||
return redirect(reverse('machines:index'))
|
||||
return form({'interfaceform' : interface}, 'machines/machine.html', request)
|
||||
|
||||
""" Framework Rest """
|
||||
|
|
|
@ -30,6 +30,7 @@ topologie, users, service...)
|
|||
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.urls import reverse
|
||||
from django.shortcuts import render, redirect
|
||||
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
|
||||
from django.contrib import messages
|
||||
|
@ -93,7 +94,7 @@ def edit_options(request, section):
|
|||
)
|
||||
)
|
||||
messages.success(request, "Préférences modifiées")
|
||||
return redirect("/preferences/")
|
||||
return redirect(reverse('preferences:display-options'))
|
||||
return form(
|
||||
{'options': options},
|
||||
'preferences/edit_preferences.html',
|
||||
|
@ -101,7 +102,7 @@ def edit_options(request, section):
|
|||
)
|
||||
else:
|
||||
messages.error(request, "Objet inconnu")
|
||||
return redirect("/preferences/")
|
||||
return redirect(reverse('preferences:display-options'))
|
||||
|
||||
|
||||
@login_required
|
||||
|
@ -115,7 +116,7 @@ def add_services(request):
|
|||
reversion.set_user(request.user)
|
||||
reversion.set_comment("Création")
|
||||
messages.success(request, "Cet enregistrement ns a été ajouté")
|
||||
return redirect("/preferences/")
|
||||
return redirect(reverse('preferences:display-options'))
|
||||
return form(
|
||||
{'preferenceform': services},
|
||||
'preferences/preferences.html',
|
||||
|
@ -131,7 +132,7 @@ def edit_services(request, servicesid):
|
|||
services_instance = Service.objects.get(pk=servicesid)
|
||||
except Service.DoesNotExist:
|
||||
messages.error(request, u"Entrée inexistante")
|
||||
return redirect("/preferences/")
|
||||
return redirect(reverse('preferences:display-options'))
|
||||
services = ServiceForm(request.POST or None, instance=services_instance)
|
||||
if services.is_valid():
|
||||
with transaction.atomic(), reversion.create_revision():
|
||||
|
@ -143,7 +144,7 @@ def edit_services(request, servicesid):
|
|||
)
|
||||
)
|
||||
messages.success(request, "Service modifié")
|
||||
return redirect("/preferences/")
|
||||
return redirect(reverse('preferences:display-options'))
|
||||
return form(
|
||||
{'preferenceform': services},
|
||||
'preferences/preferences.html',
|
||||
|
@ -167,7 +168,7 @@ def del_services(request):
|
|||
except ProtectedError:
|
||||
messages.error(request, "Erreur le service\
|
||||
suivant %s ne peut être supprimé" % services_del)
|
||||
return redirect("/preferences/")
|
||||
return redirect(reverse('preferences:display-options'))
|
||||
return form(
|
||||
{'preferenceform': services},
|
||||
'preferences/preferences.html',
|
||||
|
@ -185,7 +186,7 @@ def history(request, object_name, object_id):
|
|||
object_instance = Service.objects.get(pk=object_id)
|
||||
except Service.DoesNotExist:
|
||||
messages.error(request, "Service inexistant")
|
||||
return redirect("/preferences/")
|
||||
return redirect(reverse('preferences:display-options'))
|
||||
options, _created = GeneralOption.objects.get_or_create()
|
||||
pagination_number = options.pagination_number
|
||||
reversions = Version.objects.get_for_object(object_instance)
|
||||
|
|
|
@ -34,7 +34,7 @@ from __future__ import unicode_literals
|
|||
|
||||
from machines.models import Interface
|
||||
from django import forms
|
||||
from django.forms import ModelForm
|
||||
from django.forms import ModelForm, Form
|
||||
from .models import Port, Switch, Room, Stack, ModelSwitch, ConstructorSwitch
|
||||
|
||||
|
||||
|
|
|
@ -37,10 +37,15 @@ la prise
|
|||
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import itertools
|
||||
|
||||
from django.db import models
|
||||
from django.db.models.signals import post_delete
|
||||
from django.dispatch import receiver
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.db import IntegrityError
|
||||
from django.db import transaction
|
||||
from reversion import revisions as reversion
|
||||
|
||||
|
||||
class Stack(models.Model):
|
||||
|
@ -125,6 +130,32 @@ class Switch(models.Model):
|
|||
else:
|
||||
raise ValidationError({'stack_member_id': "L'id dans la stack\
|
||||
ne peut être nul"})
|
||||
def create_ports(self, begin, end):
|
||||
""" Crée les ports de begin à end si les valeurs données sont cohérentes. """
|
||||
|
||||
s_begin = s_end = 0
|
||||
nb_ports = self.ports.count()
|
||||
if nb_ports > 0:
|
||||
ports = self.ports.order_by('port').values('port')
|
||||
s_begin = ports.first().get('port')
|
||||
s_end = ports.last().get('port')
|
||||
|
||||
if end < begin:
|
||||
raise ValidationError("Port de fin inférieur au port de début !")
|
||||
if end - begin > self.number:
|
||||
raise ValidationError("Ce switch ne peut avoir autant de ports.")
|
||||
begin_range = range(begin, s_begin)
|
||||
end_range = range(s_end+1, end+1)
|
||||
for i in itertools.chain(begin_range, end_range):
|
||||
port = Port()
|
||||
port.switch = self
|
||||
port.port = i
|
||||
try:
|
||||
with transaction.atomic(), reversion.create_revision():
|
||||
port.save()
|
||||
reversion.set_comment("Création")
|
||||
except IntegrityError:
|
||||
ValidationError("Création d'un port existant.")
|
||||
|
||||
|
||||
class ModelSwitch(models.Model):
|
||||
|
|
|
@ -35,14 +35,14 @@ coté models et forms de topologie
|
|||
"""
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import itertools
|
||||
|
||||
from django.urls import reverse
|
||||
from django.shortcuts import render, redirect
|
||||
from django.contrib import messages
|
||||
from django.contrib.auth.decorators import login_required, permission_required
|
||||
from django.db import IntegrityError
|
||||
from django.db import transaction
|
||||
from django.db.models import ProtectedError
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
|
||||
from reversion import revisions as reversion
|
||||
from reversion.models import Version
|
||||
|
@ -118,40 +118,40 @@ def history(request, object_name, object_id):
|
|||
object_instance = Switch.objects.get(pk=object_id)
|
||||
except Switch.DoesNotExist:
|
||||
messages.error(request, "Switch inexistant")
|
||||
return redirect("/topologie/")
|
||||
return redirect(reverse('topologie:index'))
|
||||
elif object_name == 'port':
|
||||
try:
|
||||
object_instance = Port.objects.get(pk=object_id)
|
||||
except Port.DoesNotExist:
|
||||
messages.error(request, "Port inexistant")
|
||||
return redirect("/topologie/")
|
||||
return redirect(reverse('topologie:index'))
|
||||
elif object_name == 'room':
|
||||
try:
|
||||
object_instance = Room.objects.get(pk=object_id)
|
||||
except Room.DoesNotExist:
|
||||
messages.error(request, "Chambre inexistante")
|
||||
return redirect("/topologie/")
|
||||
return redirect(reverse('topologie:index'))
|
||||
elif object_name == 'stack':
|
||||
try:
|
||||
object_instance = Stack.objects.get(pk=object_id)
|
||||
except Room.DoesNotExist:
|
||||
messages.error(request, "Stack inexistante")
|
||||
return redirect("/topologie/")
|
||||
return redirect(reverse('topologie:index'))
|
||||
elif object_name == 'model_switch':
|
||||
try:
|
||||
object_instance = ModelSwitch.objects.get(pk=object_id)
|
||||
except ModelSwitch.DoesNotExist:
|
||||
messages.error(request, "SwitchModel inexistant")
|
||||
return redirect("/topologie/")
|
||||
return redirect(reverse('topologie:index'))
|
||||
elif object_name == 'constructor_switch':
|
||||
try:
|
||||
object_instance = ConstructorSwitch.objects.get(pk=object_id)
|
||||
except ConstructorSwitch.DoesNotExist:
|
||||
messages.error(request, "SwitchConstructor inexistant")
|
||||
return redirect("/topologie/")
|
||||
return redirect(reverse('topologie:index'))
|
||||
else:
|
||||
messages.error(request, "Objet inconnu")
|
||||
return redirect("/topologie/")
|
||||
return redirect(reverse('topologie:index'))
|
||||
options, _created = GeneralOption.objects.get_or_create()
|
||||
pagination_number = options.pagination_number
|
||||
reversions = Version.objects.get_for_object(object_instance)
|
||||
|
@ -179,7 +179,7 @@ def index_port(request, switch_id):
|
|||
switch = Switch.objects.get(pk=switch_id)
|
||||
except Switch.DoesNotExist:
|
||||
messages.error(request, u"Switch inexistant")
|
||||
return redirect("/topologie/")
|
||||
return redirect(reverse('topologie:index'))
|
||||
port_list = Port.objects.filter(switch=switch)\
|
||||
.select_related('room')\
|
||||
.select_related('machine_interface__domain__extension')\
|
||||
|
@ -278,7 +278,7 @@ def new_port(request, switch_id):
|
|||
switch = Switch.objects.get(pk=switch_id)
|
||||
except Switch.DoesNotExist:
|
||||
messages.error(request, u"Switch inexistant")
|
||||
return redirect("/topologie/")
|
||||
return redirect(reverse('topologie:index'))
|
||||
port = AddPortForm(request.POST or None)
|
||||
if port.is_valid():
|
||||
port = port.save(commit=False)
|
||||
|
@ -291,7 +291,10 @@ def new_port(request, switch_id):
|
|||
messages.success(request, "Port ajouté")
|
||||
except IntegrityError:
|
||||
messages.error(request, "Ce port existe déjà")
|
||||
return redirect("/topologie/switch/" + switch_id)
|
||||
return redirect(reverse(
|
||||
'topologie:index-port',
|
||||
kwargs={'switch_id':switch_id}
|
||||
))
|
||||
return form({'topoform': port}, 'topologie/topo.html', request)
|
||||
|
||||
|
||||
|
@ -310,7 +313,7 @@ def edit_port(request, port_id):
|
|||
.get(pk=port_id)
|
||||
except Port.DoesNotExist:
|
||||
messages.error(request, u"Port inexistant")
|
||||
return redirect("/topologie/")
|
||||
return redirect(reverse('topologie:index'))
|
||||
port = EditPortForm(request.POST or None, instance=port_object)
|
||||
if port.is_valid():
|
||||
with transaction.atomic(), reversion.create_revision():
|
||||
|
@ -320,7 +323,10 @@ def edit_port(request, port_id):
|
|||
field for field in port.changed_data
|
||||
))
|
||||
messages.success(request, "Le port a bien été modifié")
|
||||
return redirect("/topologie/switch/" + str(port_object.switch.id))
|
||||
return redirect(reverse(
|
||||
'topologie:index-port',
|
||||
kwargs={'switch_id': str(port_object.switch.id)}
|
||||
))
|
||||
return form({'topoform': port}, 'topologie/topo.html', request)
|
||||
|
||||
|
||||
|
@ -332,7 +338,7 @@ def del_port(request, port_id):
|
|||
port = Port.objects.get(pk=port_id)
|
||||
except Port.DoesNotExist:
|
||||
messages.error(request, u"Port inexistant")
|
||||
return redirect('/topologie/')
|
||||
return redirect(reverse('topologie:index'))
|
||||
if request.method == "POST":
|
||||
try:
|
||||
with transaction.atomic(), reversion.create_revision():
|
||||
|
@ -343,7 +349,10 @@ def del_port(request, port_id):
|
|||
except ProtectedError:
|
||||
messages.error(request, "Le port %s est affecté à un autre objet,\
|
||||
impossible de le supprimer" % port)
|
||||
return redirect('/topologie/switch/' + str(port.switch.id))
|
||||
return redirect(reverse(
|
||||
'topologie:index-port',
|
||||
kwargs={'switch_id':str(port.switch.id)}
|
||||
))
|
||||
return form({'objet': port}, 'topologie/delete.html', request)
|
||||
|
||||
|
||||
|
@ -369,7 +378,7 @@ def edit_stack(request, stack_id):
|
|||
stack = Stack.objects.get(pk=stack_id)
|
||||
except Stack.DoesNotExist:
|
||||
messages.error(request, u"Stack inexistante")
|
||||
return redirect('/topologie/index_stack/')
|
||||
return redirect(reverse('topologie:index-stack'))
|
||||
stack = StackForm(request.POST or None, instance=stack)
|
||||
if stack.is_valid():
|
||||
with transaction.atomic(), reversion.create_revision():
|
||||
|
@ -380,7 +389,7 @@ def edit_stack(request, stack_id):
|
|||
field for field in stack.changed_data
|
||||
)
|
||||
)
|
||||
return redirect('/topologie/index_stack')
|
||||
return redirect(reverse('topologie:index-stack'))
|
||||
return form({'topoform': stack}, 'topologie/topo.html', request)
|
||||
|
||||
|
||||
|
@ -392,7 +401,7 @@ def del_stack(request, stack_id):
|
|||
stack = Stack.objects.get(pk=stack_id)
|
||||
except Stack.DoesNotExist:
|
||||
messages.error(request, u"Stack inexistante")
|
||||
return redirect('/topologie/index_stack')
|
||||
return redirect(reverse('topologie:index-stack'))
|
||||
if request.method == "POST":
|
||||
try:
|
||||
with transaction.atomic(), reversion.create_revision():
|
||||
|
@ -403,7 +412,7 @@ def del_stack(request, stack_id):
|
|||
except ProtectedError:
|
||||
messages.error(request, "La stack %s est affectée à un autre\
|
||||
objet, impossible de la supprimer" % stack)
|
||||
return redirect('/topologie/index_stack')
|
||||
return redirect(reverse('topologie:index-stack'))
|
||||
return form({'objet': stack}, 'topologie/delete.html', request)
|
||||
|
||||
|
||||
|
@ -415,7 +424,7 @@ def edit_switchs_stack(request, stack_id):
|
|||
stack = Stack.objects.get(pk=stack_id)
|
||||
except Stack.DoesNotExist:
|
||||
messages.error(request, u"Stack inexistante")
|
||||
return redirect('/topologie/index_stack')
|
||||
return redirect(reverse('topologie:index-stack'))
|
||||
if request.method == "POST":
|
||||
pass
|
||||
else:
|
||||
|
@ -445,7 +454,7 @@ def new_switch(request):
|
|||
if not user:
|
||||
messages.error(request, "L'user association n'existe pas encore,\
|
||||
veuillez le créer ou le linker dans preferences")
|
||||
return redirect("/topologie/")
|
||||
return redirect(reverse('topologie:index'))
|
||||
new_machine = machine.save(commit=False)
|
||||
new_machine.user = user
|
||||
new_interface = interface.save(commit=False)
|
||||
|
@ -471,8 +480,8 @@ def new_switch(request):
|
|||
reversion.set_user(request.user)
|
||||
reversion.set_comment("Création")
|
||||
messages.success(request, "Le switch a été créé")
|
||||
return redirect("/topologie/")
|
||||
i_mbf_param = generate_ipv4_mbf_param(interface, False)
|
||||
return redirect(reverse('topologie:index'))
|
||||
i_mbf_param = generate_ipv4_mbf_param( interface, False)
|
||||
return form({
|
||||
'topoform': switch,
|
||||
'machineform': machine,
|
||||
|
@ -491,42 +500,28 @@ def create_ports(request, switch_id):
|
|||
except Switch.DoesNotExist:
|
||||
messages.error(request, u"Switch inexistant")
|
||||
return redirect("/topologie/")
|
||||
|
||||
|
||||
s_begin = s_end = 0
|
||||
nb_ports = switch.ports.count()
|
||||
if nb_ports > 0:
|
||||
ports = switch.ports.order_by('port').values('port')
|
||||
s_begin = ports.first().get('port')
|
||||
s_end = ports.last().get('port')
|
||||
|
||||
|
||||
port_form = CreatePortsForm(
|
||||
request.POST or None,
|
||||
initial={'begin': s_begin, 'end': s_end}
|
||||
)
|
||||
|
||||
if port_form.is_valid():
|
||||
begin = port_form.cleaned_data['begin']
|
||||
end = port_form.cleaned_data['end']
|
||||
if end < begin:
|
||||
messages.error(request, "Port de fin inférieur au port de début !")
|
||||
return redirect("/topologie/switch/" + str(switch.id))
|
||||
if end - begin > switch.number:
|
||||
messages.error(request, "Ce switch ne peut avoir autant de ports.")
|
||||
return redirect("/topologie/switch/" + str(switch.id))
|
||||
try:
|
||||
switch.create_ports(begin, end)
|
||||
messages.success(request, "Ports créés.")
|
||||
except ValidationError as e:
|
||||
messages.error(request, ''.join(e))
|
||||
|
||||
begin_range = range(begin, s_begin)
|
||||
end_range = range(s_end+1, end+1)
|
||||
for i in itertools.chain(begin_range, end_range):
|
||||
port = Port()
|
||||
port.switch = switch
|
||||
port.port = i
|
||||
try:
|
||||
with transaction.atomic(), reversion.create_revision():
|
||||
port.save()
|
||||
reversion.set_user(request.user)
|
||||
reversion.set_comment("Création")
|
||||
messages.success(request, "Création du port %d" % i)
|
||||
except IntegrityError:
|
||||
messages.error(request, "Création d'un port existant.")
|
||||
return redirect("/topologie/switch/" + str(switch.id))
|
||||
|
||||
return form({'topoform': port_form}, 'topologie/switch.html', request)
|
||||
|
@ -541,7 +536,7 @@ def edit_switch(request, switch_id):
|
|||
switch = Switch.objects.get(pk=switch_id)
|
||||
except Switch.DoesNotExist:
|
||||
messages.error(request, u"Switch inexistant")
|
||||
return redirect("/topologie/")
|
||||
return redirect(reverse('topologie:index'))
|
||||
switch_form = EditSwitchForm(request.POST or None, instance=switch)
|
||||
machine_form = EditMachineForm(
|
||||
request.POST or None,
|
||||
|
@ -588,8 +583,8 @@ def edit_switch(request, switch_id):
|
|||
field for field in switch_form.changed_data)
|
||||
)
|
||||
messages.success(request, "Le switch a bien été modifié")
|
||||
return redirect("/topologie/")
|
||||
i_mbf_param = generate_ipv4_mbf_param(interface_form, False)
|
||||
return redirect(reverse('topologie'))
|
||||
i_mbf_param = generate_ipv4_mbf_param( interface_form, False )
|
||||
return form({
|
||||
'topoform': switch_form,
|
||||
'machineform': machine_form,
|
||||
|
@ -610,7 +605,7 @@ def new_room(request):
|
|||
reversion.set_user(request.user)
|
||||
reversion.set_comment("Création")
|
||||
messages.success(request, "La chambre a été créé")
|
||||
return redirect("/topologie/index_room/")
|
||||
return redirect(reverse('topologie:index-room'))
|
||||
return form({'topoform': room}, 'topologie/topo.html', request)
|
||||
|
||||
|
||||
|
@ -622,7 +617,7 @@ def edit_room(request, room_id):
|
|||
room = Room.objects.get(pk=room_id)
|
||||
except Room.DoesNotExist:
|
||||
messages.error(request, u"Chambre inexistante")
|
||||
return redirect("/topologie/index_room/")
|
||||
return redirect(reverse('topologie:index-room'))
|
||||
room = EditRoomForm(request.POST or None, instance=room)
|
||||
if room.is_valid():
|
||||
with transaction.atomic(), reversion.create_revision():
|
||||
|
@ -632,7 +627,7 @@ def edit_room(request, room_id):
|
|||
field for field in room.changed_data)
|
||||
)
|
||||
messages.success(request, "La chambre a bien été modifiée")
|
||||
return redirect("/topologie/index_room/")
|
||||
return redirect(reverse('topologie:index-room'))
|
||||
return form({'topoform': room}, 'topologie/topo.html', request)
|
||||
|
||||
|
||||
|
@ -644,7 +639,7 @@ def del_room(request, room_id):
|
|||
room = Room.objects.get(pk=room_id)
|
||||
except Room.DoesNotExist:
|
||||
messages.error(request, u"Chambre inexistante")
|
||||
return redirect("/topologie/index_room/")
|
||||
return redirect(reverse('topologie:index-room'))
|
||||
if request.method == "POST":
|
||||
try:
|
||||
with transaction.atomic(), reversion.create_revision():
|
||||
|
@ -655,7 +650,7 @@ def del_room(request, room_id):
|
|||
except ProtectedError:
|
||||
messages.error(request, "La chambre %s est affectée à un autre objet,\
|
||||
impossible de la supprimer (switch ou user)" % room)
|
||||
return redirect("/topologie/index_room/")
|
||||
return redirect(reverse('topologie:index-room'))
|
||||
return form({
|
||||
'objet': room,
|
||||
'objet_name': 'Chambre'
|
||||
|
|
147
users/views.py
147
users/views.py
|
@ -35,6 +35,7 @@ des whitelist, des services users et des écoles
|
|||
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.urls import reverse
|
||||
from django.shortcuts import get_object_or_404, render, redirect
|
||||
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
|
||||
from django.contrib import messages
|
||||
|
@ -77,7 +78,10 @@ def password_change_action(u_form, user, request, req=False):
|
|||
if req:
|
||||
req.delete()
|
||||
return redirect("/")
|
||||
return redirect("/users/profil/" + str(user.id))
|
||||
return redirect(reverse(
|
||||
'users:profil',
|
||||
kwargs={'userid':str(user.id)}
|
||||
))
|
||||
|
||||
|
||||
@login_required
|
||||
|
@ -95,7 +99,10 @@ def new_user(request):
|
|||
user.reset_passwd_mail(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)
|
||||
return redirect("/users/profil/" + str(user.id))
|
||||
return redirect(reverse(
|
||||
'users:profil',
|
||||
kwargs={'userid':str(user.id)}
|
||||
))
|
||||
return form({'userform': user}, 'users/user.html', request)
|
||||
|
||||
|
||||
|
@ -114,7 +121,10 @@ def new_club(request):
|
|||
club.reset_passwd_mail(request)
|
||||
messages.success(request, "L'utilisateur %s a été crée, un mail\
|
||||
pour l'initialisation du mot de passe a été envoyé" % club.pseudo)
|
||||
return redirect("/users/profil/" + str(club.id))
|
||||
return redirect(reverse(
|
||||
'users:profil',
|
||||
kwargs={'userid':str(club.id)}
|
||||
))
|
||||
return form({'userform': club}, 'users/user.html', request)
|
||||
|
||||
|
||||
|
@ -145,11 +155,14 @@ def edit_info(request, userid):
|
|||
user = User.objects.get(pk=userid)
|
||||
except User.DoesNotExist:
|
||||
messages.error(request, "Utilisateur inexistant")
|
||||
return redirect("/users/")
|
||||
return redirect(reverse('users:index'))
|
||||
if not request.user.has_perms(('cableur',)) and user != request.user:
|
||||
messages.error(request, "Vous ne pouvez pas modifier un autre\
|
||||
user que vous sans droit cableur")
|
||||
return redirect("/users/profil/" + str(request.user.id))
|
||||
return redirect(reverse(
|
||||
'users:profil',
|
||||
kwargs={'userid':str(request.user.id)}
|
||||
))
|
||||
user = select_user_edit_form(request, user)
|
||||
if user.is_valid():
|
||||
with transaction.atomic(), reversion.create_revision():
|
||||
|
@ -159,7 +172,10 @@ def edit_info(request, userid):
|
|||
field for field in user.changed_data
|
||||
))
|
||||
messages.success(request, "L'user a bien été modifié")
|
||||
return redirect("/users/profil/" + userid)
|
||||
return redirect(reverse(
|
||||
'users:profil',
|
||||
kwargs={'userid':str(userid)}
|
||||
))
|
||||
return form({'userform': user}, 'users/user.html', request)
|
||||
|
||||
|
||||
|
@ -172,7 +188,7 @@ def state(request, userid):
|
|||
user = User.objects.get(pk=userid)
|
||||
except User.DoesNotExist:
|
||||
messages.error(request, "Utilisateur inexistant")
|
||||
return redirect("/users/")
|
||||
return redirect(reverse('users:index'))
|
||||
state = StateForm(request.POST or None, instance=user)
|
||||
if state.is_valid():
|
||||
with transaction.atomic(), reversion.create_revision():
|
||||
|
@ -188,7 +204,10 @@ def state(request, userid):
|
|||
))
|
||||
user.save()
|
||||
messages.success(request, "Etat changé avec succès")
|
||||
return redirect("/users/profil/" + userid)
|
||||
return redirect(reverse(
|
||||
'users:profil',
|
||||
kwargs={'userid':str(userid)}
|
||||
))
|
||||
return form({'userform': state}, 'users/user.html', request)
|
||||
|
||||
|
||||
|
@ -201,16 +220,22 @@ def password(request, userid):
|
|||
user = User.objects.get(pk=userid)
|
||||
except User.DoesNotExist:
|
||||
messages.error(request, "Utilisateur inexistant")
|
||||
return redirect("/users/")
|
||||
return redirect(reverse('users'))
|
||||
if not request.user.has_perms(('cableur',)) and user != request.user:
|
||||
messages.error(request, "Vous ne pouvez pas modifier un\
|
||||
autre user que vous sans droit cableur")
|
||||
return redirect("/users/profil/" + str(request.user.id))
|
||||
return redirect(reverse(
|
||||
'users:profil',
|
||||
kwargs={'userid':str(request.user.id)}
|
||||
))
|
||||
if not request.user.has_perms(('bureau',)) and user != request.user\
|
||||
and Right.objects.filter(user=user):
|
||||
messages.error(request, "Il faut les droits bureau pour modifier le\
|
||||
mot de passe d'un membre actif")
|
||||
return redirect("/users/profil/" + str(request.user.id))
|
||||
return redirect(reverse(
|
||||
'users:profil',
|
||||
kwargs={'userid':str(request.user.id)}
|
||||
))
|
||||
u_form = PassForm(request.POST or None)
|
||||
if u_form.is_valid():
|
||||
return password_change_action(u_form, user, request)
|
||||
|
@ -233,7 +258,7 @@ def new_serviceuser(request):
|
|||
request,
|
||||
"L'utilisateur %s a été crée" % user_object.pseudo
|
||||
)
|
||||
return redirect("/users/index_serviceusers/")
|
||||
return redirect(reverse('users:index-serviceusers'))
|
||||
return form({'userform': user}, 'users/user.html', request)
|
||||
|
||||
|
||||
|
@ -247,7 +272,7 @@ def edit_serviceuser(request, userid):
|
|||
user = ServiceUser.objects.get(pk=userid)
|
||||
except ServiceUser.DoesNotExist:
|
||||
messages.error(request, "Utilisateur inexistant")
|
||||
return redirect("/users/")
|
||||
return redirect(reverse('users:index'))
|
||||
user = EditServiceUserForm(request.POST or None, instance=user)
|
||||
if user.is_valid():
|
||||
user_object = user.save(commit=False)
|
||||
|
@ -260,7 +285,7 @@ def edit_serviceuser(request, userid):
|
|||
field for field in user.changed_data
|
||||
))
|
||||
messages.success(request, "L'user a bien été modifié")
|
||||
return redirect("/users/index_serviceusers")
|
||||
return redirect(reverse('users:index-serviceusers'))
|
||||
return form({'userform': user}, 'users/user.html', request)
|
||||
|
||||
|
||||
|
@ -272,13 +297,13 @@ def del_serviceuser(request, userid):
|
|||
user = ServiceUser.objects.get(pk=userid)
|
||||
except ServiceUser.DoesNotExist:
|
||||
messages.error(request, u"Utilisateur inexistant")
|
||||
return redirect("/users/")
|
||||
return redirect(reverse('users:index'))
|
||||
if request.method == "POST":
|
||||
with transaction.atomic(), reversion.create_revision():
|
||||
user.delete()
|
||||
reversion.set_user(request.user)
|
||||
messages.success(request, "L'user a été détruite")
|
||||
return redirect("/users/index_serviceusers/")
|
||||
return redirect(reverse('users:index-serviceusers'))
|
||||
return form(
|
||||
{'objet': user, 'objet_name': 'serviceuser'},
|
||||
'users/delete.html',
|
||||
|
@ -294,7 +319,7 @@ def add_right(request, userid):
|
|||
user = User.objects.get(pk=userid)
|
||||
except User.DoesNotExist:
|
||||
messages.error(request, "Utilisateur inexistant")
|
||||
return redirect("/users/")
|
||||
return redirect(reverse('users:index'))
|
||||
right = RightForm(request.POST or None)
|
||||
if right.is_valid():
|
||||
right = right.save(commit=False)
|
||||
|
@ -307,7 +332,10 @@ def add_right(request, userid):
|
|||
messages.success(request, "Droit ajouté")
|
||||
except IntegrityError:
|
||||
pass
|
||||
return redirect("/users/profil/" + userid)
|
||||
return redirect(reverse(
|
||||
'users:profil',
|
||||
kwargs={'userid':str(userid)}
|
||||
))
|
||||
return form({'userform': right}, 'users/user.html', request)
|
||||
|
||||
|
||||
|
@ -328,7 +356,7 @@ def del_right(request):
|
|||
))
|
||||
right_del.delete()
|
||||
messages.success(request, "Droit retiré avec succès")
|
||||
return redirect("/users/")
|
||||
return redirect(reverse('users:index'))
|
||||
return form({'userform': user_right_list}, 'users/del_right.html', request)
|
||||
|
||||
|
||||
|
@ -342,7 +370,7 @@ def add_ban(request, userid):
|
|||
user = User.objects.get(pk=userid)
|
||||
except User.DoesNotExist:
|
||||
messages.error(request, "Utilisateur inexistant")
|
||||
return redirect("/users/")
|
||||
return redirect(reverse('users:index'))
|
||||
ban_instance = Ban(user=user)
|
||||
ban = BanForm(request.POST or None, instance=ban_instance)
|
||||
if ban.is_valid():
|
||||
|
@ -351,7 +379,10 @@ def add_ban(request, userid):
|
|||
reversion.set_user(request.user)
|
||||
reversion.set_comment("Création")
|
||||
messages.success(request, "Bannissement ajouté")
|
||||
return redirect("/users/profil/" + userid)
|
||||
return redirect(reverse(
|
||||
'users:profil',
|
||||
kwargs={'userid':str(userid)}
|
||||
))
|
||||
if user.is_ban:
|
||||
messages.error(
|
||||
request,
|
||||
|
@ -370,7 +401,7 @@ def edit_ban(request, banid):
|
|||
ban_instance = Ban.objects.get(pk=banid)
|
||||
except Ban.DoesNotExist:
|
||||
messages.error(request, "Entrée inexistante")
|
||||
return redirect("/users/")
|
||||
return redirect(reverse('users:index'))
|
||||
ban = BanForm(request.POST or None, instance=ban_instance)
|
||||
if ban.is_valid():
|
||||
with transaction.atomic(), reversion.create_revision():
|
||||
|
@ -380,7 +411,7 @@ def edit_ban(request, banid):
|
|||
field for field in ban.changed_data
|
||||
))
|
||||
messages.success(request, "Bannissement modifié")
|
||||
return redirect("/users/")
|
||||
return redirect(reverse('users:index'))
|
||||
return form({'userform': ban}, 'users/user.html', request)
|
||||
|
||||
|
||||
|
@ -395,7 +426,7 @@ def add_whitelist(request, userid):
|
|||
user = User.objects.get(pk=userid)
|
||||
except User.DoesNotExist:
|
||||
messages.error(request, "Utilisateur inexistant")
|
||||
return redirect("/users/")
|
||||
return redirect(reverse('users:index'))
|
||||
whitelist_instance = Whitelist(user=user)
|
||||
whitelist = WhitelistForm(
|
||||
request.POST or None,
|
||||
|
@ -407,7 +438,10 @@ def add_whitelist(request, userid):
|
|||
reversion.set_user(request.user)
|
||||
reversion.set_comment("Création")
|
||||
messages.success(request, "Accès à titre gracieux accordé")
|
||||
return redirect("/users/profil/" + userid)
|
||||
return redirect(reverse(
|
||||
'users:profil',
|
||||
kwargs={'userid':str(userid)}
|
||||
))
|
||||
if user.is_whitelisted:
|
||||
messages.error(
|
||||
request,
|
||||
|
@ -427,7 +461,7 @@ def edit_whitelist(request, whitelistid):
|
|||
whitelist_instance = Whitelist.objects.get(pk=whitelistid)
|
||||
except Whitelist.DoesNotExist:
|
||||
messages.error(request, "Entrée inexistante")
|
||||
return redirect("/users/")
|
||||
return redirect(reverse('users:index'))
|
||||
whitelist = WhitelistForm(
|
||||
request.POST or None,
|
||||
instance=whitelist_instance
|
||||
|
@ -440,7 +474,7 @@ def edit_whitelist(request, whitelistid):
|
|||
field for field in whitelist.changed_data
|
||||
))
|
||||
messages.success(request, "Whitelist modifiée")
|
||||
return redirect("/users/")
|
||||
return redirect(reverse('users:index'))
|
||||
return form({'userform': whitelist}, 'users/user.html', request)
|
||||
|
||||
|
||||
|
@ -456,7 +490,7 @@ def add_school(request):
|
|||
reversion.set_user(request.user)
|
||||
reversion.set_comment("Création")
|
||||
messages.success(request, "L'établissement a été ajouté")
|
||||
return redirect("/users/index_school/")
|
||||
return redirect(reverse('users:index-school'))
|
||||
return form({'userform': school}, 'users/user.html', request)
|
||||
|
||||
|
||||
|
@ -469,7 +503,7 @@ def edit_school(request, schoolid):
|
|||
school_instance = School.objects.get(pk=schoolid)
|
||||
except School.DoesNotExist:
|
||||
messages.error(request, u"Entrée inexistante")
|
||||
return redirect("/users/")
|
||||
return redirect(reverse('users:index'))
|
||||
school = SchoolForm(request.POST or None, instance=school_instance)
|
||||
if school.is_valid():
|
||||
with transaction.atomic(), reversion.create_revision():
|
||||
|
@ -479,7 +513,7 @@ def edit_school(request, schoolid):
|
|||
field for field in school.changed_data
|
||||
))
|
||||
messages.success(request, "Établissement modifié")
|
||||
return redirect("/users/index_school/")
|
||||
return redirect(reverse('users:index-school'))
|
||||
return form({'userform': school}, 'users/user.html', request)
|
||||
|
||||
|
||||
|
@ -504,7 +538,7 @@ def del_school(request):
|
|||
request,
|
||||
"L'établissement %s est affecté à au moins un user, \
|
||||
vous ne pouvez pas le supprimer" % school_del)
|
||||
return redirect("/users/index_school/")
|
||||
return redirect(reverse('users:index-school'))
|
||||
return form({'userform': school}, 'users/user.html', request)
|
||||
|
||||
|
||||
|
@ -520,7 +554,7 @@ def add_listright(request):
|
|||
reversion.set_user(request.user)
|
||||
reversion.set_comment("Création")
|
||||
messages.success(request, "Le droit/groupe a été ajouté")
|
||||
return redirect("/users/index_listright/")
|
||||
return redirect(reverse('users:index-listright'))
|
||||
return form({'userform': listright}, 'users/user.html', request)
|
||||
|
||||
|
||||
|
@ -533,7 +567,7 @@ def edit_listright(request, listrightid):
|
|||
listright_instance = ListRight.objects.get(pk=listrightid)
|
||||
except ListRight.DoesNotExist:
|
||||
messages.error(request, u"Entrée inexistante")
|
||||
return redirect("/users/")
|
||||
return redirect(reverse('users:index'))
|
||||
listright = ListRightForm(
|
||||
request.POST or None,
|
||||
instance=listright_instance
|
||||
|
@ -546,7 +580,7 @@ def edit_listright(request, listrightid):
|
|||
field for field in listright.changed_data
|
||||
))
|
||||
messages.success(request, "Droit modifié")
|
||||
return redirect("/users/index_listright/")
|
||||
return redirect(reverse('users:index-listright'))
|
||||
return form({'userform': listright}, 'users/user.html', request)
|
||||
|
||||
|
||||
|
@ -569,7 +603,7 @@ def del_listright(request):
|
|||
request,
|
||||
"L'établissement %s est affecté à au moins un user, \
|
||||
vous ne pouvez pas le supprimer" % listright_del)
|
||||
return redirect("/users/index_listright/")
|
||||
return redirect(reverse('users:index-listright'))
|
||||
return form({'userform': listright}, 'users/user.html', request)
|
||||
|
||||
|
||||
|
@ -595,7 +629,7 @@ def mass_archive(request):
|
|||
messages.success(request, "%s users ont été archivés" % len(
|
||||
to_archive_list
|
||||
))
|
||||
return redirect("/users/")
|
||||
return redirect(reverse('users:index'))
|
||||
return form(
|
||||
{'userform': to_archive_date, 'to_archive_list': to_archive_list},
|
||||
'users/mass_archive.html',
|
||||
|
@ -760,55 +794,64 @@ def history(request, object_name, object_id):
|
|||
object_instance = User.objects.get(pk=object_id)
|
||||
except User.DoesNotExist:
|
||||
messages.error(request, "Utilisateur inexistant")
|
||||
return redirect("/users/")
|
||||
return redirect(reverse('users:index'))
|
||||
if not request.user.has_perms(('cableur',)) and\
|
||||
object_instance != request.user:
|
||||
messages.error(request, "Vous ne pouvez pas afficher\
|
||||
l'historique d'un autre user que vous sans droit cableur")
|
||||
return redirect("/users/profil/" + str(request.user.id))
|
||||
return redirect(reverse(
|
||||
'users:profil',
|
||||
kwargs={'userid':str(request.user.id)}
|
||||
))
|
||||
elif object_name == 'serviceuser' and request.user.has_perms(('cableur',)):
|
||||
try:
|
||||
object_instance = ServiceUser.objects.get(pk=object_id)
|
||||
except ServiceUser.DoesNotExist:
|
||||
messages.error(request, "User service inexistant")
|
||||
return redirect("/users/")
|
||||
return redirect(reverse('users:index'))
|
||||
elif object_name == 'ban':
|
||||
try:
|
||||
object_instance = Ban.objects.get(pk=object_id)
|
||||
except Ban.DoesNotExist:
|
||||
messages.error(request, "Bannissement inexistant")
|
||||
return redirect("/users/")
|
||||
return redirect(reverse('users:index'))
|
||||
if not request.user.has_perms(('cableur',)) and\
|
||||
object_instance.user != request.user:
|
||||
messages.error(request, "Vous ne pouvez pas afficher les bans\
|
||||
d'un autre user que vous sans droit cableur")
|
||||
return redirect("/users/profil/" + str(request.user.id))
|
||||
return redirect(reverse(
|
||||
'users:profil',
|
||||
kwargs={'userid':str(request.user.id)}
|
||||
))
|
||||
elif object_name == 'whitelist':
|
||||
try:
|
||||
object_instance = Whitelist.objects.get(pk=object_id)
|
||||
except Whitelist.DoesNotExist:
|
||||
messages.error(request, "Whitelist inexistant")
|
||||
return redirect("/users/")
|
||||
return redirect(reverse('users:index'))
|
||||
if not request.user.has_perms(('cableur',)) and\
|
||||
object_instance.user != request.user:
|
||||
messages.error(request, "Vous ne pouvez pas afficher les\
|
||||
whitelist d'un autre user que vous sans droit cableur")
|
||||
return redirect("/users/profil/" + str(request.user.id))
|
||||
return redirect(reverse(
|
||||
'users:profil',
|
||||
kwargs={'userid':str(request.user.id)}
|
||||
))
|
||||
elif object_name == 'school' and request.user.has_perms(('cableur',)):
|
||||
try:
|
||||
object_instance = School.objects.get(pk=object_id)
|
||||
except School.DoesNotExist:
|
||||
messages.error(request, "Ecole inexistante")
|
||||
return redirect("/users/")
|
||||
return redirect(reverse('users:index'))
|
||||
elif object_name == 'listright' and request.user.has_perms(('cableur',)):
|
||||
try:
|
||||
object_instance = ListRight.objects.get(pk=object_id)
|
||||
except ListRight.DoesNotExist:
|
||||
messages.error(request, "Droit inexistant")
|
||||
return redirect("/users/")
|
||||
return redirect(reverse('users:index'))
|
||||
else:
|
||||
messages.error(request, "Objet inconnu")
|
||||
return redirect("/users/")
|
||||
return redirect(reverse('users:index'))
|
||||
options, _created = GeneralOption.objects.get_or_create()
|
||||
pagination_number = options.pagination_number
|
||||
reversions = Version.objects.get_for_object(object_instance)
|
||||
|
@ -832,7 +875,10 @@ def history(request, object_name, object_id):
|
|||
@login_required
|
||||
def mon_profil(request):
|
||||
""" Lien vers profil, renvoie request.id à la fonction """
|
||||
return redirect("/users/profil/" + str(request.user.id))
|
||||
return redirect(reverse(
|
||||
'users:profil',
|
||||
kwargs={'userid':str(request.user.id)}
|
||||
))
|
||||
|
||||
|
||||
@login_required
|
||||
|
@ -842,11 +888,14 @@ def profil(request, userid):
|
|||
users = User.objects.get(pk=userid)
|
||||
except User.DoesNotExist:
|
||||
messages.error(request, "Utilisateur inexistant")
|
||||
return redirect("/users/")
|
||||
return redirect(reverse('users:index'))
|
||||
if not request.user.has_perms(('cableur',)) and users != request.user:
|
||||
messages.error(request, "Vous ne pouvez pas afficher un autre user\
|
||||
que vous sans droit cableur")
|
||||
return redirect("/users/profil/" + str(request.user.id))
|
||||
return redirect(reverse(
|
||||
'users:profil',
|
||||
kwargs={'userid':str(request.user.id)}
|
||||
))
|
||||
machines = Machine.objects.filter(user=users).select_related('user')\
|
||||
.prefetch_related('interface_set__domain__extension')\
|
||||
.prefetch_related('interface_set__ipv4__ip_type__extension')\
|
||||
|
|
Loading…
Reference in a new issue