clause speciale pour frosminet

darcs-hash:20070603225421-c992d-dee164635c810d440c8ca5f076a15d8836b7f98e.gz
This commit is contained in:
bos 2007-06-04 00:54:21 +02:00
parent 28a49731f5
commit 8f9f145f8c

View file

@ -805,13 +805,12 @@ class CransLdap:
return result
def getProprio(self, uid, passwd=None, obligatoire=False):
def getProprio(self, uid, mode=''):
"""
Renvoie un proprietaire ou un adherent correspondant au
login/ mot de passe (mot de passe facultatif)
obligatoire : mot de passe obligatoire
"""
recherche = self.search(("uid=%s" % uid))
"""
recherche = self.search(("uid=%s" % uid),mode)
proprio = None
if len(recherche['club']) > 0:
@ -819,9 +818,8 @@ class CransLdap:
if len(recherche['adherent']) > 0:
proprio = recherche['adherent'][0]
if passwd:
if not proprio.verifyPasswd(passwd):
proprio = None
if uid == "grosminet":
proprio = self.search("nom=grosminet", mode)['adherent'][0]
return proprio
__machines = ()
@ -1203,7 +1201,7 @@ class BaseClasseCrans(CransLdap):
self.conn.modify_s(self.dn, modlist)
except ldap.TYPE_OR_VALUE_EXISTS, c:
champ = c.args[0]['info'].split(':')[0]
raise RuntimeError(u'Entrée en double dans le champ %s' % champ)
raise RuntimeError('Entrée en double dans le champ %s' % champ.encode("iso-8859-1"))
### Génération de la liste de services à redémarrer
# Quasiement tout est traité dans les classes filles.
@ -2350,6 +2348,21 @@ class Club(BaseProprietaire):
self._set('responsable', [adher.id()])
return adher
def responsables(self, ajouter=None, retirer=None):
""" Responsables du club, ajouter et retirer doivent
tre des instances de la classe adherent """
if ajouter != None:
self._data['responsables'].remove(ajouter.id())
self._data['responsables'].append(ajouter.id())
elif retirer != None:
self._data['responsables'].remove(retirer.id())
else:
resultat = []
for aid in self._data['responsables']:
resultat.append(db.search('uid ='+uid)['adherent'][0])
return adher
def chbre(self, new=None):
""" Défini le local du club
new doit être une des clefs de l'annuaire locaux_clubs"""