mirror of
https://gitlab2.federez.net/re2o/re2o
synced 2024-09-12 01:03:09 +00:00
Applique nouveau système acl sur machines
This commit is contained in:
parent
88d336816e
commit
d7ab3e7291
2 changed files with 255 additions and 94 deletions
79
machines/migrations/0070_auto_20171231_1947.py
Normal file
79
machines/migrations/0070_auto_20171231_1947.py
Normal file
|
@ -0,0 +1,79 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.10.7 on 2017-12-31 18:47
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('machines', '0069_auto_20171116_0822'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterModelOptions(
|
||||
name='domain',
|
||||
options={'permissions': (('view_domain', 'Peut voir un objet domain'),)},
|
||||
),
|
||||
migrations.AlterModelOptions(
|
||||
name='extension',
|
||||
options={'permissions': (('view_extension', 'Peut voir un objet extension'), ('use_all_extension', 'Peut utiliser toutes les extension'))},
|
||||
),
|
||||
migrations.AlterModelOptions(
|
||||
name='interface',
|
||||
options={'permissions': (('view_interface', 'Peut voir un objet interface'),)},
|
||||
),
|
||||
migrations.AlterModelOptions(
|
||||
name='iplist',
|
||||
options={'permissions': (('view_iplist', 'Peut voir un objet iplist'),)},
|
||||
),
|
||||
migrations.AlterModelOptions(
|
||||
name='iptype',
|
||||
options={'permissions': (('view_iptype', 'Peut voir un objet iptype'), ('use_all_iptype', 'Peut utiliser tous les iptype'))},
|
||||
),
|
||||
migrations.AlterModelOptions(
|
||||
name='machine',
|
||||
options={'permissions': (('view_machine', 'Peut voir un objet machine quelquonque'), ('change_machine_user', "Peut changer le propriétaire d'une machine"))},
|
||||
),
|
||||
migrations.AlterModelOptions(
|
||||
name='machinetype',
|
||||
options={'permissions': (('view_machinetype', 'Peut voir un objet machinetype'), ('use_all_machinetype', "Peut utiliser n'importe quel type de machine"))},
|
||||
),
|
||||
migrations.AlterModelOptions(
|
||||
name='mx',
|
||||
options={'permissions': (('view_mx', 'Peut voir un objet mx'),)},
|
||||
),
|
||||
migrations.AlterModelOptions(
|
||||
name='nas',
|
||||
options={'permissions': (('view_nas', 'Peut voir un objet Nas'),)},
|
||||
),
|
||||
migrations.AlterModelOptions(
|
||||
name='ns',
|
||||
options={'permissions': (('view_nx', 'Peut voir un objet nx'),)},
|
||||
),
|
||||
migrations.AlterModelOptions(
|
||||
name='ouvertureportlist',
|
||||
options={'permissions': (('view_ouvertureportlist', 'Peut voir un objet ouvertureport'),)},
|
||||
),
|
||||
migrations.AlterModelOptions(
|
||||
name='service',
|
||||
options={'permissions': (('view_service', 'Peut voir un objet service'),)},
|
||||
),
|
||||
migrations.AlterModelOptions(
|
||||
name='soa',
|
||||
options={'permissions': (('view_soa', 'Peut voir un objet soa'),)},
|
||||
),
|
||||
migrations.AlterModelOptions(
|
||||
name='srv',
|
||||
options={'permissions': (('view_soa', 'Peut voir un objet soa'),)},
|
||||
),
|
||||
migrations.AlterModelOptions(
|
||||
name='txt',
|
||||
options={'permissions': (('view_txt', 'Peut voir un objet txt'),)},
|
||||
),
|
||||
migrations.AlterModelOptions(
|
||||
name='vlan',
|
||||
options={'permissions': (('view_vlan', 'Peut voir un objet vlan'),)},
|
||||
),
|
||||
]
|
|
@ -57,6 +57,12 @@ class Machine(FieldPermissionModelMixin, models.Model):
|
|||
)
|
||||
active = models.BooleanField(default=True)
|
||||
|
||||
class Meta:
|
||||
permissions = (
|
||||
("view_machine", "Peut voir un objet machine quelquonque"),
|
||||
("change_machine_user", "Peut changer le propriétaire d'une machine"),
|
||||
)
|
||||
|
||||
def get_instance(machineid, *args, **kwargs):
|
||||
"""Récupère une instance
|
||||
:param machineid: Instance id à trouver
|
||||
|
@ -75,7 +81,7 @@ class Machine(FieldPermissionModelMixin, models.Model):
|
|||
A tuple with a boolean stating if edition is allowed and an
|
||||
explanation message.
|
||||
"""
|
||||
return user_request.has_perms(('infra',)), "Vous ne pouvez pas \
|
||||
return user_request.has_perm('machines.change_machine_user'), "Vous ne pouvez pas \
|
||||
modifier l'utilisateur de la machine."
|
||||
|
||||
def can_create(user_request, userid, *args, **kwargs):
|
||||
|
@ -90,7 +96,7 @@ class Machine(FieldPermissionModelMixin, models.Model):
|
|||
return False, u"Utilisateur inexistant"
|
||||
options, created = preferences.models.OptionalMachine.objects.get_or_create()
|
||||
max_lambdauser_interfaces = options.max_lambdauser_interfaces
|
||||
if not user_request.has_perms(('cableur',)):
|
||||
if not user_request.has_perm('machines.add_machine'):
|
||||
if user != user_request:
|
||||
return False, u"Vous ne pouvez pas ajouter une machine à un\
|
||||
autre user que vous sans droit"
|
||||
|
@ -106,7 +112,7 @@ class Machine(FieldPermissionModelMixin, models.Model):
|
|||
:param self: instance machine à éditer
|
||||
:param user_request: instance user qui fait l'edition
|
||||
:return: True ou False avec la raison le cas échéant"""
|
||||
if not user_request.has_perms(('cableur',)) and self.user != user_request:
|
||||
if not user_request.has_perm('machines.change_machine') and self.user != user_request:
|
||||
return False, u"Vous ne pouvez pas éditer une machine d'un autre user\
|
||||
que vous sans droit"
|
||||
return True, None
|
||||
|
@ -117,7 +123,7 @@ class Machine(FieldPermissionModelMixin, models.Model):
|
|||
:param self: instance machine à supprimer
|
||||
:param user_request: instance user qui fait l'edition
|
||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
||||
if not user_request.has_perms(('cableur',)) and self.user != user_request:
|
||||
if not user_request.has_perm('machines.delete_machine') and self.user != user_request:
|
||||
return False, u"Vous ne pouvez pas éditer une machine d'un autre user\
|
||||
que vous sans droit"
|
||||
return True, None
|
||||
|
@ -127,7 +133,7 @@ class Machine(FieldPermissionModelMixin, models.Model):
|
|||
droit particulier correspondant
|
||||
:param user_request: instance user qui fait l'edition
|
||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
||||
if not user_request.has_perms(('cableur',)):
|
||||
if not user_request.has_perm('machines.view_machine'):
|
||||
return False, u"Vous ne pouvez pas afficher l'ensemble des machines sans permission"
|
||||
return True, None
|
||||
|
||||
|
@ -137,7 +143,7 @@ class Machine(FieldPermissionModelMixin, models.Model):
|
|||
:param self: instance machine à éditer
|
||||
:param user_request: instance user qui fait l'edition
|
||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
||||
if not user_request.has_perms(('cableur',)) and self.user != user_request:
|
||||
if not user_request.has_perm('machines.view_machine') and self.user != user_request:
|
||||
return False, u"Vous n'avez pas droit de voir les machines autre\
|
||||
que les vôtres"
|
||||
return True, None
|
||||
|
@ -158,6 +164,12 @@ class MachineType(models.Model):
|
|||
null=True
|
||||
)
|
||||
|
||||
class Meta:
|
||||
permissions = (
|
||||
("view_machinetype", "Peut voir un objet machinetype"),
|
||||
("use_all_machinetype", "Peut utiliser n'importe quel type de machine"),
|
||||
)
|
||||
|
||||
def all_interfaces(self):
|
||||
""" Renvoie toutes les interfaces (cartes réseaux) de type
|
||||
machinetype"""
|
||||
|
@ -174,7 +186,7 @@ class MachineType(models.Model):
|
|||
un type de machine
|
||||
:param user_request: Utilisateur qui fait la requête
|
||||
:return: soit True, soit False avec la raison de l'échec"""
|
||||
return user_request.has_perms(('infra',)), u"Vous n'avez pas le droit\
|
||||
return user_request.has_perm('machines.add_machinetype'), u"Vous n'avez pas le droit\
|
||||
de créer un type de machine"
|
||||
|
||||
def can_edit(self, user_request, *args, **kwargs):
|
||||
|
@ -183,7 +195,7 @@ class MachineType(models.Model):
|
|||
:param self: Instance machinetype à editer
|
||||
:param user_request: Utilisateur qui fait la requête
|
||||
:return: soit True, soit False avec la raison de l'échec"""
|
||||
if not user_request.has_perms(('infra',)):
|
||||
if not user_request.has_perm('machines.change_machinetype'):
|
||||
return False, u"Vous n'avez pas le droit d'éditer des types de machine"
|
||||
return True, None
|
||||
|
||||
|
@ -193,7 +205,7 @@ class MachineType(models.Model):
|
|||
:param self: instance machinetype à supprimer
|
||||
:param user_request: instance user qui fait l'edition
|
||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
||||
if not user_request.has_perms(('infra',)):
|
||||
if not user_request.has_perm('machines.delete_machinetype'):
|
||||
return False, u"Vous n'avez pas le droit de supprimer des types de machines"
|
||||
return True, None
|
||||
|
||||
|
@ -206,7 +218,7 @@ class MachineType(models.Model):
|
|||
A tuple with a boolean stating if user can acces and an explanation
|
||||
message is acces is not allowed.
|
||||
"""
|
||||
if not user_request.has_perms(('infra',)):
|
||||
if not user_request.has_perm('machines.use_all_machinetype'):
|
||||
return False, u"Vous n'avez pas le droit d'utiliser tout types de machines"
|
||||
return True, None
|
||||
|
||||
|
@ -215,7 +227,7 @@ class MachineType(models.Model):
|
|||
droit particulier correspondant
|
||||
:param user_request: instance user qui fait l'edition
|
||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
||||
return user_request.has_perms(('cableur',)), u"Vous n'avez pas le droit\
|
||||
return user_request.has_perm('machines.view_machinetype'), u"Vous n'avez pas le droit\
|
||||
de voir les types de machines"
|
||||
|
||||
def can_view(self, user_request, *args, **kwargs):
|
||||
|
@ -224,7 +236,7 @@ class MachineType(models.Model):
|
|||
:param self: instance machinetype à voir
|
||||
:param user_request: instance user qui fait l'edition
|
||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
||||
return user_request.has_perms(('cableur',)), u"Vous n'avez pas le droit\
|
||||
return user_request.has_perm('machines.view_machinetype'), u"Vous n'avez pas le droit\
|
||||
de voir les types de machines"
|
||||
|
||||
def __str__(self):
|
||||
|
@ -257,6 +269,12 @@ class IpType(models.Model):
|
|||
null=True
|
||||
)
|
||||
|
||||
class Meta:
|
||||
permissions = (
|
||||
("view_iptype", "Peut voir un objet iptype"),
|
||||
("use_all_iptype", "Peut utiliser tous les iptype"),
|
||||
)
|
||||
|
||||
@cached_property
|
||||
def ip_range(self):
|
||||
""" Renvoie un objet IPRange à partir de l'objet IpType"""
|
||||
|
@ -347,7 +365,7 @@ class IpType(models.Model):
|
|||
"""Superdroit qui permet d'utiliser toutes les extensions sans restrictions
|
||||
:param user_request: instance user qui fait l'edition
|
||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
||||
return user_request.has_perms(('infra',)), None
|
||||
return user_request.has_perm('machines.use_all_iptype'), None
|
||||
|
||||
|
||||
def can_create(user_request, *args, **kwargs):
|
||||
|
@ -355,7 +373,7 @@ class IpType(models.Model):
|
|||
un type d'ip
|
||||
:param user_request: Utilisateur qui fait la requête
|
||||
:return: soit True, soit False avec la raison de l'échec"""
|
||||
return user_request.has_perms(('infra',)), u"Vous n'avez pas le droit\
|
||||
return user_request.has_perm('machines.add_iptype'), u"Vous n'avez pas le droit\
|
||||
de créer un type d'ip"
|
||||
|
||||
def can_edit(self, user_request, *args, **kwargs):
|
||||
|
@ -364,7 +382,7 @@ class IpType(models.Model):
|
|||
:param self: Instance iptype à editer
|
||||
:param user_request: Utilisateur qui fait la requête
|
||||
:return: soit True, soit False avec la raison de l'échec"""
|
||||
if not user_request.has_perms(('infra',)):
|
||||
if not user_request.has_perm('machines.change_iptype'):
|
||||
return False, u"Vous n'avez pas le droit d'éditer des types d'ip"
|
||||
return True, None
|
||||
|
||||
|
@ -374,7 +392,7 @@ class IpType(models.Model):
|
|||
:param self: Instance iptype à delete
|
||||
:param user_request: Utilisateur qui fait la requête
|
||||
:return: soit True, soit False avec la raison de l'échec"""
|
||||
return user_request.has_perms(('infra',)), u"Vous n'avez pas le droit\
|
||||
return user_request.has_perm('machines.delete_iptype'), u"Vous n'avez pas le droit\
|
||||
de supprimer un type d'ip"
|
||||
|
||||
def can_view_all(user_request, *args, **kwargs):
|
||||
|
@ -382,7 +400,7 @@ class IpType(models.Model):
|
|||
droit particulier cableur correspondant
|
||||
:param user_request: instance user qui fait l'edition
|
||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
||||
return user_request.has_perms(('cableur',)), u"Vous n'avez pas le droit\
|
||||
return user_request.has_perm('machines.view_iptype'), u"Vous n'avez pas le droit\
|
||||
de voir les types d'ip"
|
||||
|
||||
def can_view(self, user_request, *args, **kwargs):
|
||||
|
@ -391,7 +409,7 @@ class IpType(models.Model):
|
|||
:param self: instance iptype à voir
|
||||
:param user_request: instance user qui fait l'edition
|
||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
||||
return user_request.has_perms(('cableur',)), u"Vous n'avez pas le droit\
|
||||
return user_request.has_perm('machines.view_iptype'), u"Vous n'avez pas le droit\
|
||||
de voir les types d'ip"
|
||||
|
||||
def __str__(self):
|
||||
|
@ -407,6 +425,11 @@ class Vlan(models.Model):
|
|||
name = models.CharField(max_length=256)
|
||||
comment = models.CharField(max_length=256, blank=True)
|
||||
|
||||
class Meta:
|
||||
permissions = (
|
||||
("view_vlan", "Peut voir un objet vlan"),
|
||||
)
|
||||
|
||||
def get_instance(vlanid, *args, **kwargs):
|
||||
"""Récupère une instance
|
||||
:param vlanid: Instance id à trouver
|
||||
|
@ -418,7 +441,7 @@ class Vlan(models.Model):
|
|||
un vlan
|
||||
:param user_request: Utilisateur qui fait la requête
|
||||
:return: soit True, soit False avec la raison de l'échec"""
|
||||
return user_request.has_perms(('infra',)), u"Vous n'avez pas le droit\
|
||||
return user_request.has_perm('machines.add_vlan'), u"Vous n'avez pas le droit\
|
||||
de créer un vlan"
|
||||
|
||||
def can_edit(self, user_request, *args, **kwargs):
|
||||
|
@ -427,7 +450,7 @@ class Vlan(models.Model):
|
|||
:param self: Instance vlan à editer
|
||||
:param user_request: Utilisateur qui fait la requête
|
||||
:return: soit True, soit False avec la raison de l'échec"""
|
||||
if not user_request.has_perms(('infra',)):
|
||||
if not user_request.has_perm('machines.change_vlan'):
|
||||
return False, u"Vous n'avez pas le droit d'éditer des vlans"
|
||||
return True, None
|
||||
|
||||
|
@ -437,7 +460,7 @@ class Vlan(models.Model):
|
|||
:param self: Instance vlan à delete
|
||||
:param user_request: Utilisateur qui fait la requête
|
||||
:return: soit True, soit False avec la raison de l'échec"""
|
||||
return user_request.has_perms(('infra',)), u"Vous n'avez pas le droit\
|
||||
return user_request.has_perm('machines.delete_vlan'), u"Vous n'avez pas le droit\
|
||||
de suprimer un vlan"
|
||||
|
||||
def can_view_all(user_request, *args, **kwargs):
|
||||
|
@ -445,7 +468,7 @@ class Vlan(models.Model):
|
|||
droit particulier cableur correspondant
|
||||
:param user_request: instance user qui fait l'edition
|
||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
||||
return user_request.has_perms(('cableur',)), u"Vous n'avez pas le droit\
|
||||
return user_request.has_perm('machines.view_vlan'), u"Vous n'avez pas le droit\
|
||||
de voir les vlans"
|
||||
|
||||
def can_view(self, user_request, *args, **kwargs):
|
||||
|
@ -454,7 +477,7 @@ class Vlan(models.Model):
|
|||
:param self: instance vlan à voir
|
||||
:param user_request: instance user qui fait l'edition
|
||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
||||
return user_request.has_perms(('cableur',)), u"Vous n'avez pas le droit\
|
||||
return user_request.has_perm('machines.view_vlan'), u"Vous n'avez pas le droit\
|
||||
de voir les vlans"
|
||||
|
||||
def __str__(self):
|
||||
|
@ -491,6 +514,11 @@ class Nas(models.Model):
|
|||
)
|
||||
autocapture_mac = models.BooleanField(default=False)
|
||||
|
||||
class Meta:
|
||||
permissions = (
|
||||
("view_nas", "Peut voir un objet Nas"),
|
||||
)
|
||||
|
||||
def get_instance(nasid, *args, **kwargs):
|
||||
"""Récupère une instance
|
||||
:param nasid: Instance id à trouver
|
||||
|
@ -502,7 +530,7 @@ class Nas(models.Model):
|
|||
un nas
|
||||
:param user_request: instance utilisateur qui fait la requête
|
||||
:return: soit True, soit False avec la raison de l'échec"""
|
||||
return user_request.has_perms(('infra',)), u"Vous n'avez pas le droit\
|
||||
return user_request.has_perm('machines.create_nas'), u"Vous n'avez pas le droit\
|
||||
de créer un nas"
|
||||
|
||||
def can_edit(self, user_request, *args, **kwargs):
|
||||
|
@ -511,7 +539,7 @@ class Nas(models.Model):
|
|||
:param self: Instance nas à editer
|
||||
:param user_request: Utilisateur qui fait la requête
|
||||
:return: soit True, soit False avec la raison de l'échec"""
|
||||
if not user_request.has_perms(('infra',)):
|
||||
if not user_request.has_perm('machines.change_nas'):
|
||||
return False, u"Vous n'avez pas le droit d'éditer des nas"
|
||||
return True, None
|
||||
|
||||
|
@ -521,7 +549,7 @@ class Nas(models.Model):
|
|||
:param self: Instance nas à delete
|
||||
:param user_request: Utilisateur qui fait la requête
|
||||
:return: soit True, soit False avec la raison de l'échec"""
|
||||
return user_request.has_perms(('infra',)), u"Vous n'avez pas le droit\
|
||||
return user_request.has_perm('machines.delete_nas'), u"Vous n'avez pas le droit\
|
||||
de supprimer un nas"
|
||||
|
||||
def can_view_all(user_request, *args, **kwargs):
|
||||
|
@ -530,7 +558,7 @@ class Nas(models.Model):
|
|||
|
||||
:param user_request: instance user qui fait l'edition
|
||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
||||
return user_request.has_perms(('cableur',)), u"Vous n'avez pas le droit\
|
||||
return user_request.has_perm('machines.view_nas'), u"Vous n'avez pas le droit\
|
||||
de voir les nas"
|
||||
|
||||
def can_view(self, user_request, *args, **kwargs):
|
||||
|
@ -539,7 +567,7 @@ class Nas(models.Model):
|
|||
:param self: instance nas à voir
|
||||
:param user_request: instance user qui fait l'edition
|
||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
||||
return user_request.has_perms(('cableur',)), u"Vous n'avez pas le droit\
|
||||
return user_request.has_perm('machines.view_nas'), u"Vous n'avez pas le droit\
|
||||
de voir les nas"
|
||||
|
||||
def __str__(self):
|
||||
|
@ -578,6 +606,11 @@ class SOA(models.Model):
|
|||
help_text='Time To Live'
|
||||
)
|
||||
|
||||
class Meta:
|
||||
permissions = (
|
||||
("view_soa", "Peut voir un objet soa"),
|
||||
)
|
||||
|
||||
def get_instance(soaid, *args, **kwargs):
|
||||
"""Récupère une instance
|
||||
:param soaid: Instance id à trouver
|
||||
|
@ -589,7 +622,7 @@ class SOA(models.Model):
|
|||
un soa
|
||||
:param user_request: instance utilisateur qui fait la requête
|
||||
:return: soit True, soit False avec la raison de l'échec"""
|
||||
return user_request.has_perms(('infra',)), u"Vous n'avez pas le droit\
|
||||
return user_request.has_perm('machines.add_soa'), u"Vous n'avez pas le droit\
|
||||
de créer un enregistrement SOA"
|
||||
|
||||
def can_edit(self, user_request, *args, **kwargs):
|
||||
|
@ -598,7 +631,7 @@ class SOA(models.Model):
|
|||
:param self: Instance soa à editer
|
||||
:param user_request: Utilisateur qui fait la requête
|
||||
:return: soit True, soit False avec la raison de l'échec"""
|
||||
if not user_request.has_perms(('infra',)):
|
||||
if not user_request.has_perm('machines.change_soa'):
|
||||
return False, u"Vous n'avez pas le droit d'éditer des enregistrements SOA"
|
||||
return True, None
|
||||
|
||||
|
@ -608,7 +641,7 @@ class SOA(models.Model):
|
|||
:param self: Instance soa à delete
|
||||
:param user_request: Utilisateur qui fait la requête
|
||||
:return: soit True, soit False avec la raison de l'échec"""
|
||||
return user_request.has_perms(('infra',)), u"Vous n'avez pas le droit\
|
||||
return user_request.has_perm('machines.delete_soa'), u"Vous n'avez pas le droit\
|
||||
de supprimer des enregistrements SOA"
|
||||
|
||||
def can_view_all(user_request, *args, **kwargs):
|
||||
|
@ -616,7 +649,7 @@ class SOA(models.Model):
|
|||
droit particulier cableur correspondant
|
||||
:param user_request: instance user qui fait l'edition
|
||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
||||
return user_request.has_perms(('cableur',)), u"Vous n'avez pas le droit\
|
||||
return user_request.has_perm('machines.view_soa'), u"Vous n'avez pas le droit\
|
||||
de voir les enreistrement SOA"
|
||||
|
||||
def can_view(self, user_request, *args, **kwargs):
|
||||
|
@ -625,7 +658,7 @@ class SOA(models.Model):
|
|||
:param self: instance soa à voir
|
||||
:param user_request: instance user qui fait l'edition
|
||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
||||
return user_request.has_perms(('cableur',)), u"Vous n'avez pas le droit\
|
||||
return user_request.has_perm('machines.view_soa'), u"Vous n'avez pas le droit\
|
||||
de voir les enreistrement SOA"
|
||||
|
||||
def __str__(self):
|
||||
|
@ -698,6 +731,12 @@ class Extension(models.Model):
|
|||
default=SOA.new_default_soa
|
||||
)
|
||||
|
||||
class Meta:
|
||||
permissions = (
|
||||
("view_extension", "Peut voir un objet extension"),
|
||||
("use_all_extension", "Peut utiliser toutes les extension"),
|
||||
)
|
||||
|
||||
@cached_property
|
||||
def dns_entry(self):
|
||||
""" Une entrée DNS A et AAAA sur origin (zone self)"""
|
||||
|
@ -721,7 +760,7 @@ class Extension(models.Model):
|
|||
une extension
|
||||
:param user_request: instance utilisateur qui fait la requête
|
||||
:return: soit True, soit False avec la raison de l'échec"""
|
||||
return user_request.has_perms(('infra',)), u"Vous n'avez pas le droit\
|
||||
return user_request.has_perm('machines.add_extension'), u"Vous n'avez pas le droit\
|
||||
de créer une extension"
|
||||
|
||||
def can_edit(self, user_request, *args, **kwargs):
|
||||
|
@ -730,7 +769,7 @@ class Extension(models.Model):
|
|||
:param self: Instance extension à editer
|
||||
:param user_request: Utilisateur qui fait la requête
|
||||
:return: soit True, soit False avec la raison de l'échec"""
|
||||
if not user_request.has_perms(('infra',)):
|
||||
if not user_request.has_perm('machines.change_extension'):
|
||||
return False, u"Vous n'avez pas le droit d'éditer des extensions"
|
||||
return True, None
|
||||
|
||||
|
@ -740,7 +779,7 @@ class Extension(models.Model):
|
|||
:param self: Instance extension à delete
|
||||
:param user_request: Utilisateur qui fait la requête
|
||||
:return: soit True, soit False avec la raison de l'échec"""
|
||||
return user_request.has_perms(('infra',)), u"Vous n'avez pas le droit\
|
||||
return user_request.has_perm('machines.delete_extension'), u"Vous n'avez pas le droit\
|
||||
de supprimer des extension"
|
||||
|
||||
def can_view_all(user_request, *args, **kwargs):
|
||||
|
@ -748,14 +787,14 @@ class Extension(models.Model):
|
|||
droit particulier cableur correspondant
|
||||
:param user_request: instance user qui fait l'edition
|
||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
||||
return user_request.has_perms(('cableur',)), u"Vous n'avez pas le droit\
|
||||
return user_request.has_perm('machines.view_extension'), u"Vous n'avez pas le droit\
|
||||
de voir les extensions"
|
||||
|
||||
def can_use_all(user_request, *args, **kwargs):
|
||||
"""Superdroit qui permet d'utiliser toutes les extensions sans restrictions
|
||||
:param user_request: instance user qui fait l'edition
|
||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
||||
return user_request.has_perms(('infra',)), None
|
||||
return user_request.has_perm('machines.use_all_extension'), None
|
||||
|
||||
def can_view(self, user_request, *args, **kwargs):
|
||||
"""Vérifie qu'on peut bien voir cette instance particulière avec
|
||||
|
@ -763,7 +802,7 @@ class Extension(models.Model):
|
|||
:param self: instance extension à voir
|
||||
:param user_request: instance user qui fait l'edition
|
||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
||||
return user_request.has_perms(('cableur',)), u"Vous n'avez pas le droit\
|
||||
return user_request.has_perm('machines.view_extension'), u"Vous n'avez pas le droit\
|
||||
de voir les extensions"
|
||||
|
||||
def __str__(self):
|
||||
|
@ -785,6 +824,11 @@ class Mx(models.Model):
|
|||
priority = models.PositiveIntegerField(unique=True)
|
||||
name = models.OneToOneField('Domain', on_delete=models.PROTECT)
|
||||
|
||||
class Meta:
|
||||
permissions = (
|
||||
("view_mx", "Peut voir un objet mx"),
|
||||
)
|
||||
|
||||
@cached_property
|
||||
def dns_entry(self):
|
||||
"""Renvoie l'entrée DNS complète pour un MX à mettre dans les
|
||||
|
@ -802,7 +846,7 @@ class Mx(models.Model):
|
|||
un mx
|
||||
:param user_request: instance utilisateur qui fait la requête
|
||||
:return: soit True, soit False avec la raison de l'échec"""
|
||||
return user_request.has_perms(('infra',)), u"Vous n'avez pas le droit\
|
||||
return user_request.has_perm('machines.add_mx'), u"Vous n'avez pas le droit\
|
||||
de créer un enregistrement MX"
|
||||
|
||||
def can_edit(self, user_request, *args, **kwargs):
|
||||
|
@ -811,7 +855,7 @@ class Mx(models.Model):
|
|||
:param self: Instance mx à editer
|
||||
:param user_request: Utilisateur qui fait la requête
|
||||
:return: soit True, soit False avec la raison de l'échec"""
|
||||
if not user_request.has_perms(('infra',)):
|
||||
if not user_request.has_perm('machines.change_mx'):
|
||||
return False, u"Vous n'avez pas le droit d'éditer des enregstrements MX"
|
||||
return True, None
|
||||
|
||||
|
@ -821,7 +865,7 @@ class Mx(models.Model):
|
|||
:param self: Instance mx à delete
|
||||
:param user_request: Utilisateur qui fait la requête
|
||||
:return: soit True, soit False avec la raison de l'échec"""
|
||||
return user_request.has_perms(('infra',)), u"Vous n'avez pas le droit\
|
||||
return user_request.has_perm('machines.delete_mx'), u"Vous n'avez pas le droit\
|
||||
de supprimer un enregistrement MX"
|
||||
|
||||
def can_view_all(user_request, *args, **kwargs):
|
||||
|
@ -829,7 +873,7 @@ class Mx(models.Model):
|
|||
droit particulier cableur correspondant
|
||||
:param user_request: instance user qui fait l'edition
|
||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
||||
return user_request.has_perms(('cableur',)), u"Vous n'avez pas le droit\
|
||||
return user_request.has_perm('machines.view_mx'), u"Vous n'avez pas le droit\
|
||||
de voir les enregistrements MX"
|
||||
|
||||
def can_view(self, user_request, *args, **kwargs):
|
||||
|
@ -838,7 +882,7 @@ class Mx(models.Model):
|
|||
:param self: instance mx à voir
|
||||
:param user_request: instance user qui fait l'edition
|
||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
||||
return user_request.has_perms(('cableur',)), u"Vous n'avez pas le droit\
|
||||
return user_request.has_perm('machines.view_mx'), u"Vous n'avez pas le droit\
|
||||
de voir les enregistrements MX"
|
||||
|
||||
def __str__(self):
|
||||
|
@ -852,6 +896,11 @@ class Ns(models.Model):
|
|||
zone = models.ForeignKey('Extension', on_delete=models.PROTECT)
|
||||
ns = models.OneToOneField('Domain', on_delete=models.PROTECT)
|
||||
|
||||
class Meta:
|
||||
permissions = (
|
||||
("view_nx", "Peut voir un objet nx"),
|
||||
)
|
||||
|
||||
@cached_property
|
||||
def dns_entry(self):
|
||||
"""Renvoie un enregistrement NS complet pour les filezones"""
|
||||
|
@ -868,7 +917,7 @@ class Ns(models.Model):
|
|||
un ns
|
||||
:param user_request: instance utilisateur qui fait la requête
|
||||
:return: soit True, soit False avec la raison de l'échec"""
|
||||
return user_request.has_perms(('infra',)), u"Vous n'avez pas le droit\
|
||||
return user_request.has_perm('machines.add_ns'), u"Vous n'avez pas le droit\
|
||||
de créer un enregistrement NS"
|
||||
|
||||
def can_edit(self, user_request, *args, **kwargs):
|
||||
|
@ -877,7 +926,7 @@ class Ns(models.Model):
|
|||
:param self: Instance ns à editer
|
||||
:param user_request: Utilisateur qui fait la requête
|
||||
:return: soit True, soit False avec la raison de l'échec"""
|
||||
if not user_request.has_perms(('infra',)):
|
||||
if not user_request.has_perm('machines.change_ns'):
|
||||
return False, u"Vous n'avez pas le droit d'éditer des enregistrements NS"
|
||||
return True, None
|
||||
|
||||
|
@ -887,7 +936,7 @@ class Ns(models.Model):
|
|||
:param self: Instance ns à delete
|
||||
:param user_request: Utilisateur qui fait la requête
|
||||
:return: soit True, soit False avec la raison de l'échec"""
|
||||
return user_request.has_perms(('infra',)), u"Vous n'avez pas le droit\
|
||||
return user_request.has_perm('machines.del_ns'), u"Vous n'avez pas le droit\
|
||||
de supprimer un enregistrement NS"
|
||||
|
||||
def can_view_all(user_request, *args, **kwargs):
|
||||
|
@ -895,7 +944,7 @@ class Ns(models.Model):
|
|||
droit particulier cableur correspondant
|
||||
:param user_request: instance user qui fait l'edition
|
||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
||||
return user_request.has_perms(('cableur',)), u"Vous n'avez pas le droit\
|
||||
return user_request.has_perm('machines.view_ns'), u"Vous n'avez pas le droit\
|
||||
de voir les enregistrements NS"
|
||||
|
||||
def can_view(self, user_request, *args, **kwargs):
|
||||
|
@ -904,7 +953,7 @@ class Ns(models.Model):
|
|||
:param self: instance ns à voir
|
||||
:param user_request: instance user qui fait l'edition
|
||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
||||
return user_request.has_perms(('cableur',)), u"Vous n'avez pas le droit\
|
||||
return user_request.has_perm('machines.view_ns'), u"Vous n'avez pas le droit\
|
||||
de voir les enregistrements NS"
|
||||
|
||||
def __str__(self):
|
||||
|
@ -919,6 +968,11 @@ class Txt(models.Model):
|
|||
field1 = models.CharField(max_length=255)
|
||||
field2 = models.TextField(max_length=2047)
|
||||
|
||||
class Meta:
|
||||
permissions = (
|
||||
("view_txt", "Peut voir un objet txt"),
|
||||
)
|
||||
|
||||
def get_instance(txtid, *args, **kwargs):
|
||||
"""Récupère une instance
|
||||
:param txtid: Instance id à trouver
|
||||
|
@ -930,7 +984,7 @@ class Txt(models.Model):
|
|||
un txt
|
||||
:param user_request: instance utilisateur qui fait la requête
|
||||
:return: soit True, soit False avec la raison de l'échec"""
|
||||
return user_request.has_perms(('infra',)), u"Vous n'avez pas le droit\
|
||||
return user_request.has_perm('machines.add_txt'), u"Vous n'avez pas le droit\
|
||||
de créer un enregistrement TXT"
|
||||
|
||||
def can_edit(self, user_request, *args, **kwargs):
|
||||
|
@ -939,7 +993,7 @@ class Txt(models.Model):
|
|||
:param self: Instance txt à editer
|
||||
:param user_request: Utilisateur qui fait la requête
|
||||
:return: soit True, soit False avec la raison de l'échec"""
|
||||
if not user_request.has_perms(('infra',)):
|
||||
if not user_request.has_perm('machines.change_txt'):
|
||||
return False, u"Vous n'avez pas le droit d'éditer des enregistrement TXT"
|
||||
return True, None
|
||||
|
||||
|
@ -949,7 +1003,7 @@ class Txt(models.Model):
|
|||
:param self: Instance txt à delete
|
||||
:param user_request: Utilisateur qui fait la requête
|
||||
:return: soit True, soit False avec la raison de l'échec"""
|
||||
return user_request.has_perms(('infra',)), u"Vous n'avez pas le droit\
|
||||
return user_request.has_perm('machines.delete_txt'), u"Vous n'avez pas le droit\
|
||||
de supprimer des enregistrements TXT"
|
||||
|
||||
def can_view_all(user_request, *args, **kwargs):
|
||||
|
@ -957,7 +1011,7 @@ class Txt(models.Model):
|
|||
droit particulier cableur correspondant
|
||||
:param user_request: instance user qui fait l'edition
|
||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
||||
return user_request.has_perms(('cableur',)), u"Vous n'avez pas le droit\
|
||||
return user_request.has_perm('machines.view_txt'), u"Vous n'avez pas le droit\
|
||||
de voir les enregistrements TXT"
|
||||
|
||||
def can_view(self, user_request, *args, **kwargs):
|
||||
|
@ -966,7 +1020,7 @@ class Txt(models.Model):
|
|||
:param self: instance txt à voir
|
||||
:param user_request: instance user qui fait l'edition
|
||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
||||
return user_request.has_perms(('cableur',)), u"Vous n'avez pas le droit\
|
||||
return user_request.has_perm('machines.view_txt'), u"Vous n'avez pas le droit\
|
||||
de voir les enregistrements TXT"
|
||||
|
||||
def __str__(self):
|
||||
|
@ -1022,6 +1076,11 @@ class Srv(models.Model):
|
|||
help_text="Serveur cible"
|
||||
)
|
||||
|
||||
class Meta:
|
||||
permissions = (
|
||||
("view_soa", "Peut voir un objet soa"),
|
||||
)
|
||||
|
||||
def get_instance(srvid, *args, **kwargs):
|
||||
"""Récupère une instance
|
||||
:param srvid: Instance id à trouver
|
||||
|
@ -1033,7 +1092,7 @@ class Srv(models.Model):
|
|||
un srv
|
||||
:param user_request: instance utilisateur qui fait la requête
|
||||
:return: soit True, soit False avec la raison de l'échec"""
|
||||
return user_request.has_perms(('infra',)), u"Vous n'avez pas le droit\
|
||||
return user_request.has_perm('machines.add_soa'), u"Vous n'avez pas le droit\
|
||||
de créer un enregistrement SRV"
|
||||
|
||||
def can_edit(self, user_request, *args, **kwargs):
|
||||
|
@ -1042,7 +1101,7 @@ class Srv(models.Model):
|
|||
:param self: Instance srv à editer
|
||||
:param user_request: Utilisateur qui fait la requête
|
||||
:return: soit True, soit False avec la raison de l'échec"""
|
||||
if not user_request.has_perms(('infra',)):
|
||||
if not user_request.has_perm('machines.change_soa'):
|
||||
return False, u"Vous n'avez pas le droit d'éditer des enregistrements SRV"
|
||||
return True, None
|
||||
|
||||
|
@ -1052,7 +1111,7 @@ class Srv(models.Model):
|
|||
:param self: Instance srv à delete
|
||||
:param user_request: Utilisateur qui fait la requête
|
||||
:return: soit True, soit False avec la raison de l'échec"""
|
||||
return user_request.has_perms(('infra',)), u"Vous n'avez pas le droit\
|
||||
return user_request.has_perm('machines.delete_soa'), u"Vous n'avez pas le droit\
|
||||
de supprimer un enregistrement SRV"
|
||||
|
||||
def can_view_all(user_request, *args, **kwargs):
|
||||
|
@ -1060,7 +1119,7 @@ class Srv(models.Model):
|
|||
droit particulier cableur correspondant
|
||||
:param user_request: instance user qui fait l'edition
|
||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
||||
return user_request.has_perms(('cableur',)), u"Vous n'avez pas le droit\
|
||||
return user_request.has_perm('machines.view_soa'), u"Vous n'avez pas le droit\
|
||||
de voir les enregistrements SRV"
|
||||
|
||||
def can_view(self, user_request, *args, **kwargs):
|
||||
|
@ -1069,7 +1128,7 @@ class Srv(models.Model):
|
|||
:param self: instance srv à voir
|
||||
:param user_request: instance user qui fait l'edition
|
||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
||||
return user_request.has_perms(('cableur',)), u"Vous n'avez pas le droit\
|
||||
return user_request.has_perm('machines.view_soa'), u"Vous n'avez pas le droit\
|
||||
de voir les enregistrements SRV"
|
||||
|
||||
def __str__(self):
|
||||
|
@ -1108,6 +1167,11 @@ class Interface(models.Model):
|
|||
details = models.CharField(max_length=255, blank=True)
|
||||
port_lists = models.ManyToManyField('OuverturePortList', blank=True)
|
||||
|
||||
class Meta:
|
||||
permissions = (
|
||||
("view_interface", "Peut voir un objet interface"),
|
||||
)
|
||||
|
||||
@cached_property
|
||||
def is_active(self):
|
||||
""" Renvoie si une interface doit avoir accès ou non """
|
||||
|
@ -1205,7 +1269,7 @@ class Interface(models.Model):
|
|||
machine = Machine.objects.get(pk=machineid)
|
||||
except Machine.DoesNotExist:
|
||||
return False, u"Machine inexistante"
|
||||
if not user_request.has_perms(('cableur',)):
|
||||
if not user_request.has_perm('machines.add_interface'):
|
||||
options, created = preferences.models.OptionalMachine.objects.get_or_create()
|
||||
max_lambdauser_interfaces = options.max_lambdauser_interfaces
|
||||
if machine.user != user_request:
|
||||
|
@ -1223,7 +1287,7 @@ class Interface(models.Model):
|
|||
:param self: Instance interface à editer
|
||||
:param user_request: Utilisateur qui fait la requête
|
||||
:return: soit True, soit False avec la raison de l'échec"""
|
||||
if not user_request.has_perms(('cableur',)) and self.machine.user != user_request:
|
||||
if not user_request.has_perm('machines.change_interface') and self.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
|
||||
|
@ -1234,7 +1298,7 @@ class Interface(models.Model):
|
|||
:param self: Instance interface à del
|
||||
:param user_request: Utilisateur qui fait la requête
|
||||
:return: soit True, soit False avec la raison de l'échec"""
|
||||
if not user_request.has_perms(('cableur',)) and self.machine.user != user_request:
|
||||
if not user_request.has_perm('machines.delete_interface') and self.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
|
||||
|
@ -1244,7 +1308,7 @@ class Interface(models.Model):
|
|||
droit particulier cableur correspondant
|
||||
:param user_request: instance user qui fait l'edition
|
||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
||||
if not user_request.has_perms(('cableur',)):
|
||||
if not user_request.has_perm('machines.view_interface'):
|
||||
return False, u"Vous n'avez pas le droit de voir des machines autre\
|
||||
que les vôtres"
|
||||
return True, None
|
||||
|
@ -1255,7 +1319,7 @@ class Interface(models.Model):
|
|||
:param self: instance interface à voir
|
||||
:param user_request: instance user qui fait l'edition
|
||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
||||
if not user_request.has_perms(('cableur',)) and self.machine.user != user_request:
|
||||
if not user_request.has_perm('machines.view_interface') and self.machine.user != user_request:
|
||||
return False, u"Vous n'avez pas le droit de voir des machines autre\
|
||||
que les vôtres"
|
||||
return True, None
|
||||
|
@ -1307,6 +1371,9 @@ class Domain(models.Model):
|
|||
|
||||
class Meta:
|
||||
unique_together = (("name", "extension"),)
|
||||
permissions = (
|
||||
("view_domain", "Peut voir un objet domain"),
|
||||
)
|
||||
|
||||
def get_extension(self):
|
||||
""" Retourne l'extension de l'interface parente si c'est un A
|
||||
|
@ -1387,7 +1454,7 @@ class Domain(models.Model):
|
|||
interface = Interface.objects.get(pk=interfaceid)
|
||||
except Interface.DoesNotExist:
|
||||
return False, u"Interface inexistante"
|
||||
if not user_request.has_perms(('cableur',)):
|
||||
if not user_request.has_perm('machines.add_domain'):
|
||||
options, created = preferences.models.OptionalMachine.objects.get_or_create()
|
||||
max_lambdauser_aliases = options.max_lambdauser_aliases
|
||||
if interface.machine.user != user_request:
|
||||
|
@ -1409,7 +1476,7 @@ class Domain(models.Model):
|
|||
:param self: Instance domain à editer
|
||||
:param user_request: Utilisateur qui fait la requête
|
||||
:return: soit True, soit False avec la raison de l'échec"""
|
||||
if not user_request.has_perms(('cableur',)) and\
|
||||
if not user_request.has_perm('machines.change_domain') and\
|
||||
self.get_source_interface.machine.user != user_request:
|
||||
return False, u"Vous ne pouvez pas editer un alias à une machine\
|
||||
d'un autre user que vous sans droit"
|
||||
|
@ -1421,7 +1488,7 @@ class Domain(models.Model):
|
|||
:param self: Instance domain à del
|
||||
:param user_request: Utilisateur qui fait la requête
|
||||
:return: soit True, soit False avec la raison de l'échec"""
|
||||
if not user_request.has_perms(('cableur',)) and\
|
||||
if not user_request.has_perm('machines.delete_domain') and\
|
||||
self.get_source_interface.machine.user != user_request:
|
||||
return False, u"Vous ne pouvez pas supprimer un alias à une machine\
|
||||
d'un autre user que vous sans droit"
|
||||
|
@ -1432,7 +1499,7 @@ class Domain(models.Model):
|
|||
droit particulier cableur correspondant
|
||||
:param user_request: instance user qui fait l'edition
|
||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
||||
if not user_request.has_perms(('cableur',)):
|
||||
if not user_request.has_perm('machines.view_domain'):
|
||||
return False, u"Vous ne pouvez pas supprimer un alias à une machine\
|
||||
d'un autre user que vous sans droit"
|
||||
return True, None
|
||||
|
@ -1443,7 +1510,7 @@ class Domain(models.Model):
|
|||
:param self: instance domain à voir
|
||||
:param user_request: instance user qui fait l'edition
|
||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
||||
if not user_request.has_perms(('cableur',)) and\
|
||||
if not user_request.has_perm('machines.view_domain') and\
|
||||
self.get_source_interface.machine.user != user_request:
|
||||
return False, u"Vous n'avez pas le droit de voir des machines autre\
|
||||
que les vôtres"
|
||||
|
@ -1459,6 +1526,11 @@ class IpList(models.Model):
|
|||
ipv4 = models.GenericIPAddressField(protocol='IPv4', unique=True)
|
||||
ip_type = models.ForeignKey('IpType', on_delete=models.CASCADE)
|
||||
|
||||
class Meta:
|
||||
permissions = (
|
||||
("view_iplist", "Peut voir un objet iplist"),
|
||||
)
|
||||
|
||||
@cached_property
|
||||
def need_infra(self):
|
||||
""" Permet de savoir si un user basique peut assigner cette ip ou
|
||||
|
@ -1487,7 +1559,7 @@ class IpList(models.Model):
|
|||
une ip
|
||||
:param user_request: instance utilisateur qui fait la requête
|
||||
:return: soit True, soit False avec la raison de l'échec"""
|
||||
return user_request.has_perms(('infra',)), u"Vous n'avez pas le droit\
|
||||
return user_request.has_perm('machines.add_iplist'), u"Vous n'avez pas le droit\
|
||||
de créer une ip"
|
||||
|
||||
def can_edit(self, user_request, *args, **kwargs):
|
||||
|
@ -1496,7 +1568,7 @@ class IpList(models.Model):
|
|||
:param self: Instance ip à editer
|
||||
:param user_request: Utilisateur qui fait la requête
|
||||
:return: soit True, soit False avec la raison de l'échec"""
|
||||
if not user_request.has_perms(('infra',)):
|
||||
if not user_request.has_perm('machines.change_iplist'):
|
||||
return False, u"Vous n'avez pas le droit d'éditer des enregistrements ip"
|
||||
return True, None
|
||||
|
||||
|
@ -1506,7 +1578,7 @@ class IpList(models.Model):
|
|||
:param self: Instance ip à delete
|
||||
:param user_request: Utilisateur qui fait la requête
|
||||
:return: soit True, soit False avec la raison de l'échec"""
|
||||
if not user_request.has_perms(('infra',)):
|
||||
if not user_request.has_perm('machines.delete_iplist'):
|
||||
return False, u"Vous n'avez pas le droit d'éditer des enregistrements ip"
|
||||
return True, None
|
||||
|
||||
|
@ -1515,7 +1587,7 @@ class IpList(models.Model):
|
|||
droit particulier cableur correspondant
|
||||
:param user_request: instance user qui fait l'edition
|
||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
||||
if not user_request.has_perms(('infra',)):
|
||||
if not user_request.has_perm('machines.view_iplist'):
|
||||
return False, u"Vous n'avez pas le droit de voir des enregistrements ip"
|
||||
return True, None
|
||||
|
||||
|
@ -1525,7 +1597,7 @@ class IpList(models.Model):
|
|||
:param self: instance iplist à voir
|
||||
:param user_request: instance user qui fait l'edition
|
||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
||||
if not user_request.has_perms(('infra',)):
|
||||
if not user_request.has_perm('machines.view_iplist'):
|
||||
return False, u"Vous n'avez pas le droit de voir des enregistrements ip"
|
||||
return True, None
|
||||
|
||||
|
@ -1548,6 +1620,11 @@ class Service(models.Model):
|
|||
)
|
||||
servers = models.ManyToManyField('Interface', through='Service_link')
|
||||
|
||||
class Meta:
|
||||
permissions = (
|
||||
("view_service", "Peut voir un objet service"),
|
||||
)
|
||||
|
||||
def ask_regen(self):
|
||||
""" Marque à True la demande de régénération pour un service x """
|
||||
Service_link.objects.filter(service=self).exclude(asked_regen=True)\
|
||||
|
@ -1580,7 +1657,7 @@ class Service(models.Model):
|
|||
un service
|
||||
:param user_request: instance utilisateur qui fait la requête
|
||||
:return: soit True, soit False avec la raison de l'échec"""
|
||||
return user_request.has_perms(('infra',)), u"Vous n'avez pas le droit\
|
||||
return user_request.has_perm('machines.add_service'), u"Vous n'avez pas le droit\
|
||||
de créer un service"
|
||||
|
||||
def can_edit(self, user_request, *args, **kwargs):
|
||||
|
@ -1589,7 +1666,7 @@ class Service(models.Model):
|
|||
:param self: Instance service à editer
|
||||
:param user_request: Utilisateur qui fait la requête
|
||||
:return: soit True, soit False avec la raison de l'échec"""
|
||||
if not user_request.has_perms(('infra',)):
|
||||
if not user_request.has_perm('machines.change_service'):
|
||||
return False, u"Vous n'avez pas le droit d'éditer des services"
|
||||
return True, None
|
||||
|
||||
|
@ -1599,7 +1676,7 @@ class Service(models.Model):
|
|||
:param self: Instance service à delete
|
||||
:param user_request: Utilisateur qui fait la requête
|
||||
:return: soit True, soit False avec la raison de l'échec"""
|
||||
return user_request.has_perms(('infra',)), u"Vous n'avez pas le droit\
|
||||
return user_request.has_perm('machines.delete_service'), u"Vous n'avez pas le droit\
|
||||
de supprimer un service"
|
||||
|
||||
def can_view_all(user_request, *args, **kwargs):
|
||||
|
@ -1607,7 +1684,7 @@ class Service(models.Model):
|
|||
droit particulier cableur correspondant
|
||||
:param user_request: instance user qui fait l'edition
|
||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
||||
return user_request.has_perms(('cableur',)), u"Vous n'avez pas le droit\
|
||||
return user_request.has_perm('machines.view_service'), u"Vous n'avez pas le droit\
|
||||
de voir des services"
|
||||
|
||||
def can_view(self, user_request, *args, **kwargs):
|
||||
|
@ -1616,7 +1693,7 @@ class Service(models.Model):
|
|||
:param self: instance service à voir
|
||||
:param user_request: instance user qui fait l'edition
|
||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
||||
return user_request.has_perms(('cableur',)), u"Vous n'avez pas le droit\
|
||||
return user_request.has_perm('machines.view_service'), u"Vous n'avez pas le droit\
|
||||
de voir des services"
|
||||
|
||||
def __str__(self):
|
||||
|
@ -1670,7 +1747,7 @@ class Service_link(models.Model):
|
|||
un servicelink
|
||||
:param user_request: instance utilisateur qui fait la requête
|
||||
:return: soit True, soit False avec la raison de l'échec"""
|
||||
return user_request.has_perms(('infra',)), u"Vous n'avez pas le droit\
|
||||
return user_request.has_perm('machines.add_service'), u"Vous n'avez pas le droit\
|
||||
de créer un service"
|
||||
|
||||
def can_edit(self, user_request, *args, **kwargs):
|
||||
|
@ -1679,7 +1756,7 @@ class Service_link(models.Model):
|
|||
:param self: Instance servicelink à editer
|
||||
:param user_request: Utilisateur qui fait la requête
|
||||
:return: soit True, soit False avec la raison de l'échec"""
|
||||
if not user_request.has_perms(('infra',)):
|
||||
if not user_request.has_perm('machines.change_service'):
|
||||
return False, u"Vous n'avez pas le droit d'éditer des services"
|
||||
return True, None
|
||||
|
||||
|
@ -1689,7 +1766,7 @@ class Service_link(models.Model):
|
|||
:param self: Instance servicelink à delete
|
||||
:param user_request: Utilisateur qui fait la requête
|
||||
:return: soit True, soit False avec la raison de l'échec"""
|
||||
if not user_request.has_perms(('infra',)):
|
||||
if not user_request.has_perm('machines.delete_service'):
|
||||
return False, u"Vous n'avez pas le droit d'éditer des services"
|
||||
return True, None
|
||||
|
||||
|
@ -1698,7 +1775,7 @@ class Service_link(models.Model):
|
|||
droit particulier cableur correspondant
|
||||
:param user_request: instance user qui fait l'edition
|
||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
||||
return user_request.has_perms(('cableur',)), u"Vous n'avez pas le droit\
|
||||
return user_request.has_perm('machines.view_service'), u"Vous n'avez pas le droit\
|
||||
de voir des liens de services"
|
||||
|
||||
def can_view(self, user_request, *args, **kwargs):
|
||||
|
@ -1707,7 +1784,7 @@ class Service_link(models.Model):
|
|||
:param self: instance service à voir
|
||||
:param user_request: instance user qui fait l'edition
|
||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
||||
return user_request.has_perms(('cableur',)), u"Vous n'avez pas le droit\
|
||||
return user_request.has_perm('machines.view_service'), u"Vous n'avez pas le droit\
|
||||
de voir des liens de services"
|
||||
|
||||
def __str__(self):
|
||||
|
@ -1723,6 +1800,11 @@ class OuverturePortList(models.Model):
|
|||
max_length=255
|
||||
)
|
||||
|
||||
class Meta:
|
||||
permissions = (
|
||||
("view_ouvertureportlist", "Peut voir un objet ouvertureport"),
|
||||
)
|
||||
|
||||
def get_instance(ouvertureportlistid, *args, **kwargs):
|
||||
"""Récupère une instance
|
||||
:param ouvertureportlistid: Instance id à trouver
|
||||
|
@ -1734,7 +1816,7 @@ class OuverturePortList(models.Model):
|
|||
une ouverture de port
|
||||
:param user_request: instance utilisateur qui fait la requête
|
||||
:return: soit True, soit False avec la raison de l'échec"""
|
||||
return user_request.has_perms(('bureau',)) , u"Vous n'avez pas le droit\
|
||||
return user_request.has_perm('machines.add_ouvertureportlist') , u"Vous n'avez pas le droit\
|
||||
d'ouvrir un port"
|
||||
|
||||
def can_edit(self, user_request, *args, **kwargs):
|
||||
|
@ -1743,7 +1825,7 @@ class OuverturePortList(models.Model):
|
|||
:param self: Instance ouvertureportlist à editer
|
||||
:param user_request: Utilisateur qui fait la requête
|
||||
:return: soit True, soit False avec la raison de l'échec"""
|
||||
if not user_request.has_perms(('bureau',)):
|
||||
if not user_request.has_perm('machines.change_ouvertureportlist'):
|
||||
return False, u"Vous n'avez pas le droit d'éditer des ouvertures de port"
|
||||
return True, None
|
||||
|
||||
|
@ -1753,7 +1835,7 @@ class OuverturePortList(models.Model):
|
|||
:param self: Instance ouvertureportlist à delete
|
||||
:param user_request: Utilisateur qui fait la requête
|
||||
:return: soit True, soit False avec la raison de l'échec"""
|
||||
if not user_request.has_perms(('bureau',)):
|
||||
if not user_request.has_perm('machines.delete_ouvertureportlist'):
|
||||
return False, u"Vous n'avez pas le droit de supprimer une ouverture\
|
||||
de port"
|
||||
if self.interface_set.all():
|
||||
|
@ -1765,7 +1847,7 @@ class OuverturePortList(models.Model):
|
|||
droit particulier cableur correspondant
|
||||
:param user_request: instance user qui fait l'edition
|
||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
||||
return user_request.has_perms(('cableur',)), u"Vous n'avez pas le droit\
|
||||
return user_request.has_perm('machines.view_ouvertureportlist'), u"Vous n'avez pas le droit\
|
||||
de voir des ouverture de ports"
|
||||
|
||||
def can_view(self, user_request, *args, **kwargs):
|
||||
|
@ -1774,7 +1856,7 @@ class OuverturePortList(models.Model):
|
|||
:param self: instance ouvertureport à voir
|
||||
:param user_request: instance user qui fait l'edition
|
||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
||||
return user_request.has_perms(('cableur',)), u"Vous n'avez pas le droit\
|
||||
return user_request.has_perm('machines.view_ouvertureportlist'), u"Vous n'avez pas le droit\
|
||||
de voir des ouverture de ports"
|
||||
|
||||
def __str__(self):
|
||||
|
@ -1858,7 +1940,7 @@ class OuverturePort(models.Model):
|
|||
une ouverture de port
|
||||
:param user_request: instance utilisateur qui fait la requête
|
||||
:return: soit True, soit False avec la raison de l'échec"""
|
||||
return user_request.has_perms(('bureau',)) , u"Vous n'avez pas le droit\
|
||||
return user_request.has_perm('machines.add_ouvertureportlist') , u"Vous n'avez pas le droit\
|
||||
d'ouvrir un port"
|
||||
|
||||
def can_edit(self, user_request, *args, **kwargs):
|
||||
|
@ -1867,7 +1949,7 @@ class OuverturePort(models.Model):
|
|||
:param self: Instance ouvertureport à editer
|
||||
:param user_request: Utilisateur qui fait la requête
|
||||
:return: soit True, soit False avec la raison de l'échec"""
|
||||
if not user_request.has_perms(('bureau',)):
|
||||
if not user_request.has_perm('machines.change_ouvertureportlist'):
|
||||
return False, u"Vous n'avez pas le droit d'éditer des ouvertures de port"
|
||||
return True, None
|
||||
|
||||
|
@ -1877,7 +1959,7 @@ class OuverturePort(models.Model):
|
|||
:param self: Instance ouvertureport à delete
|
||||
:param user_request: Utilisateur qui fait la requête
|
||||
:return: soit True, soit False avec la raison de l'échec"""
|
||||
if not user_request.has_perms(('bureau',)):
|
||||
if not user_request.has_perm('machines.delete_ouvertureportlist'):
|
||||
return False, u"Vous n'avez pas le droit d'éditer des ouvertures de port"
|
||||
return True, None
|
||||
|
||||
|
@ -1886,7 +1968,7 @@ class OuverturePort(models.Model):
|
|||
droit particulier cableur correspondant
|
||||
:param user_request: instance user qui fait l'edition
|
||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
||||
if not user_request.has_perms(('cableur',)):
|
||||
if not user_request.has_perm('machines.view_ouvertureportlist'):
|
||||
return False, u"Vous n'avez pas le droit d'éditer des ouvertures de port"
|
||||
return True, None
|
||||
|
||||
|
@ -1896,7 +1978,7 @@ class OuverturePort(models.Model):
|
|||
:param self: instance ouvertureport à voir
|
||||
:param user_request: instance user qui fait l'edition
|
||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
||||
if not user_request.has_perms(('cableur',)):
|
||||
if not user_request.has_perm('machines.view_ouvertureportlist'):
|
||||
return False, u"Vous n'avez pas le droit d'éditer des ouvertures de port"
|
||||
return True, None
|
||||
|
||||
|
|
Loading…
Reference in a new issue