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 return result
def getProprio(self, uid, passwd=None, obligatoire=False): def getProprio(self, uid, mode=''):
""" """
Renvoie un proprietaire ou un adherent correspondant au Renvoie un proprietaire ou un adherent correspondant au
login/ mot de passe (mot de passe facultatif) login/ mot de passe (mot de passe facultatif)
obligatoire : mot de passe obligatoire """
""" recherche = self.search(("uid=%s" % uid),mode)
recherche = self.search(("uid=%s" % uid))
proprio = None proprio = None
if len(recherche['club']) > 0: if len(recherche['club']) > 0:
@ -819,9 +818,8 @@ class CransLdap:
if len(recherche['adherent']) > 0: if len(recherche['adherent']) > 0:
proprio = recherche['adherent'][0] proprio = recherche['adherent'][0]
if passwd: if uid == "grosminet":
if not proprio.verifyPasswd(passwd): proprio = self.search("nom=grosminet", mode)['adherent'][0]
proprio = None
return proprio return proprio
__machines = () __machines = ()
@ -1203,7 +1201,7 @@ class BaseClasseCrans(CransLdap):
self.conn.modify_s(self.dn, modlist) self.conn.modify_s(self.dn, modlist)
except ldap.TYPE_OR_VALUE_EXISTS, c: except ldap.TYPE_OR_VALUE_EXISTS, c:
champ = c.args[0]['info'].split(':')[0] 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 ### Génération de la liste de services à redémarrer
# Quasiement tout est traité dans les classes filles. # Quasiement tout est traité dans les classes filles.
@ -2349,6 +2347,21 @@ class Club(BaseProprietaire):
self._set('responsable', [adher.id()]) self._set('responsable', [adher.id()])
return adher 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): def chbre(self, new=None):
""" Défini le local du club """ Défini le local du club