Commit 9f2637e1 authored by Remi Oudin's avatar Remi Oudin

[Machines] Passage à 2 machines filaires par adhérent

parent a6af0601
......@@ -43,6 +43,9 @@ if time.time() <= debut_periode_transitoire:
# Les droits ne sont pas retires mais il n'y a plus de sudo
bl_vieux_cableurs = False
###### Gestion nombre maximum de machines filaires/wifi
max_machines_fixes = 2
##Création de comptes
# Gid des comptes créés
gid = 100
......
......@@ -14,6 +14,8 @@ import lc_ldap.objets as objets
import lc_ldap.attributs as attributs
import subprocess
from gestion import config
import certificat
import blacklist
from CPS import TailCall, tailcaller, Continue
......@@ -109,7 +111,7 @@ class Dialog(certificat.Dialog, blacklist.Dialog):
)
return machine
def create_machine(proprio, realm, attrs):
def create_machine(proprio, realm, attrs, update_obj='proprio'):
# Dans ce cas, on a besoin d'un proprio et d'un realm pour déterminer le rid
if proprio is None or realm is None:
raise EnvironmentError("On essaye de créer une machine mais proprio ou realm vaut None")
......@@ -133,7 +135,7 @@ class Dialog(certificat.Dialog, blacklist.Dialog):
self.display_item(machine, "Impression du ticket ...", ipsec=True)
return machine
else:
raise Continue(cont)
raise Continue(cont(**{update_obj:proprio}))
def todo(to_display, tags, objectClass, machine, proprio, realm, separateur, cont):
attrs = {}
......@@ -293,13 +295,13 @@ class Dialog(certificat.Dialog, blacklist.Dialog):
if proprio.get('etudes', [False])[0] == u'Personnel ENS':
menu_order.append('Appartements')
else:
# On vérifie que un non MA a qu'une machine fixe
# On vérifie qu'un non MA a au plus max_machines_fixes machines fixes
menu_order.append('Fixe')
if not bool(proprio.get('droits', False)) and isinstance(proprio, objets.adherent):
for machine in proprio.machines():
if isinstance(machine, objets.machineFixe):
menu_order.remove('Fixe')
break
# On compte le nombre de machines fixes de l'adhérent.
if len(filter(lambda x: isinstance( x, objets.machineFixe),
proprio.machines())) >= config.max_machines_fixes:
menu_order.remove('Fixe')
if isinstance(proprio, objets.AssociationCrans):
menu_droits.update({
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment