diff --git a/gestion/ldap_crans.py b/gestion/ldap_crans.py index 3f8aefa2..113c1cc1 100755 --- a/gestion/ldap_crans.py +++ b/gestion/ldap_crans.py @@ -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. @@ -2349,6 +2347,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