Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
R
re2o
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Nounous
re2o
Commits
007ad331
Commit
007ad331
authored
Mar 28, 2018
by
Gabriel Detraz
Committed by
chirac
Mar 28, 2018
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Factorise les get_instance dans le mixin acl
parent
46ba34ec
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
24 additions
and
243 deletions
+24
-243
cotisations/models.py
cotisations/models.py
+3
-50
machines/models.py
machines/models.py
+12
-157
re2o/mixins.py
re2o/mixins.py
+9
-3
topologie/models.py
topologie/models.py
+0
-18
users/models.py
users/models.py
+0
-15
No files found.
cotisations/models.py
View file @
007ad331
...
...
@@ -59,7 +59,7 @@ from machines.models import regen
from
re2o.field_permissions
import
FieldPermissionModelMixin
from
re2o.mixins
import
AclMixin
class
Facture
(
FieldPermissionModelMixin
,
models
.
Model
):
class
Facture
(
AclMixin
,
FieldPermissionModelMixin
,
models
.
Model
):
""" Définition du modèle des factures. Une facture regroupe une ou
plusieurs ventes, rattachée à un user, et reliée à un moyen de paiement
et si il y a lieu un numero pour les chèques. Possède les valeurs
...
...
@@ -114,13 +114,6 @@ class Facture(FieldPermissionModelMixin, models.Model):
).
values_list
(
'name'
,
flat
=
True
))
return
name
def
get_instance
(
factureid
,
*
args
,
**
kwargs
):
return
Facture
.
objects
.
get
(
pk
=
factureid
)
def
can_create
(
user_request
,
*
args
,
**
kwargs
):
return
user_request
.
has_perm
(
'cotisations.add_facture'
),
u
"Vous n'avez pas le
\
droit de créer des factures"
def
can_edit
(
self
,
user_request
,
*
args
,
**
kwargs
):
if
not
user_request
.
has_perm
(
'cotisations.change_facture'
):
return
False
,
u
"Vous n'avez pas le droit d'éditer les factures"
...
...
@@ -144,11 +137,6 @@ class Facture(FieldPermissionModelMixin, models.Model):
else
:
return
True
,
None
def
can_view_all
(
user_request
,
*
args
,
**
kwargs
):
if
not
user_request
.
has_perm
(
'cotisations.view_facture'
):
return
False
,
u
"Vous n'avez pas le droit de voir les factures"
return
True
,
None
def
can_view
(
self
,
user_request
,
*
args
,
**
kwargs
):
if
not
user_request
.
has_perm
(
'cotisations.view_facture'
)
and
\
self
.
user
!=
user_request
:
...
...
@@ -192,7 +180,7 @@ def facture_post_delete(sender, **kwargs):
user
.
ldap_sync
(
base
=
False
,
access_refresh
=
True
,
mac_refresh
=
False
)
class
Vente
(
models
.
Model
):
class
Vente
(
AclMixin
,
models
.
Model
):
"""Objet vente, contient une quantité, une facture parente, un nom,
un prix. Peut-être relié à un objet cotisation, via le boolean
iscotisation"""
...
...
@@ -277,14 +265,6 @@ class Vente(models.Model):
self
.
update_cotisation
()
super
(
Vente
,
self
).
save
(
*
args
,
**
kwargs
)
def
get_instance
(
venteid
,
*
args
,
**
kwargs
):
return
Vente
.
objects
.
get
(
pk
=
venteid
)
def
can_create
(
user_request
,
*
args
,
**
kwargs
):
return
user_request
.
has_perm
(
'cotisations.add_vente'
),
u
"Vous n'avez pas le
\
droit de créer des ventes"
return
True
,
None
def
can_edit
(
self
,
user_request
,
*
args
,
**
kwargs
):
if
not
user_request
.
has_perm
(
'cotisations.change_vente'
):
return
False
,
u
"Vous n'avez pas le droit d'éditer les ventes"
...
...
@@ -308,11 +288,6 @@ class Vente(models.Model):
else
:
return
True
,
None
def
can_view_all
(
user_request
,
*
args
,
**
kwargs
):
if
not
user_request
.
has_perm
(
'cotisations.view_vente'
):
return
False
,
u
"Vous n'avez pas le droit de voir les ventes"
return
True
,
None
def
can_view
(
self
,
user_request
,
*
args
,
**
kwargs
):
if
not
user_request
.
has_perm
(
'cotisations.view_vente'
)
and
\
self
.
facture
.
user
!=
user_request
:
...
...
@@ -402,9 +377,6 @@ class Article(AclMixin, models.Model):
"La durée est obligatoire si il s'agit d'une cotisation"
)
def
get_instance
(
articleid
,
*
args
,
**
kwargs
):
return
Article
.
objects
.
get
(
pk
=
articleid
)
def
__str__
(
self
):
return
self
.
name
...
...
@@ -420,9 +392,6 @@ class Banque(AclMixin, models.Model):
(
"view_banque"
,
"Peut voir un objet banque"
),
)
def
get_instance
(
banqueid
,
*
args
,
**
kwargs
):
return
Banque
.
objects
.
get
(
pk
=
banqueid
)
def
__str__
(
self
):
return
self
.
name
...
...
@@ -443,9 +412,6 @@ class Paiement(AclMixin, models.Model):
(
"view_paiement"
,
"Peut voir un objet paiement"
),
)
def
get_instance
(
paiementid
,
*
args
,
**
kwargs
):
return
Paiement
.
objects
.
get
(
pk
=
paiementid
)
def
__str__
(
self
):
return
self
.
moyen
...
...
@@ -460,7 +426,7 @@ class Paiement(AclMixin, models.Model):
super
(
Paiement
,
self
).
save
(
*
args
,
**
kwargs
)
class
Cotisation
(
models
.
Model
):
class
Cotisation
(
AclMixin
,
models
.
Model
):
"""Objet cotisation, debut et fin, relié en onetoone à une vente"""
PRETTY_NAME
=
"Cotisations"
...
...
@@ -485,14 +451,6 @@ class Cotisation(models.Model):
(
"change_all_cotisation"
,
"Superdroit, peut modifier toutes les cotisations"
),
)
def
get_instance
(
cotisationid
,
*
args
,
**
kwargs
):
return
Cotisations
.
objects
.
get
(
pk
=
cotisationid
)
def
can_create
(
user_request
,
*
args
,
**
kwargs
):
return
user_request
.
has_perm
(
'cotisations.add_cotisation'
),
u
"Vous n'avez pas le
\
droit de créer des cotisations"
return
True
,
None
def
can_edit
(
self
,
user_request
,
*
args
,
**
kwargs
):
if
not
user_request
.
has_perm
(
'cotisations.change_cotisation'
):
return
False
,
u
"Vous n'avez pas le droit d'éditer les cotisations"
...
...
@@ -512,11 +470,6 @@ class Cotisation(models.Model):
else
:
return
True
,
None
def
can_view_all
(
user_request
,
*
args
,
**
kwargs
):
if
not
user_request
.
has_perm
(
'cotisations.view_cotisation'
):
return
False
,
u
"Vous n'avez pas le droit de voir les cotisations"
return
True
,
None
def
can_view
(
self
,
user_request
,
*
args
,
**
kwargs
):
if
not
user_request
.
has_perm
(
'cotisations.view_cotisation'
)
and
\
self
.
vente
.
facture
.
user
!=
user_request
:
...
...
machines/models.py
View file @
007ad331
...
...
@@ -65,12 +65,6 @@ class Machine(FieldPermissionModelMixin, models.Model):
(
"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
:return: Une instance machine évidemment"""
return
Machine
.
objects
.
get
(
pk
=
machineid
)
@
staticmethod
def
can_change_user
(
user_request
,
*
args
,
**
kwargs
):
"""Checks if an user is allowed to change the user who owns a
...
...
@@ -85,6 +79,15 @@ class Machine(FieldPermissionModelMixin, models.Model):
"""
return
user_request
.
has_perm
(
'machines.change_machine_user'
),
"Vous ne pouvez pas modifier l'utilisateur de la machine."
def
can_view_all
(
user_request
,
*
args
,
**
kwargs
):
"""Vérifie qu'on peut bien afficher l'ensemble des machines,
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_perm
(
'machines.view_machine'
):
return
False
,
u
"Vous ne pouvez pas afficher l'ensemble des machines sans permission"
return
True
,
None
def
can_create
(
user_request
,
userid
,
*
args
,
**
kwargs
):
"""Vérifie qu'un user qui fait la requète peut bien créer la machine
et n'a pas atteint son quota, et crée bien une machine à lui
...
...
@@ -132,15 +135,6 @@ class Machine(FieldPermissionModelMixin, models.Model):
d'un autre user que vous sans droit"
return
True
,
None
def
can_view_all
(
user_request
,
*
args
,
**
kwargs
):
"""Vérifie qu'on peut bien afficher l'ensemble des machines,
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_perm
(
'machines.view_machine'
):
return
False
,
u
"Vous ne pouvez pas afficher l'ensemble des machines sans permission"
return
True
,
None
def
can_view
(
self
,
user_request
,
*
args
,
**
kwargs
):
"""Vérifie qu'on peut bien voir cette instance particulière (soit
machine de soi, soit droit particulier
...
...
@@ -185,13 +179,6 @@ class MachineType(AclMixin, models.Model):
machinetype"""
return
Interface
.
objects
.
filter
(
type
=
self
)
def
get_instance
(
machinetypeid
,
*
args
,
**
kwargs
):
"""Récupère une instance
:param machinetypeid: Instance id à trouver
:return: Une instance machinetype évidemment"""
return
MachineType
.
objects
.
get
(
pk
=
machinetypeid
)
def
can_use_all
(
user_request
,
*
args
,
**
kwargs
):
"""Check if an user can use every MachineType.
...
...
@@ -329,12 +316,6 @@ class IpType(AclMixin, models.Model):
self
.
clean
()
super
(
IpType
,
self
).
save
(
*
args
,
**
kwargs
)
def
get_instance
(
iptypeid
,
*
args
,
**
kwargs
):
"""Récupère une instance
:param iptypeid: Instance id à trouver
:return: Une instance iptype évidemment"""
return
IpType
.
objects
.
get
(
pk
=
iptypeid
)
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
...
...
@@ -359,12 +340,6 @@ class Vlan(AclMixin, models.Model):
(
"view_vlan"
,
"Peut voir un objet vlan"
),
)
def
get_instance
(
vlanid
,
*
args
,
**
kwargs
):
"""Récupère une instance
:param vlanid: Instance id à trouver
:return: Une instance vlan évidemment"""
return
Vlan
.
objects
.
get
(
pk
=
vlanid
)
def
__str__
(
self
):
return
self
.
name
...
...
@@ -404,12 +379,6 @@ class Nas(AclMixin, models.Model):
(
"view_nas"
,
"Peut voir un objet Nas"
),
)
def
get_instance
(
nasid
,
*
args
,
**
kwargs
):
"""Récupère une instance
:param nasid: Instance id à trouver
:return: Une instance nas évidemment"""
return
Nas
.
objects
.
get
(
pk
=
nasid
)
def
__str__
(
self
):
return
self
.
name
...
...
@@ -451,12 +420,6 @@ class SOA(AclMixin, models.Model):
(
"view_soa"
,
"Peut voir un objet soa"
),
)
def
get_instance
(
soaid
,
*
args
,
**
kwargs
):
"""Récupère une instance
:param soaid: Instance id à trouver
:return: Une instance soa évidemment"""
return
SOA
.
objects
.
get
(
pk
=
soaid
)
def
__str__
(
self
):
return
str
(
self
.
name
)
...
...
@@ -545,12 +508,6 @@ class Extension(AclMixin, models.Model):
entry
+=
"@ IN AAAA "
+
str
(
self
.
origin_v6
)
return
entry
def
get_instance
(
extensionid
,
*
args
,
**
kwargs
):
"""Récupère une instance
:param extensionid: Instance id à trouver
:return: Une instance extension évidemment"""
return
Extension
.
objects
.
get
(
pk
=
extensionid
)
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
...
...
@@ -587,12 +544,6 @@ class Mx(AclMixin, models.Model):
fichiers de zones"""
return
"@ IN MX "
+
str
(
self
.
priority
).
ljust
(
3
)
+
" "
+
str
(
self
.
name
)
def
get_instance
(
mxid
,
*
args
,
**
kwargs
):
"""Récupère une instance
:param mxid: Instance id à trouver
:return: Une instance mx évidemment"""
return
Mx
.
objects
.
get
(
pk
=
mxid
)
def
__str__
(
self
):
return
str
(
self
.
zone
)
+
' '
+
str
(
self
.
priority
)
+
' '
+
str
(
self
.
name
)
...
...
@@ -614,12 +565,6 @@ class Ns(AclMixin, models.Model):
"""Renvoie un enregistrement NS complet pour les filezones"""
return
"@ IN NS "
+
str
(
self
.
ns
)
def
get_instance
(
nsid
,
*
args
,
**
kwargs
):
"""Récupère une instance
:param nsid: Instance id à trouver
:return: Une instance ns évidemment"""
return
Ns
.
objects
.
get
(
pk
=
nsid
)
def
__str__
(
self
):
return
str
(
self
.
zone
)
+
' '
+
str
(
self
.
ns
)
...
...
@@ -637,12 +582,6 @@ class Txt(AclMixin, models.Model):
(
"view_txt"
,
"Peut voir un objet txt"
),
)
def
get_instance
(
txtid
,
*
args
,
**
kwargs
):
"""Récupère une instance
:param txtid: Instance id à trouver
:return: Une instance txt évidemment"""
return
Txt
.
objects
.
get
(
pk
=
txtid
)
def
__str__
(
self
):
return
str
(
self
.
zone
)
+
" : "
+
str
(
self
.
field1
)
+
" "
+
\
str
(
self
.
field2
)
...
...
@@ -701,12 +640,6 @@ class Srv(AclMixin, models.Model):
(
"view_soa"
,
"Peut voir un objet soa"
),
)
def
get_instance
(
srvid
,
*
args
,
**
kwargs
):
"""Récupère une instance
:param srvid: Instance id à trouver
:return: Une instance srv évidemment"""
return
Srv
.
objects
.
get
(
pk
=
srvid
)
def
__str__
(
self
):
return
str
(
self
.
service
)
+
' '
+
str
(
self
.
protocole
)
+
' '
+
\
str
(
self
.
extension
)
+
' '
+
str
(
self
.
priority
)
+
\
...
...
@@ -721,7 +654,7 @@ class Srv(AclMixin, models.Model):
str
(
self
.
port
)
+
' '
+
str
(
self
.
target
)
+
'.'
class
Interface
(
FieldPermissionModelMixin
,
models
.
Model
):
class
Interface
(
AclMixin
,
FieldPermissionModelMixin
,
models
.
Model
):
""" Une interface. Objet clef de l'application machine :
- une address mac unique. Possibilité de la rendre unique avec le
typemachine
...
...
@@ -879,12 +812,6 @@ class Interface(FieldPermissionModelMixin,models.Model):
correspondent pas"
)
super
(
Interface
,
self
).
save
(
*
args
,
**
kwargs
)
def
get_instance
(
interfaceid
,
*
args
,
**
kwargs
):
"""Récupère une instance
:param interfaceid: Instance id à trouver
:return: Une instance interface évidemment"""
return
Interface
.
objects
.
get
(
pk
=
interfaceid
)
def
can_create
(
user_request
,
machineid
,
*
args
,
**
kwargs
):
"""Verifie que l'user a les bons droits infra pour créer
une interface, ou bien que la machine appartient bien à l'user
...
...
@@ -936,16 +863,6 @@ class Interface(FieldPermissionModelMixin,models.Model):
d'un autre user que vous sans droit"
return
True
,
None
def
can_view_all
(
user_request
,
*
args
,
**
kwargs
):
"""Vérifie qu'on peut bien afficher l'ensemble des interfaces,
droit particulier view objet 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_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
def
can_view
(
self
,
user_request
,
*
args
,
**
kwargs
):
"""Vérifie qu'on peut bien voir cette instance particulière avec
droit view objet ou qu'elle appartient à l'user
...
...
@@ -984,7 +901,7 @@ class Interface(FieldPermissionModelMixin,models.Model):
return
self
.
ipv4
and
not
self
.
has_private_ip
()
class
Ipv6List
(
FieldPermissionModelMixin
,
models
.
Model
):
class
Ipv6List
(
AclMixin
,
FieldPermissionModelMixin
,
models
.
Model
):
PRETTY_NAME
=
'Enregistrements Ipv6 des machines'
ipv6
=
models
.
GenericIPAddressField
(
...
...
@@ -1000,12 +917,6 @@ class Ipv6List(FieldPermissionModelMixin, models.Model):
(
"change_ipv6list_slaac_ip"
,
"Peut changer la valeur slaac sur une ipv6"
),
)
def
get_instance
(
ipv6listid
,
*
args
,
**
kwargs
):
"""Récupère une instance
:param interfaceid: Instance id à trouver
:return: Une instance interface évidemment"""
return
Ipv6List
.
objects
.
get
(
pk
=
ipv6listid
)
def
can_create
(
user_request
,
interfaceid
,
*
args
,
**
kwargs
):
"""Verifie que l'user a les bons droits infra pour créer
une ipv6, ou possède l'interface associée
...
...
@@ -1050,16 +961,6 @@ class Ipv6List(FieldPermissionModelMixin, models.Model):
d'un autre user que vous sans droit"
return
True
,
None
def
can_view_all
(
user_request
,
*
args
,
**
kwargs
):
"""Vérifie qu'on peut bien afficher l'ensemble des interfaces,
droit particulier view objet 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_perm
(
'machines.view_ipv6list'
):
return
False
,
u
"Vous n'avez pas le droit de voir des machines autre
\
que les vôtres"
return
True
,
None
def
can_view
(
self
,
user_request
,
*
args
,
**
kwargs
):
"""Vérifie qu'on peut bien voir cette instance particulière avec
droit view objet ou qu'elle appartient à l'user
...
...
@@ -1104,7 +1005,7 @@ class Ipv6List(FieldPermissionModelMixin, models.Model):
return
str
(
self
.
ipv6
)
class
Domain
(
models
.
Model
):
class
Domain
(
AclMixin
,
models
.
Model
):
""" Objet domain. Enregistrement A et CNAME en même temps : permet de
stocker les alias et les nom de machines, suivant si interface_parent
ou cname sont remplis"""
...
...
@@ -1197,12 +1098,6 @@ class Domain(models.Model):
else
:
return
self
.
cname
.
get_parent_interface
()
def
get_instance
(
domainid
,
*
args
,
**
kwargs
):
"""Récupère une instance
:param domainid: Instance id à trouver
:return: Une instance domain évidemment"""
return
Domain
.
objects
.
get
(
pk
=
domainid
)
def
can_create
(
user_request
,
interfaceid
,
*
args
,
**
kwargs
):
"""Verifie que l'user a les bons droits infra pour créer
un domain, ou possède l'interface associée
...
...
@@ -1252,16 +1147,6 @@ class Domain(models.Model):
d'un autre user que vous sans droit"
return
True
,
None
def
can_view_all
(
user_request
,
*
args
,
**
kwargs
):
"""Vérifie qu'on peut bien afficher l'ensemble des domain,
droit particulier view objet 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_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
def
can_view
(
self
,
user_request
,
*
args
,
**
kwargs
):
"""Vérifie qu'on peut bien voir cette instance particulière avec
droit view objet ou qu'elle appartient à l'user
...
...
@@ -1306,12 +1191,6 @@ class IpList(AclMixin, models.Model):
self
.
clean
()
super
(
IpList
,
self
).
save
(
*
args
,
**
kwargs
)
def
get_instance
(
iplistid
,
*
args
,
**
kwargs
):
"""Récupère une instance
:param iplistid: Instance id à trouver
:return: Une instance iplist évidemment"""
return
IpList
.
objects
.
get
(
pk
=
iplistid
)
def
__str__
(
self
):
return
self
.
ipv4
...
...
@@ -1357,12 +1236,6 @@ class Service(AclMixin, models.Model):
def
save
(
self
,
*
args
,
**
kwargs
):
super
(
Service
,
self
).
save
(
*
args
,
**
kwargs
)
def
get_instance
(
serviceid
,
*
args
,
**
kwargs
):
"""Récupère une instance
:param serviceid: Instance id à trouver
:return: Une instance service évidemment"""
return
Service
.
objects
.
get
(
pk
=
serviceid
)
def
__str__
(
self
):
return
str
(
self
.
service_type
)
...
...
@@ -1403,12 +1276,6 @@ class Service_link(AclMixin, models.Model):
)
<
timezone
.
now
()
)
def
get_instance
(
servicelinkid
,
*
args
,
**
kwargs
):
"""Récupère une instance
:param servicelinkid: Instance id à trouver
:return: Une instance servicelink évidemment"""
return
ServiceLink
.
objects
.
get
(
pk
=
servicelinkid
)
def
__str__
(
self
):
return
str
(
self
.
server
)
+
" "
+
str
(
self
.
service
)
...
...
@@ -1427,12 +1294,6 @@ class OuverturePortList(AclMixin, models.Model):
(
"view_ouvertureportlist"
,
"Peut voir un objet ouvertureport"
),
)
def
get_instance
(
ouvertureportlistid
,
*
args
,
**
kwargs
):
"""Récupère une instance
:param ouvertureportlistid: Instance id à trouver
:return: Une instance ouvertureportlist évidemment"""
return
OuverturePortList
.
objects
.
get
(
pk
=
ouvertureportlistid
)
def
can_delete
(
self
,
user_request
,
*
args
,
**
kwargs
):
"""Verifie que l'user a les bons droits bureau pour delete
cette instance ouvertureportlist
...
...
@@ -1516,12 +1377,6 @@ class OuverturePort(AclMixin, models.Model):
default
=
OUT
,
)
def
get_instance
(
ouvertureportid
,
*
args
,
**
kwargs
):
"""Récupère une instance
:param ouvertureportid: Instance id à trouver
:return: Une instance ouvertureport évidemment"""
return
OuverturePort
.
objects
.
get
(
pk
=
ouvertureportid
)
def
__str__
(
self
):
if
self
.
begin
==
self
.
end
:
return
str
(
self
.
begin
)
...
...
re2o/mixins.py
View file @
007ad331
...
...
@@ -3,9 +3,7 @@
# se veut agnostique au réseau considéré, de manière à être installable en
# quelques clics.
#
# Copyright © 2017 Gabriel Détraz
# Copyright © 2017 Goulven Kermarec
# Copyright © 2017 Augustin Lemesle
# Copyright © 2018 Gabriel Détraz
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
...
...
@@ -30,6 +28,14 @@ class AclMixin(object):
def
get_modulename
(
cls
):
return
str
(
cls
.
__module__
).
split
(
'.'
)[
0
].
lower
()
@
classmethod
def
get_instance
(
cls
,
*
args
,
**
kwargs
):
"""Récupère une instance
:param objectid: Instance id à trouver
:return: Une instance de la classe évidemment"""
object_id
=
kwargs
.
get
(
cls
.
get_classname
()
+
'id'
)
return
cls
.
objects
.
get
(
pk
=
object_id
)
@
classmethod
def
can_create
(
cls
,
user_request
,
*
args
,
**
kwargs
):
"""Verifie que l'user a les bons droits infra pour créer
...
...
topologie/models.py
View file @
007ad331
...
...
@@ -67,9 +67,6 @@ class Stack(AclMixin, models.Model):
(
"view_stack"
,
"Peut voir un objet stack"
),
)
def
get_instance
(
stack_id
,
*
args
,
**
kwargs
):
return
Stack
.
objects
.
get
(
pk
=
stack_id
)
def
__str__
(
self
):
return
" "
.
join
([
self
.
name
,
self
.
stack_id
])
...
...
@@ -105,9 +102,6 @@ class AccessPoint(AclMixin, Machine):
(
"view_accesspoint"
,
"Peut voir une borne"
),
)
def
get_instance
(
ap_id
,
*
args
,
**
kwargs
):
return
AccessPoint
.
objects
.
get
(
pk
=
ap_id
)
class
Switch
(
AclMixin
,
Machine
):
""" Definition d'un switch. Contient un nombre de ports (number),
...
...
@@ -146,9 +140,6 @@ class Switch(AclMixin, Machine):
(
"view_switch"
,
"Peut voir un objet switch"
),
)
def
get_instance
(
switch_id
,
*
args
,
**
kwargs
):
return
Switch
.
objects
.
get
(
pk
=
switch_id
)
def
clean
(
self
):
""" Verifie que l'id stack est dans le bon range
Appelle également le clean de la classe parente"""
...
...
@@ -210,9 +201,6 @@ class ModelSwitch(AclMixin, models.Model):
(
"view_modelswitch"
,
"Peut voir un objet modelswitch"
),
)
def
get_instance
(
model_switch_id
,
*
args
,
**
kwargs
):
return
ModelSwitch
.
objects
.
get
(
pk
=
model_switch_id
)
def
__str__
(
self
):
return
str
(
self
.
constructor
)
+
' '
+
self
.
reference
...
...
@@ -227,9 +215,6 @@ class ConstructorSwitch(AclMixin, models.Model):
(
"view_constructorswitch"
,
"Peut voir un objet constructorswitch"
),
)
def
get_instance
(
constructor_switch_id
,
*
args
,
**
kwargs
):
return
ConstructorSwitch
.
objects
.
get
(
pk
=
constructor_switch_id
)
def
__str__
(
self
):
return
self
.
name
...
...
@@ -363,9 +348,6 @@ class Room(AclMixin, models.Model):
(
"view_room"
,
"Peut voir un objet chambre"
),
)
def
get_instance
(
room_id
,
*
args
,
**
kwargs
):
return
Room
.
objects
.
get
(
pk
=
room_id
)
def
__str__
(
self
):
return
self
.
name
...
...
users/models.py
View file @
007ad331
...
...
@@ -990,9 +990,6 @@ class ServiceUser(AclMixin, AbstractBaseUser):
)]).
values_list
(
'dn'
,
flat
=
True
))
group
.
save
()
def
get_instance
(
userid
,
*
args
,
**
kwargs
):
return
ServiceUser
.
objects
.
get
(
pk
=
userid
)
def
__str__
(
self
):
return
self
.
pseudo
...
...
@@ -1021,9 +1018,6 @@ class School(AclMixin, models.Model):
(
"view_school"
,
"Peut voir un objet school"
),
)
def
get_instance
(
schoolid
,
*
args
,
**
kwargs
):
return
School
.
objects
.
get
(
pk
=
schoolid
)
def
__str__
(
self
):
return
self
.
name
...
...
@@ -1058,9 +1052,6 @@ class ListRight(AclMixin, Group):
(
"view_listright"
,
"Peut voir un objet Group/ListRight"
),
)
def
get_instance
(
listrightid
,
*
args
,
**
kwargs
):
return
ListRight
.
objects
.
get
(
pk
=
listrightid
)
def
__str__
(
self
):
return
self
.
name
...
...
@@ -1110,9 +1101,6 @@ class ListShell(AclMixin, models.Model):
(
"view_listshell"
,
"Peut voir un objet shell quelqu'il soit"
),
)
def
get_instance
(
shellid
,
*
args
,
**
kwargs
):
return
ListShell
.
objects
.
get
(
pk
=
shellid
)
def
get_pretty_name
(
self
):
"""Return the canonical name of the shell"""
return
self
.
shell
.
split
(
"/"
)[
-
1
]
...
...
@@ -1236,9 +1224,6 @@ class Whitelist(AclMixin, models.Model):
def
is_active
(
self
):
return
self
.
date_end
>
timezone
.
now
()
def
get_instance
(
whitelistid
,
*
args
,
**
kwargs
):
return
Whitelist
.
objects
.
get
(
pk
=
whitelistid
)
def
can_view
(
self
,
user_request
,
*
args
,
**
kwargs
):
"""Check if an user can view a Whitelist object.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment