Detabification massive.
darcs-hash:20051018083823-d1718-09c2df38cfb707d3c3679188b9b9a812009f4f7c.gz
This commit is contained in:
parent
3c54fb2904
commit
37b21339a6
40 changed files with 1473 additions and 1473 deletions
|
@ -19,11 +19,11 @@ except:
|
|||
|
||||
class droits(gen_config) :
|
||||
def restart(s) :
|
||||
# Rien à faire
|
||||
pass
|
||||
# Rien à faire
|
||||
pass
|
||||
|
||||
def __str__(s):
|
||||
return "droits"
|
||||
return "droits"
|
||||
|
||||
class droits_ldap(crans_ldap,droits) :
|
||||
####### Les groupes
|
||||
|
@ -32,9 +32,9 @@ class droits_ldap(crans_ldap,droits) :
|
|||
# Quels droits donnent l'appartenacne à quel groupe ?
|
||||
groupes = { 'adm' : [ u'Nounou' ] ,
|
||||
'respbats' : [ u'Câbleur' , u'Déconnecteur', u'Nounou' ] ,
|
||||
'moderateurs' : [ u'Modérateur' ] ,
|
||||
'disconnect' : [ u'Déconnecteur' ] ,
|
||||
'webcvs' : [ u'CVSWeb'] }
|
||||
'moderateurs' : [ u'Modérateur' ] ,
|
||||
'disconnect' : [ u'Déconnecteur' ] ,
|
||||
'webcvs' : [ u'CVSWeb'] }
|
||||
|
||||
####### Les ML
|
||||
# Le + devant un nom de ML indique une synchronisqtion
|
||||
|
@ -42,96 +42,96 @@ class droits_ldap(crans_ldap,droits) :
|
|||
# des abonnés si le droit est retiré
|
||||
mailing_listes = { 'roots' : [ u'Nounou', u'Apprenti' ],
|
||||
'+nounou' : [ u'Nounou', u'Apprenti' ],
|
||||
'respbats' : [ u'Câbleur', u'Nounou' ],
|
||||
'+moderateurs' : [ u'Modérateur' ],
|
||||
'+disconnect' : [ u'Déconnecteur' ] }
|
||||
|
||||
'respbats' : [ u'Câbleur', u'Nounou' ],
|
||||
'+moderateurs' : [ u'Modérateur' ],
|
||||
'+disconnect' : [ u'Déconnecteur' ] }
|
||||
|
||||
def build_group(self) :
|
||||
""" Reconstruit les groupes dans la base LDAP """
|
||||
self.anim.iter = len( self.groupes.keys() )
|
||||
for group, fonctions in self.groupes.items() :
|
||||
self.anim.cycle()
|
||||
# Qui doit être dans ce groupe ?
|
||||
res = []
|
||||
for f in fonctions :
|
||||
res += self.search('droits=%s' % f)['adherent']
|
||||
""" Reconstruit les groupes dans la base LDAP """
|
||||
self.anim.iter = len( self.groupes.keys() )
|
||||
for group, fonctions in self.groupes.items() :
|
||||
self.anim.cycle()
|
||||
# Qui doit être dans ce groupe ?
|
||||
res = []
|
||||
for f in fonctions :
|
||||
res += self.search('droits=%s' % f)['adherent']
|
||||
|
||||
# Récupération de la constitution du groupe actuel
|
||||
dn = 'cn=%s,%s' % (group, self.base_group_dn)
|
||||
data = self.conn.search_s(dn ,0,'objectClass=posixGroup')[0][1]
|
||||
init_data = data.copy()
|
||||
|
||||
# Supression de tout les membres
|
||||
data['memberUid'] = []
|
||||
|
||||
# Ajout des bonnes personnes
|
||||
for adher in res :
|
||||
uid = preattr(adher.compte())[1]
|
||||
if uid and uid not in data['memberUid'] :
|
||||
data['memberUid'].append(uid)
|
||||
|
||||
# Sauvegarde
|
||||
# Récupération de la constitution du groupe actuel
|
||||
dn = 'cn=%s,%s' % (group, self.base_group_dn)
|
||||
data = self.conn.search_s(dn ,0,'objectClass=posixGroup')[0][1]
|
||||
init_data = data.copy()
|
||||
|
||||
# Supression de tout les membres
|
||||
data['memberUid'] = []
|
||||
|
||||
# Ajout des bonnes personnes
|
||||
for adher in res :
|
||||
uid = preattr(adher.compte())[1]
|
||||
if uid and uid not in data['memberUid'] :
|
||||
data['memberUid'].append(uid)
|
||||
|
||||
# Sauvegarde
|
||||
modlist = ldap.modlist.modifyModlist(init_data,data)
|
||||
self.conn.modify_s(dn,modlist)
|
||||
self.conn.modify_s(dn,modlist)
|
||||
|
||||
def print_liste(self,poste) :
|
||||
""" Donne la liste des membres actifs """
|
||||
for adh in self.search('droits=%s&chbre!=EXT' % poste)['adherent'] :
|
||||
print "%s %s" % (adh.nom(), adh.prenom())
|
||||
|
||||
""" Donne la liste des membres actifs """
|
||||
for adh in self.search('droits=%s&chbre!=EXT' % poste)['adherent'] :
|
||||
print "%s %s" % (adh.nom(), adh.prenom())
|
||||
|
||||
def sync_ML(self) :
|
||||
self.anim.iter = len( self.mailing_listes.keys() )
|
||||
for ML, fonctions in self.mailing_listes.items() :
|
||||
self.anim.cycle()
|
||||
if ML[0] == '+' :
|
||||
ML = ML[1:]
|
||||
only_add = 1
|
||||
else :
|
||||
only_add = 0
|
||||
|
||||
# Instance correspondant à la ML
|
||||
mlist = MailList.MailList(ML)
|
||||
self.mlist_to_unlock = mlist
|
||||
|
||||
# Qui doit être dans cette ML ?
|
||||
res = []
|
||||
for f in fonctions :
|
||||
res += self.search('droits=%s' % f)['adherent']
|
||||
|
||||
# Liste des personnes déja inscrites
|
||||
deja_inscrits = {} # { email en miniscules : email avec case n'importe comment }
|
||||
for addr in mlist.getMemberCPAddresses(mlist.getMembers()):
|
||||
deja_inscrits[addr.lower()] = addr
|
||||
|
||||
# Mails à ajouter
|
||||
to_add = []
|
||||
mail_traite = []
|
||||
for adher in res :
|
||||
mail = adher.mail().lower()
|
||||
if mail in mail_traite : continue
|
||||
mail_traite.append(mail)
|
||||
if mail.find('@') == -1 : mail += '@crans.org'
|
||||
if mail not in deja_inscrits.keys() :
|
||||
# Visiblement pas inscrit
|
||||
to_add.append([ mail, adher.Nom() ])
|
||||
else :
|
||||
# L'adhérent est déja inscrit
|
||||
deja_inscrits.pop(mail)
|
||||
|
||||
# Ajout
|
||||
for mail, nom in to_add :
|
||||
pw = Utils.MakeRandomPassword()
|
||||
userdesc = UserDesc( mail, nom, pw)
|
||||
mlist.ApprovedAddMember(userdesc)
|
||||
if not only_add :
|
||||
# Supression des personnes inscritees en trop
|
||||
for mail in deja_inscrits.values() :
|
||||
mlist.ApprovedDeleteMember(mail)
|
||||
|
||||
mlist.Save()
|
||||
mlist.Unlock()
|
||||
self.mlist_to_unlock = None
|
||||
|
||||
self.anim.iter = len( self.mailing_listes.keys() )
|
||||
for ML, fonctions in self.mailing_listes.items() :
|
||||
self.anim.cycle()
|
||||
if ML[0] == '+' :
|
||||
ML = ML[1:]
|
||||
only_add = 1
|
||||
else :
|
||||
only_add = 0
|
||||
|
||||
# Instance correspondant à la ML
|
||||
mlist = MailList.MailList(ML)
|
||||
self.mlist_to_unlock = mlist
|
||||
|
||||
# Qui doit être dans cette ML ?
|
||||
res = []
|
||||
for f in fonctions :
|
||||
res += self.search('droits=%s' % f)['adherent']
|
||||
|
||||
# Liste des personnes déja inscrites
|
||||
deja_inscrits = {} # { email en miniscules : email avec case n'importe comment }
|
||||
for addr in mlist.getMemberCPAddresses(mlist.getMembers()):
|
||||
deja_inscrits[addr.lower()] = addr
|
||||
|
||||
# Mails à ajouter
|
||||
to_add = []
|
||||
mail_traite = []
|
||||
for adher in res :
|
||||
mail = adher.mail().lower()
|
||||
if mail in mail_traite : continue
|
||||
mail_traite.append(mail)
|
||||
if mail.find('@') == -1 : mail += '@crans.org'
|
||||
if mail not in deja_inscrits.keys() :
|
||||
# Visiblement pas inscrit
|
||||
to_add.append([ mail, adher.Nom() ])
|
||||
else :
|
||||
# L'adhérent est déja inscrit
|
||||
deja_inscrits.pop(mail)
|
||||
|
||||
# Ajout
|
||||
for mail, nom in to_add :
|
||||
pw = Utils.MakeRandomPassword()
|
||||
userdesc = UserDesc( mail, nom, pw)
|
||||
mlist.ApprovedAddMember(userdesc)
|
||||
if not only_add :
|
||||
# Supression des personnes inscritees en trop
|
||||
for mail in deja_inscrits.values() :
|
||||
mlist.ApprovedDeleteMember(mail)
|
||||
|
||||
mlist.Save()
|
||||
mlist.Unlock()
|
||||
self.mlist_to_unlock = None
|
||||
|
||||
def gen_conf(self) :
|
||||
self.anim = anim('\tconfiguration groupes')
|
||||
try:
|
||||
|
@ -170,10 +170,10 @@ class droits_openbsd(droits) :
|
|||
"""
|
||||
master = ""
|
||||
group = "wheel:*:0:root"
|
||||
self.anim.iter = 2
|
||||
self.anim.iter = 2
|
||||
for fonction in ("Nounou", "Apprenti"):
|
||||
self.anim.cycle()
|
||||
# Qui doit être dans ce groupe ?
|
||||
self.anim.cycle()
|
||||
# Qui doit être dans ce groupe ?
|
||||
res = crans_ldap().search('droits=%s' % fonction)['adherent']
|
||||
for a in res:
|
||||
if fonction == "Nounou":
|
||||
|
@ -234,13 +234,13 @@ class droits_openbsd(droits) :
|
|||
|
||||
if __name__ == '__main__' :
|
||||
if '-h' in sys.argv or '--help' in sys.argv or len(sys.argv) == 1 :
|
||||
print "%s <switch>" % sys.argv[0].split('/')[-1].split('.')[0]
|
||||
print "Génération de la liste des personnes avec le(s) droit(s) donné(s)."
|
||||
sys.exit(255)
|
||||
|
||||
print "%s <switch>" % sys.argv[0].split('/')[-1].split('.')[0]
|
||||
print "Génération de la liste des personnes avec le(s) droit(s) donné(s)."
|
||||
sys.exit(255)
|
||||
|
||||
cl = droits()
|
||||
for arg in sys.argv[1:] :
|
||||
titre = "%s : " % arg
|
||||
print titre
|
||||
print "-" * len (titre)
|
||||
cl.print_liste(unicode(arg,'iso-8859-1'))
|
||||
for arg in sys.argv[1:] :
|
||||
titre = "%s : " % arg
|
||||
print titre
|
||||
print "-" * len (titre)
|
||||
cl.print_liste(unicode(arg,'iso-8859-1'))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue