mirror of
https://gitlab2.federez.net/re2o/re2o
synced 2024-12-25 08:23:46 +00:00
can_edit pour machines.models
This commit is contained in:
parent
3ef9035712
commit
67b519d2fb
2 changed files with 282 additions and 95 deletions
|
@ -72,6 +72,9 @@ class Machine(models.Model):
|
||||||
% max_lambdauser_interfaces
|
% max_lambdauser_interfaces
|
||||||
return True, None
|
return True, None
|
||||||
|
|
||||||
|
def can_edit(user_request, machineid):
|
||||||
|
return True, None
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return str(self.user) + ' - ' + str(self.id) + ' - ' + str(self.name)
|
return str(self.user) + ' - ' + str(self.id) + ' - ' + str(self.name)
|
||||||
|
|
||||||
|
@ -97,6 +100,15 @@ class MachineType(models.Model):
|
||||||
return user_request.has_perms(('infra',)) , u"Vous n'avez pas le droit\
|
return user_request.has_perms(('infra',)) , u"Vous n'avez pas le droit\
|
||||||
de créer un type de machine"
|
de créer un type de machine"
|
||||||
|
|
||||||
|
def can_edit(user_request, machinetypeid):
|
||||||
|
if not user_request.has_perms(('infra',)):
|
||||||
|
return False, u"Vous n'avez pas le droit d'éditer des types de machine"
|
||||||
|
try:
|
||||||
|
machinetype_instance = MachineType.objects.get(pk=machinetypeid)
|
||||||
|
except MachineType.DoesNotExist:
|
||||||
|
return False, u"Type de machine inexistant"
|
||||||
|
return True, None
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.type
|
return self.type
|
||||||
|
|
||||||
|
@ -211,6 +223,15 @@ class IpType(models.Model):
|
||||||
return user_request.has_perms(('infra',)) , u"Vous n'avez pas le droit\
|
return user_request.has_perms(('infra',)) , u"Vous n'avez pas le droit\
|
||||||
de créer un type d'ip"
|
de créer un type d'ip"
|
||||||
|
|
||||||
|
def can_edit(user_request, iptypeid):
|
||||||
|
if not user_request.has_perms(('infra',)):
|
||||||
|
return False, u"Vous n'avez pas le droit d'éditer des types d'ip"
|
||||||
|
try:
|
||||||
|
iptype_instance = IpType.objects.get(pk=iptypeid)
|
||||||
|
except IpType.DoesNotExist:
|
||||||
|
return False, u"Type d'ip inexistant"
|
||||||
|
return True, None
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.type
|
return self.type
|
||||||
|
|
||||||
|
@ -228,6 +249,15 @@ class Vlan(models.Model):
|
||||||
return user_request.has_perms(('infra',)) , u"Vous n'avez pas le droit\
|
return user_request.has_perms(('infra',)) , u"Vous n'avez pas le droit\
|
||||||
de créer un vlan"
|
de créer un vlan"
|
||||||
|
|
||||||
|
def can_edit(user_request, vlanid):
|
||||||
|
if not user_request.has_perms(('infra',)):
|
||||||
|
return False, u"Vous n'avez pas le droit d'éditer des vlans"
|
||||||
|
try:
|
||||||
|
vlan_instance = Vlan.objects.get(pk=vlanid)
|
||||||
|
except Vlan.DoesNotExist:
|
||||||
|
return False, u"Vlan inexistant"
|
||||||
|
return True, None
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
|
@ -266,6 +296,15 @@ class Nas(models.Model):
|
||||||
return user_request.has_perms(('infra',)) , u"Vous n'avez pas le droit\
|
return user_request.has_perms(('infra',)) , u"Vous n'avez pas le droit\
|
||||||
de créer un nas"
|
de créer un nas"
|
||||||
|
|
||||||
|
def can_edit(user_request, nasid):
|
||||||
|
if not user_request.has_perms(('infra',)):
|
||||||
|
return False, u"Vous n'avez pas le droit d'éditer des nas"
|
||||||
|
try:
|
||||||
|
nas_instance = Nas.objects.get(pk=nasid)
|
||||||
|
except Nas.DoesNotExist:
|
||||||
|
return False, u"Nas inexistant"
|
||||||
|
return True, None
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
|
@ -306,6 +345,15 @@ class SOA(models.Model):
|
||||||
return user_request.has_perms(('infra',)) , u"Vous n'avez pas le droit\
|
return user_request.has_perms(('infra',)) , u"Vous n'avez pas le droit\
|
||||||
de créer un enregistrement SOA"
|
de créer un enregistrement SOA"
|
||||||
|
|
||||||
|
def can_edit(user_request, soaid):
|
||||||
|
if not user_request.has_perms(('infra',)):
|
||||||
|
return False, u"Vous n'avez pas le droit d'éditer des enregistrements SOA"
|
||||||
|
try:
|
||||||
|
soa_instance = SOA.objects.get(pk=soaid)
|
||||||
|
except SOA.DoesNotExist:
|
||||||
|
return False, u"Enregistrement SOA inexistant"
|
||||||
|
return True, None
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return str(self.name)
|
return str(self.name)
|
||||||
|
|
||||||
|
@ -392,6 +440,15 @@ class Extension(models.Model):
|
||||||
return user_request.has_perms(('infra',)) , u"Vous n'avez pas le droit\
|
return user_request.has_perms(('infra',)) , u"Vous n'avez pas le droit\
|
||||||
de créer une extension"
|
de créer une extension"
|
||||||
|
|
||||||
|
def can_edit(user_request, extensionid):
|
||||||
|
if not user_request.has_perms(('infra',)):
|
||||||
|
return False, u"Vous n'avez pas le droit d'éditer des extensions"
|
||||||
|
try:
|
||||||
|
extension_instance = Extension.objects.get(pk=extensionid)
|
||||||
|
except Extension.DoesNotExist:
|
||||||
|
return False, u"Extension inexistante"
|
||||||
|
return True, None
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
|
@ -421,6 +478,15 @@ class Mx(models.Model):
|
||||||
return user_request.has_perms(('infra',)) , u"Vous n'avez pas le droit\
|
return user_request.has_perms(('infra',)) , u"Vous n'avez pas le droit\
|
||||||
de créer un enregistrement MX"
|
de créer un enregistrement MX"
|
||||||
|
|
||||||
|
def can_edit(user_request, mxid):
|
||||||
|
if not user_request.has_perms(('infra',)):
|
||||||
|
return False, u"Vous n'avez pas le droit d'éditer des enregstrements MX"
|
||||||
|
try:
|
||||||
|
mx_instance = Mx.objects.get(pk=mxid)
|
||||||
|
except Mx.DoesNotExist:
|
||||||
|
return False, u"Enregistremet MX inexistant"
|
||||||
|
return True, None
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return str(self.zone) + ' ' + str(self.priority) + ' ' + str(self.name)
|
return str(self.zone) + ' ' + str(self.priority) + ' ' + str(self.name)
|
||||||
|
|
||||||
|
@ -441,6 +507,15 @@ class Ns(models.Model):
|
||||||
return user_request.has_perms(('infra',)) , u"Vous n'avez pas le droit\
|
return user_request.has_perms(('infra',)) , u"Vous n'avez pas le droit\
|
||||||
de créer un enregistrement NS"
|
de créer un enregistrement NS"
|
||||||
|
|
||||||
|
def can_edit(user_request, nsid):
|
||||||
|
if not user_request.has_perms(('infra',)):
|
||||||
|
return False, u"Vous n'avez pas le droit d'éditer des enregistrements NS"
|
||||||
|
try:
|
||||||
|
ns_instance = Ns.objects.get(pk=nsid)
|
||||||
|
except Ns.DoesNotExist:
|
||||||
|
return False, u"Enregistrement NS inexistant"
|
||||||
|
return True, None
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return str(self.zone) + ' ' + str(self.ns)
|
return str(self.zone) + ' ' + str(self.ns)
|
||||||
|
|
||||||
|
@ -457,6 +532,15 @@ class Txt(models.Model):
|
||||||
return user_request.has_perms(('infra',)) , u"Vous n'avez pas le droit\
|
return user_request.has_perms(('infra',)) , u"Vous n'avez pas le droit\
|
||||||
de créer un enregistrement TXT"
|
de créer un enregistrement TXT"
|
||||||
|
|
||||||
|
def can_edit(user_request, txtid):
|
||||||
|
if not user_request.has_perms(('infra',)):
|
||||||
|
return False, u"Vous n'avez pas le droit d'éditer des enregistrement TXT"
|
||||||
|
try:
|
||||||
|
txt_instance = Txt.objects.get(pk=txtid)
|
||||||
|
except Txt.DoesNotExist:
|
||||||
|
return False, u"Enregistrement TXT inexistant"
|
||||||
|
return True, None
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return str(self.zone) + " : " + str(self.field1) + " " +\
|
return str(self.zone) + " : " + str(self.field1) + " " +\
|
||||||
str(self.field2)
|
str(self.field2)
|
||||||
|
@ -514,6 +598,15 @@ class Srv(models.Model):
|
||||||
return user_request.has_perms(('infra',)) , u"Vous n'avez pas le droit\
|
return user_request.has_perms(('infra',)) , u"Vous n'avez pas le droit\
|
||||||
de créer un enregistrement SRV"
|
de créer un enregistrement SRV"
|
||||||
|
|
||||||
|
def can_edit(user_request, srvid):
|
||||||
|
if not user_request.has_perms(('infra',)):
|
||||||
|
return False, u"Vous n'avez pas le droit d'éditer des enregistrements SRV"
|
||||||
|
try:
|
||||||
|
srv_instance = Srv.objects.get(pk=srvid)
|
||||||
|
except Srv.DoesNotExist:
|
||||||
|
return False, u"Enregistrement SRV inexistant"
|
||||||
|
return True, None
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return str(self.service) + ' ' + str(self.protocole) + ' ' +\
|
return str(self.service) + ' ' + str(self.protocole) + ' ' +\
|
||||||
str(self.extension) + ' ' + str(self.priority) +\
|
str(self.extension) + ' ' + str(self.priority) +\
|
||||||
|
@ -648,6 +741,17 @@ class Interface(models.Model):
|
||||||
% max_lambdauser_interfaces
|
% max_lambdauser_interfaces
|
||||||
return True, None
|
return True, None
|
||||||
|
|
||||||
|
def can_edit(user_request, interfaceid):
|
||||||
|
try:
|
||||||
|
interface = Interface.objects.get(pk=interfaceid)
|
||||||
|
except Interface.DoesNotExist:
|
||||||
|
return False, u"Interface inexistante"
|
||||||
|
if not user_request.has_perms(('infra',)):
|
||||||
|
if not user_request.has_perms(('cableur',)) and interface.machine.user != user_request:
|
||||||
|
return False, u"Vous ne pouvez pas éditer une machine\
|
||||||
|
d'un autre user que vous sans droit"
|
||||||
|
return True, None
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
try:
|
try:
|
||||||
domain = self.domain
|
domain = self.domain
|
||||||
|
@ -768,6 +872,16 @@ class Domain(models.Model):
|
||||||
% max_lambdauser_aliases
|
% max_lambdauser_aliases
|
||||||
return True, None
|
return True, None
|
||||||
|
|
||||||
|
def can_edit(user_request, domainid):
|
||||||
|
try:
|
||||||
|
alias_instance = Domain.objects.get(pk=domainid)
|
||||||
|
except Domain.DoesNotExist:
|
||||||
|
return False, u"Alias inexistant"
|
||||||
|
if not user_request.has_perms(('cableur',)) and (alias_instance.cname is None or alias_instance.cname.interface_parent.machine.user != user_request):
|
||||||
|
return False, u"Vous ne pouvez pas ajouter un alias à une machine\
|
||||||
|
d'un autre user que vous sans droit"
|
||||||
|
return True, None
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return str(self.name) + str(self.extension)
|
return str(self.name) + str(self.extension)
|
||||||
|
|
||||||
|
@ -798,6 +912,9 @@ class IpList(models.Model):
|
||||||
def can_create(user_request):
|
def can_create(user_request):
|
||||||
return True, None
|
return True, None
|
||||||
|
|
||||||
|
def can_edit(user_request, iplistid):
|
||||||
|
return True, None
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.ipv4
|
return self.ipv4
|
||||||
|
|
||||||
|
@ -842,6 +959,15 @@ class Service(models.Model):
|
||||||
return user_request.has_perms(('infra',)) , u"Vous n'avez pas le droit\
|
return user_request.has_perms(('infra',)) , u"Vous n'avez pas le droit\
|
||||||
de créer un service"
|
de créer un service"
|
||||||
|
|
||||||
|
def can_edit(user_request, serviceid):
|
||||||
|
if not user_request.has_perms(('infra',)):
|
||||||
|
return False, u"Vous n'avez pas le droit d'éditer des services"
|
||||||
|
try:
|
||||||
|
service_instance = Service.objects.get(pk=serviceid)
|
||||||
|
except Service.DoesNotExist:
|
||||||
|
return False, u"Service inexistant"
|
||||||
|
return True, None
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return str(self.service_type)
|
return str(self.service_type)
|
||||||
|
|
||||||
|
@ -885,6 +1011,9 @@ class Service_link(models.Model):
|
||||||
def can_create(user_request):
|
def can_create(user_request):
|
||||||
return True, None
|
return True, None
|
||||||
|
|
||||||
|
def can_edit(user_request, service_linkid):
|
||||||
|
return True, None
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return str(self.server) + " " + str(self.service)
|
return str(self.server) + " " + str(self.service)
|
||||||
|
|
||||||
|
@ -899,6 +1028,16 @@ class OuverturePortList(models.Model):
|
||||||
)
|
)
|
||||||
|
|
||||||
def can_create(user_request):
|
def can_create(user_request):
|
||||||
|
return user_request.has_perms(('bureau',)) , u"Vous n'avez pas le droit\
|
||||||
|
d'ouvrir un port"
|
||||||
|
|
||||||
|
def can_edit(user_request, ouvertureportlistpk):
|
||||||
|
if not user_request.has_perms(('bureau',)):
|
||||||
|
return False, u"Vous n'avez pas le droit d'éditer des ouvertures de port"
|
||||||
|
try:
|
||||||
|
port_list_instance = OuverturePortList.objects.get(pk=ouvertureportlistpk)
|
||||||
|
except OuverturePortList.DoesNotExist:
|
||||||
|
return False, u"Ouverture de port inexistante"
|
||||||
return True, None
|
return True, None
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
|
@ -972,8 +1111,10 @@ class OuverturePort(models.Model):
|
||||||
)
|
)
|
||||||
|
|
||||||
def can_create(user_request):
|
def can_create(user_request):
|
||||||
return user_request.has_perms(('bureau',)) , u"Vous n'avez pas le droit\
|
return True, None
|
||||||
d'ouvrir un port"
|
|
||||||
|
def can_edit(user_request, ouvertureportid):
|
||||||
|
return True, None
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
if self.begin == self.end:
|
if self.begin == self.end:
|
||||||
|
|
|
@ -273,18 +273,17 @@ def new_machine(request, userid):
|
||||||
def edit_interface(request, interfaceid):
|
def edit_interface(request, interfaceid):
|
||||||
""" Edition d'une interface. Distingue suivant les droits les valeurs de interfaces et machines que l'user peut modifier
|
""" Edition d'une interface. Distingue suivant les droits les valeurs de interfaces et machines que l'user peut modifier
|
||||||
infra permet de modifier le propriétaire"""
|
infra permet de modifier le propriétaire"""
|
||||||
try:
|
|
||||||
interface = Interface.objects.get(pk=interfaceid)
|
can, reason = Interface.can_edit(request.user, interfaceid)
|
||||||
except Interface.DoesNotExist:
|
if not can:
|
||||||
messages.error(request, u"Interface inexistante" )
|
messages.error(request, reason)
|
||||||
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(reverse(
|
return redirect(reverse(
|
||||||
'users:profil',
|
'users:profil',
|
||||||
kwargs={'userid':str(request.user.id)}
|
kwargs={'userid':str(request.user.id)}
|
||||||
))
|
))
|
||||||
|
|
||||||
|
interface = Interface.objects.get(pk=interfaceid)
|
||||||
|
if not request.user.has_perms(('infra',)):
|
||||||
machine_form = BaseEditMachineForm(request.POST or None, instance=interface.machine)
|
machine_form = BaseEditMachineForm(request.POST or None, instance=interface.machine)
|
||||||
interface_form = BaseEditInterfaceForm(request.POST or None, instance=interface, infra=False)
|
interface_form = BaseEditInterfaceForm(request.POST or None, instance=interface, infra=False)
|
||||||
else:
|
else:
|
||||||
|
@ -432,14 +431,18 @@ def add_iptype(request):
|
||||||
return form({'iptypeform': iptype}, 'machines/machine.html', request)
|
return form({'iptypeform': iptype}, 'machines/machine.html', request)
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
@permission_required('infra')
|
|
||||||
def edit_iptype(request, iptypeid):
|
def edit_iptype(request, iptypeid):
|
||||||
""" Edition d'un range. Ne permet pas de le redimensionner pour éviter l'incohérence"""
|
""" Edition d'un range. Ne permet pas de le redimensionner pour éviter l'incohérence"""
|
||||||
try:
|
|
||||||
|
can, reason = IpType.can_edit(request.user, iptypeid)
|
||||||
|
if not can:
|
||||||
|
messages.error(request, reason)
|
||||||
|
return redirect(reverse(
|
||||||
|
'users:profil',
|
||||||
|
kwargs={'userid':str(request.user.id)}
|
||||||
|
))
|
||||||
|
|
||||||
iptype_instance = IpType.objects.get(pk=iptypeid)
|
iptype_instance = IpType.objects.get(pk=iptypeid)
|
||||||
except IpType.DoesNotExist:
|
|
||||||
messages.error(request, u"Entrée inexistante" )
|
|
||||||
return redirect(reverse('machines:index-iptype'))
|
|
||||||
iptype = EditIpTypeForm(request.POST or None, instance=iptype_instance)
|
iptype = EditIpTypeForm(request.POST or None, instance=iptype_instance)
|
||||||
if iptype.is_valid():
|
if iptype.is_valid():
|
||||||
with transaction.atomic(), reversion.create_revision():
|
with transaction.atomic(), reversion.create_revision():
|
||||||
|
@ -490,13 +493,17 @@ def add_machinetype(request):
|
||||||
return form({'machinetypeform': machinetype}, 'machines/machine.html', request)
|
return form({'machinetypeform': machinetype}, 'machines/machine.html', request)
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
@permission_required('infra')
|
|
||||||
def edit_machinetype(request, machinetypeid):
|
def edit_machinetype(request, machinetypeid):
|
||||||
try:
|
|
||||||
|
can, reason = MachineType.can_edit(request.user, machinetypeid)
|
||||||
|
if not can:
|
||||||
|
messages.error(request, reason)
|
||||||
|
return redirect(reverse(
|
||||||
|
'users:profil',
|
||||||
|
kwargs={'userid':str(request.user.id)}
|
||||||
|
))
|
||||||
|
|
||||||
machinetype_instance = MachineType.objects.get(pk=machinetypeid)
|
machinetype_instance = MachineType.objects.get(pk=machinetypeid)
|
||||||
except MachineType.DoesNotExist:
|
|
||||||
messages.error(request, u"Entrée inexistante" )
|
|
||||||
return redirect(reverse('machines:index-machinetype'))
|
|
||||||
machinetype = MachineTypeForm(request.POST or None, instance=machinetype_instance)
|
machinetype = MachineTypeForm(request.POST or None, instance=machinetype_instance)
|
||||||
if machinetype.is_valid():
|
if machinetype.is_valid():
|
||||||
with transaction.atomic(), reversion.create_revision():
|
with transaction.atomic(), reversion.create_revision():
|
||||||
|
@ -546,20 +553,24 @@ def add_extension(request):
|
||||||
return form({'extensionform': extension}, 'machines/machine.html', request)
|
return form({'extensionform': extension}, 'machines/machine.html', request)
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
@permission_required('infra')
|
|
||||||
def edit_extension(request, extensionid):
|
def edit_extension(request, extensionid):
|
||||||
try:
|
|
||||||
|
can, reason = Extension.can_edit(request.user, extensionid)
|
||||||
|
if not can:
|
||||||
|
messages.error(request, reason)
|
||||||
|
return redirect(reverse(
|
||||||
|
'users:profil',
|
||||||
|
kwargs={'userid':str(request.user.id)}
|
||||||
|
))
|
||||||
|
|
||||||
extension_instance = Extension.objects.get(pk=extensionid)
|
extension_instance = Extension.objects.get(pk=extensionid)
|
||||||
except Extension.DoesNotExist:
|
|
||||||
messages.error(request, u"Entrée inexistante" )
|
|
||||||
return redirect(reverse('machines:index-extension'))
|
|
||||||
extension = ExtensionForm(request.POST or None, instance=extension_instance)
|
extension = ExtensionForm(request.POST or None, instance=extension_instance)
|
||||||
if extension.is_valid():
|
if extension.is_valid():
|
||||||
with transaction.atomic(), reversion.create_revision():
|
with transaction.atomic(), reversion.create_revision():
|
||||||
extension.save()
|
extension.save()
|
||||||
reversion.set_user(request.user)
|
reversion.set_user(request.user)
|
||||||
reversion.set_comment("Champs modifié(s) : %s" % ', '.join(field for field in extension.changed_data))
|
reversion.set_comment("Champs modifié(s) : %s" % ', '.join(field for field in extension.changed_data))
|
||||||
messages.success(request, "Extension modifiée")
|
mssages.success(request, "Extension modifiée")
|
||||||
return redirect(reverse('machines:index-extension'))
|
return redirect(reverse('machines:index-extension'))
|
||||||
return form({'extensionform': extension}, 'machines/machine.html', request)
|
return form({'extensionform': extension}, 'machines/machine.html', request)
|
||||||
|
|
||||||
|
@ -602,13 +613,17 @@ def add_soa(request):
|
||||||
return form({'soaform': soa}, 'machines/machine.html', request)
|
return form({'soaform': soa}, 'machines/machine.html', request)
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
@permission_required('infra')
|
|
||||||
def edit_soa(request, soaid):
|
def edit_soa(request, soaid):
|
||||||
try:
|
|
||||||
|
can, reason = SOA.can_edit(request.user, soaid)
|
||||||
|
if not can:
|
||||||
|
messages.error(request, reason)
|
||||||
|
return redirect(reverse(
|
||||||
|
'users:profil',
|
||||||
|
kwargs={'userid':str(request.user.id)}
|
||||||
|
))
|
||||||
|
|
||||||
soa_instance = SOA.objects.get(pk=soaid)
|
soa_instance = SOA.objects.get(pk=soaid)
|
||||||
except SOA.DoesNotExist:
|
|
||||||
messages.error(request, u"Entrée inexistante" )
|
|
||||||
return redirect(reverse('machines:index-extension'))
|
|
||||||
soa = SOAForm(request.POST or None, instance=soa_instance)
|
soa = SOAForm(request.POST or None, instance=soa_instance)
|
||||||
if soa.is_valid():
|
if soa.is_valid():
|
||||||
with transaction.atomic(), reversion.create_revision():
|
with transaction.atomic(), reversion.create_revision():
|
||||||
|
@ -658,13 +673,17 @@ def add_mx(request):
|
||||||
return form({'mxform': mx}, 'machines/machine.html', request)
|
return form({'mxform': mx}, 'machines/machine.html', request)
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
@permission_required('infra')
|
|
||||||
def edit_mx(request, mxid):
|
def edit_mx(request, mxid):
|
||||||
try:
|
|
||||||
|
can, reason = Mx.can_edit(request.user, mxid)
|
||||||
|
if not can:
|
||||||
|
messages.error(request, reason)
|
||||||
|
return redirect(reverse(
|
||||||
|
'users:profil',
|
||||||
|
kwargs={'userid':str(request.user.id)}
|
||||||
|
))
|
||||||
|
|
||||||
mx_instance = Mx.objects.get(pk=mxid)
|
mx_instance = Mx.objects.get(pk=mxid)
|
||||||
except Mx.DoesNotExist:
|
|
||||||
messages.error(request, u"Entrée inexistante" )
|
|
||||||
return redirect(reverse('machines:index-extension'))
|
|
||||||
mx = MxForm(request.POST or None, instance=mx_instance)
|
mx = MxForm(request.POST or None, instance=mx_instance)
|
||||||
if mx.is_valid():
|
if mx.is_valid():
|
||||||
with transaction.atomic(), reversion.create_revision():
|
with transaction.atomic(), reversion.create_revision():
|
||||||
|
@ -714,13 +733,17 @@ def add_ns(request):
|
||||||
return form({'nsform': ns}, 'machines/machine.html', request)
|
return form({'nsform': ns}, 'machines/machine.html', request)
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
@permission_required('infra')
|
|
||||||
def edit_ns(request, nsid):
|
def edit_ns(request, nsid):
|
||||||
try:
|
|
||||||
|
can, reason = Ns.can_edit(request.user, nsid)
|
||||||
|
if not can:
|
||||||
|
messages.error(request, reason)
|
||||||
|
return redirect(reverse(
|
||||||
|
'users:profil',
|
||||||
|
kwargs={'userid':str(request.user.id)}
|
||||||
|
))
|
||||||
|
|
||||||
ns_instance = Ns.objects.get(pk=nsid)
|
ns_instance = Ns.objects.get(pk=nsid)
|
||||||
except Ns.DoesNotExist:
|
|
||||||
messages.error(request, u"Entrée inexistante" )
|
|
||||||
return redirect(reverse('machines:index-extension'))
|
|
||||||
ns = NsForm(request.POST or None, instance=ns_instance)
|
ns = NsForm(request.POST or None, instance=ns_instance)
|
||||||
if ns.is_valid():
|
if ns.is_valid():
|
||||||
with transaction.atomic(), reversion.create_revision():
|
with transaction.atomic(), reversion.create_revision():
|
||||||
|
@ -770,13 +793,17 @@ def add_txt(request):
|
||||||
return form({'txtform': txt}, 'machines/machine.html', request)
|
return form({'txtform': txt}, 'machines/machine.html', request)
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
@permission_required('infra')
|
|
||||||
def edit_txt(request, txtid):
|
def edit_txt(request, txtid):
|
||||||
try:
|
|
||||||
|
can, reason = Txt.can_edit(request.user, txtid)
|
||||||
|
if not can:
|
||||||
|
messages.error(request, reason)
|
||||||
|
return redirect(reverse(
|
||||||
|
'users:profil',
|
||||||
|
kwargs={'userid':str(request.user.id)}
|
||||||
|
))
|
||||||
|
|
||||||
txt_instance = Txt.objects.get(pk=txtid)
|
txt_instance = Txt.objects.get(pk=txtid)
|
||||||
except Txt.DoesNotExist:
|
|
||||||
messages.error(request, u"Entrée inexistante" )
|
|
||||||
return redirect(reverse('machines:index-extension'))
|
|
||||||
txt = TxtForm(request.POST or None, instance=txt_instance)
|
txt = TxtForm(request.POST or None, instance=txt_instance)
|
||||||
if txt.is_valid():
|
if txt.is_valid():
|
||||||
with transaction.atomic(), reversion.create_revision():
|
with transaction.atomic(), reversion.create_revision():
|
||||||
|
@ -826,13 +853,17 @@ def add_srv(request):
|
||||||
return form({'srvform': srv}, 'machines/machine.html', request)
|
return form({'srvform': srv}, 'machines/machine.html', request)
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
@permission_required('infra')
|
|
||||||
def edit_srv(request, srvid):
|
def edit_srv(request, srvid):
|
||||||
try:
|
|
||||||
|
can, reason = Srv.can_edit(request.user, srvid)
|
||||||
|
if not can:
|
||||||
|
messages.error(request, reason)
|
||||||
|
return redirect(reverse(
|
||||||
|
'users:profil',
|
||||||
|
kwargs={'userid':str(request.user.id)}
|
||||||
|
))
|
||||||
|
|
||||||
srv_instance = Srv.objects.get(pk=srvid)
|
srv_instance = Srv.objects.get(pk=srvid)
|
||||||
except Srv.DoesNotExist:
|
|
||||||
messages.error(request, u"Entrée inexistante" )
|
|
||||||
return redirect(reverse('machines:index-extension'))
|
|
||||||
srv = SrvForm(request.POST or None, instance=srv_instance)
|
srv = SrvForm(request.POST or None, instance=srv_instance)
|
||||||
if srv.is_valid():
|
if srv.is_valid():
|
||||||
with transaction.atomic(), reversion.create_revision():
|
with transaction.atomic(), reversion.create_revision():
|
||||||
|
@ -890,17 +921,16 @@ def add_alias(request, interfaceid):
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
def edit_alias(request, aliasid):
|
def edit_alias(request, aliasid):
|
||||||
try:
|
|
||||||
alias_instance = Domain.objects.get(pk=aliasid)
|
can, reason = Domain.can_edit(request.user, aliasid)
|
||||||
except Domain.DoesNotExist:
|
if not can:
|
||||||
messages.error(request, u"Entrée inexistante" )
|
messages.error(request, reason)
|
||||||
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(reverse(
|
return redirect(reverse(
|
||||||
'users:profil',
|
'users:profil',
|
||||||
kwargs={'userid':str(request.user.id)}
|
kwargs={'userid':str(request.user.id)}
|
||||||
))
|
))
|
||||||
|
|
||||||
|
alias_instance = Domain.objects.get(pk=aliasid)
|
||||||
alias = AliasForm(request.POST or None, instance=alias_instance, infra=request.user.has_perms(('infra',)))
|
alias = AliasForm(request.POST or None, instance=alias_instance, infra=request.user.has_perms(('infra',)))
|
||||||
if alias.is_valid():
|
if alias.is_valid():
|
||||||
with transaction.atomic(), reversion.create_revision():
|
with transaction.atomic(), reversion.create_revision():
|
||||||
|
@ -967,13 +997,17 @@ def add_service(request):
|
||||||
return form({'serviceform': service}, 'machines/machine.html', request)
|
return form({'serviceform': service}, 'machines/machine.html', request)
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
@permission_required('infra')
|
|
||||||
def edit_service(request, serviceid):
|
def edit_service(request, serviceid):
|
||||||
try:
|
|
||||||
|
can, reason = Service.can_edit(request.user, serviceid)
|
||||||
|
if not can:
|
||||||
|
messages.error(request, reason)
|
||||||
|
return redirect(reverse(
|
||||||
|
'users:profil',
|
||||||
|
kwargs={'userid':str(request.user.id)}
|
||||||
|
))
|
||||||
|
|
||||||
service_instance = Service.objects.get(pk=serviceid)
|
service_instance = Service.objects.get(pk=serviceid)
|
||||||
except Ns.DoesNotExist:
|
|
||||||
messages.error(request, u"Entrée inexistante" )
|
|
||||||
return redirect(reverse('machines:index-extension'))
|
|
||||||
service = ServiceForm(request.POST or None, instance=service_instance)
|
service = ServiceForm(request.POST or None, instance=service_instance)
|
||||||
if service.is_valid():
|
if service.is_valid():
|
||||||
with transaction.atomic(), reversion.create_revision():
|
with transaction.atomic(), reversion.create_revision():
|
||||||
|
@ -1023,13 +1057,17 @@ def add_vlan(request):
|
||||||
return form({'vlanform': vlan}, 'machines/machine.html', request)
|
return form({'vlanform': vlan}, 'machines/machine.html', request)
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
@permission_required('infra')
|
|
||||||
def edit_vlan(request, vlanid):
|
def edit_vlan(request, vlanid):
|
||||||
try:
|
|
||||||
|
can, reason = Vlan.can_edit(request.user, vlanid)
|
||||||
|
if not can:
|
||||||
|
messages.error(request, reason)
|
||||||
|
return redirect(reverse(
|
||||||
|
'users:profil',
|
||||||
|
kwargs={'userid':str(request.user.id)}
|
||||||
|
))
|
||||||
|
|
||||||
vlan_instance = Vlan.objects.get(pk=vlanid)
|
vlan_instance = Vlan.objects.get(pk=vlanid)
|
||||||
except Vlan.DoesNotExist:
|
|
||||||
messages.error(request, u"Entrée inexistante" )
|
|
||||||
return redirect(reverse('machines:index-vlan'))
|
|
||||||
vlan = VlanForm(request.POST or None, instance=vlan_instance)
|
vlan = VlanForm(request.POST or None, instance=vlan_instance)
|
||||||
if vlan.is_valid():
|
if vlan.is_valid():
|
||||||
with transaction.atomic(), reversion.create_revision():
|
with transaction.atomic(), reversion.create_revision():
|
||||||
|
@ -1079,13 +1117,17 @@ def add_nas(request):
|
||||||
return form({'nasform': nas}, 'machines/machine.html', request)
|
return form({'nasform': nas}, 'machines/machine.html', request)
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
@permission_required('infra')
|
|
||||||
def edit_nas(request, nasid):
|
def edit_nas(request, nasid):
|
||||||
try:
|
|
||||||
|
can, reason = Nas.can_edit(request.user, nasid)
|
||||||
|
if not can:
|
||||||
|
messages.error(request, reason)
|
||||||
|
return redirect(reverse(
|
||||||
|
'users:profil',
|
||||||
|
kwargs={'userid':str(request.user.id)}
|
||||||
|
))
|
||||||
|
|
||||||
nas_instance = Nas.objects.get(pk=nasid)
|
nas_instance = Nas.objects.get(pk=nasid)
|
||||||
except Nas.DoesNotExist:
|
|
||||||
messages.error(request, u"Entrée inexistante" )
|
|
||||||
return redirect(reverse('machines:index-nas'))
|
|
||||||
nas = NasForm(request.POST or None, instance=nas_instance)
|
nas = NasForm(request.POST or None, instance=nas_instance)
|
||||||
if nas.is_valid():
|
if nas.is_valid():
|
||||||
with transaction.atomic(), reversion.create_revision():
|
with transaction.atomic(), reversion.create_revision():
|
||||||
|
@ -1327,13 +1369,17 @@ def index_portlist(request):
|
||||||
return render(request, "machines/index_portlist.html", {'port_list':port_list})
|
return render(request, "machines/index_portlist.html", {'port_list':port_list})
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
@permission_required('bureau')
|
|
||||||
def edit_portlist(request, pk):
|
def edit_portlist(request, pk):
|
||||||
try:
|
|
||||||
|
can, reason = OuverturePortList.can_edit(request.user, pk)
|
||||||
|
if not can:
|
||||||
|
messages.error(request, reason)
|
||||||
|
return redirect(reverse(
|
||||||
|
'users:profil',
|
||||||
|
kwargs={'userid':str(request.user.id)}
|
||||||
|
))
|
||||||
|
|
||||||
port_list_instance = OuverturePortList.objects.get(pk=pk)
|
port_list_instance = OuverturePortList.objects.get(pk=pk)
|
||||||
except OuverturePortList.DoesNotExist:
|
|
||||||
messages.error(request, "Liste de ports inexistante")
|
|
||||||
return redirect(reverse('machines:index-portlist'))
|
|
||||||
port_list = EditOuverturePortListForm(request.POST or None, instance=port_list_instance)
|
port_list = EditOuverturePortListForm(request.POST or None, instance=port_list_instance)
|
||||||
port_formset = modelformset_factory(
|
port_formset = modelformset_factory(
|
||||||
OuverturePort,
|
OuverturePort,
|
||||||
|
@ -1373,7 +1419,7 @@ def del_portlist(request, pk):
|
||||||
@login_required
|
@login_required
|
||||||
def add_portlist(request):
|
def add_portlist(request):
|
||||||
|
|
||||||
can, reason = OuverturePort.can_create(request.user)
|
can, reason = OuverturePortList.can_create(request.user)
|
||||||
if not can:
|
if not can:
|
||||||
messages.error(request, reason)
|
messages.error(request, reason)
|
||||||
return redirect(reverse(
|
return redirect(reverse(
|
||||||
|
|
Loading…
Reference in a new issue