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

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

parent a6af0601
...@@ -43,6 +43,9 @@ if time.time() <= debut_periode_transitoire: ...@@ -43,6 +43,9 @@ if time.time() <= debut_periode_transitoire:
# Les droits ne sont pas retires mais il n'y a plus de sudo # Les droits ne sont pas retires mais il n'y a plus de sudo
bl_vieux_cableurs = False bl_vieux_cableurs = False
###### Gestion nombre maximum de machines filaires/wifi
max_machines_fixes = 2
##Création de comptes ##Création de comptes
# Gid des comptes créés # Gid des comptes créés
gid = 100 gid = 100
......
...@@ -14,6 +14,8 @@ import lc_ldap.objets as objets ...@@ -14,6 +14,8 @@ import lc_ldap.objets as objets
import lc_ldap.attributs as attributs import lc_ldap.attributs as attributs
import subprocess import subprocess
from gestion import config
import certificat import certificat
import blacklist import blacklist
from CPS import TailCall, tailcaller, Continue from CPS import TailCall, tailcaller, Continue
...@@ -109,7 +111,7 @@ class Dialog(certificat.Dialog, blacklist.Dialog): ...@@ -109,7 +111,7 @@ class Dialog(certificat.Dialog, blacklist.Dialog):
) )
return machine 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 # 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: if proprio is None or realm is None:
raise EnvironmentError("On essaye de créer une machine mais proprio ou realm vaut 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): ...@@ -133,7 +135,7 @@ class Dialog(certificat.Dialog, blacklist.Dialog):
self.display_item(machine, "Impression du ticket ...", ipsec=True) self.display_item(machine, "Impression du ticket ...", ipsec=True)
return machine return machine
else: else:
raise Continue(cont) raise Continue(cont(**{update_obj:proprio}))
def todo(to_display, tags, objectClass, machine, proprio, realm, separateur, cont): def todo(to_display, tags, objectClass, machine, proprio, realm, separateur, cont):
attrs = {} attrs = {}
...@@ -293,13 +295,13 @@ class Dialog(certificat.Dialog, blacklist.Dialog): ...@@ -293,13 +295,13 @@ class Dialog(certificat.Dialog, blacklist.Dialog):
if proprio.get('etudes', [False])[0] == u'Personnel ENS': if proprio.get('etudes', [False])[0] == u'Personnel ENS':
menu_order.append('Appartements') menu_order.append('Appartements')
else: 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') menu_order.append('Fixe')
if not bool(proprio.get('droits', False)) and isinstance(proprio, objets.adherent): if not bool(proprio.get('droits', False)) and isinstance(proprio, objets.adherent):
for machine in proprio.machines(): # On compte le nombre de machines fixes de l'adhérent.
if isinstance(machine, objets.machineFixe): if len(filter(lambda x: isinstance( x, objets.machineFixe),
menu_order.remove('Fixe') proprio.machines())) >= config.max_machines_fixes:
break menu_order.remove('Fixe')
if isinstance(proprio, objets.AssociationCrans): if isinstance(proprio, objets.AssociationCrans):
menu_droits.update({ menu_droits.update({
......
Supports Markdown
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