Commit fffbed84 authored by glondu's avatar glondu

Unicode.

darcs-hash:20060404224746-68412-c02859958ebb6c759a67a40516661d2ed40b1a7a.gz
parent bf58f3db
......@@ -39,8 +39,8 @@ def decode64(chaine):
return chaine.decode('utf8','ignore')
def chgpass(dn) :
cprint("""Le nouveau mot de passe doit comporter au minimum 6 caractères.
Il ne doit pas être basé sur un mot du dictionnaire.""",'jaune')
cprint(u"""Le nouveau mot de passe doit comporter au minimum 6 caractères.
Il ne doit pas être basé sur un mot du dictionnaire.""", 'jaune')
print "Il est conseillé d'utiliser une combinaison de minuscules, majuscules,\nde chiffres et d'au moins un caractère spécial."
print "Le mot de passe tapé ne sera pas écrit à l'écran."
print "Taper Ctrl-D pour abandonner"
......@@ -52,14 +52,14 @@ Il ne doit pas
### Test du mdp
## 1 - Longueur
if len(mdp) < 6 :
cprint('Mot de passe trop court','rouge')
cprint(u'Mot de passe trop court', 'rouge')
continue
## 2 - Empeche les mots de passe non ASCII
try:
mdp = mdp.encode('ascii')
except UnicodeDecodeError:
cprint('Les accents ou caractères bizarres ne sont pas autorisés (mais #!@*&%{}| le sont !)',
cprint(u'Les accents ou caractères bizarres ne sont pas autorisés (mais #!@*&%{}| le sont !)',
'rouge')
continue
......@@ -80,41 +80,41 @@ Il ne doit pas
autres += 4
if len(mdp) < 16 - minuscules - majuscules - chiffres - autres or \
(not majuscules and not minuscules) :
cprint('Mot de passe trop simple.','rouge')
cprint(u'Mot de passe trop simple.', 'rouge')
continue
## 4 - Cracklib
test = commands.getoutput("echo '%s' | /usr/sbin/crack_testlib" % mdp)
if test.split(':')[-1] != ' ok' :
commentaire = {
' it does not contain enough DIFFERENT characters' : 'Il y a trop de caractères identiques.' ,
' it is based on a dictionary word' : 'Le mot de passe est basé sur un mot du dictionnaire' ,
' it is too simplistic/systematic' : 'Le mot de passe est trop simple/répétitif'
' it does not contain enough DIFFERENT characters': u'Il y a trop de caractères identiques.' ,
' it is based on a dictionary word': u'Le mot de passe est basé sur un mot du dictionnaire' ,
' it is too simplistic/systematic': u'Le mot de passe est trop simple/répétitif'
}.get(test.split(':')[-1],test.split(':')[-1])
cprint(commentaire,'rouge')
cprint(commentaire, 'rouge')
continue
### On redemande le mot de passe
mdp1 = getpass.getpass('Retaper mot de passe : ')
if mdp != mdp1 :
cprint('Les deux mots de passe entrés sont différents, réesayer','rouge')
cprint(u'Les deux mots de passe entrés sont différents, réesayer', 'rouge')
continue
break
# Changement mdp
if os.system("/usr/bin/ldappasswd -H '%s' -x -D '%s' -w '%s' '%s' -s '%s' > /dev/null" % (uri, ldap_auth_dn, ldap_password, dn, mdp) ):
cprint('Erreur lors du changement de mot de passe','rouge')
cprint(u'Erreur lors du changement de mot de passe', 'rouge')
syslog.syslog("LDAP password changed for dn=%s" % dn)
else :
cprint('Changement effectué avec succès','vert')
cprint(u'Changement effectué avec succès', u'vert')
except KeyboardInterrupt :
cprint('\nAbandon','rouge')
cprint(u'\nAbandon', 'rouge')
pass
except EOFError :
# Un Ctrl-D
cprint('\nAbandon','rouge')
cprint(u'\nAbandon', 'rouge')
pass
if __name__ == '__main__' :
......@@ -134,11 +134,11 @@ if __name__ == '__main__' :
self_mode = False
for c in login[:] :
if not c.isalnum() and not c=='-' :
cprint('Login incorrect','rouge')
cprint(u'Login incorrect', 'rouge')
sys.exit(1)
if getuser() == login :
cprint('Utiliser passwd pour changer son propre mot de passe','rouge')
cprint(u'Utiliser passwd pour changer son propre mot de passe', 'rouge')
sys.exit(2)
if self_mode :
......@@ -146,24 +146,24 @@ if __name__ == '__main__' :
else :
s = commands.getoutput("/usr/bin/ldapsearch -D cn=readonly,dc=crans,dc=org -y/etc/ldap/readonly -x -LLL '(&(objectClass=posixAccount)(uid=%s))' dn nom prenom droits | grep -v MultiMachines" % login).strip()
if not s :
cprint('Login non trouvé dans la base LDAP','rouge')
cprint(u'Login non trouvé dans la base LDAP', 'rouge')
sys.exit(3)
# Ca a l'air bon
if s.find('\n\n') != -1 :
# Plusieurs trouvé : pas normal
cprint('Erreur lors de la recherche du login : plusieurs occurences !','rouge')
cprint(u'Erreur lors de la recherche du login : plusieurs occurences !', 'rouge')
sys.exit(4)
s = s.split('\n')
try :
dn = s[0].split()[1]
if len(s) == 2 :
cprint("Changement du mot de passe du club %s "%decode64(' '.join(s[1].split()[1:])),'vert')
cprint(u"Changement du mot de passe du club %s "%decode64(' '.join(s[1].split()[1:])), 'vert')
else :
cprint("Changement du mot de passe de %s %s " % ( s[2].split()[1], s[1].split()[1] ),'vert')
cprint(u"Changement du mot de passe de %s %s " % ( s[2].split()[1], s[1].split()[1] ), 'vert')
except :
cprint('Erreur lors de la recherche du login','rouge')
cprint(u'Erreur lors de la recherche du login', 'rouge')
sys.exit(5)
if self_mode :
......@@ -174,10 +174,10 @@ if __name__ == '__main__' :
try :
resultat = s.split(':')[1].strip()
except :
cprint("Erreur lors de l'authentification",'rouge')
cprint(u"Erreur lors de l'authentification", 'rouge')
sys.exit(7)
if resultat != dn :
cprint({ 'Invalid credentials (49)' : 'Mot de passe invalide' }.get(resultat,resultat),'rouge')
cprint({ 'Invalid credentials (49)': u'Mot de passe invalide' }.get(resultat, resultat), 'rouge')
sys.exit(8)
elif len(s) > 3 and os.getuid()!=0 :
......@@ -196,7 +196,7 @@ Tentative de changement du mot de passe de %s par %s.
conn = smtplib.SMTP('localhost')
conn.sendmail(From, To , mail )
conn.quit()
cprint('Impossible de changer le mot de passe de cet adhérent : compte privilégié','rouge')
cprint(u'Impossible de changer le mot de passe de cet adhérent : compte privilégié', 'rouge')
sys.exit(6)
# Finalement !
......
......@@ -129,7 +129,7 @@ class gen_config :
def reconfigure(self) :
""" Génère les fichiers puis redémarre le service
si la génération c'est bien passée """
cprint('Reconfiguration %s :' % self.__str__() , 'gras')
cprint(u'Reconfiguration %s :' % self.__str__(), 'gras')
if self.gen_conf() :
return self.restart()
else : return 1
......@@ -15,7 +15,7 @@ class del_user :
def __init__(self,args) :
self.args=args
def reconfigure(self) :
cprint('Archivage fichiers utilisateur','gras')
cprint(u'Archivage fichiers utilisateur', 'gras')
for args in self.args :
anim('\t' + args)
try:
......@@ -54,7 +54,7 @@ class home:
def __init__(self,args) :
self.args = args
def reconfigure(self) :
cprint('Cration home','gras')
cprint(u'Cration home', 'gras')
for args in self.args :
anim('\t' + args)
try:
......@@ -99,7 +99,7 @@ class mail_bienvenue :
self.mails = mails
def reconfigure(self) :
cprint('Envoi mail de bienvenue','gras')
cprint(u'Envoi mail de bienvenue', 'gras')
for mail in self.mails :
anim('\t' + mail)
try:
......@@ -122,7 +122,7 @@ class ML_ens :
self.mails = mails
def reconfigure(self) :
cprint('Inscription ML-ENS','gras')
cprint(u'Inscription ML-ENS', 'gras')
for mail in self.mails :
anim('\t'+mail)
status, output = commands.getstatusoutput("echo '%s' | /usr/sbin/add_members -r - com-ens >/dev/null 2>&1" % mail)
......
......@@ -152,17 +152,17 @@ class firewall_crans :
def restart(self):
""" Rdmarrage du firewall """
cprint(u'Redmarrage firewall','gras')
cprint(u'Redmarrage firewall', 'gras')
self.start(False)
def start(self,aff_txt_intro=True) :
""" Construction du firewall
aff_txt_intro s'occupe uniquement de l'esthtisme
"""
if aff_txt_intro : cprint('Dmarrage firewall','gras')
if aff_txt_intro: cprint(u'Dmarrage firewall', 'gras')
# Prliminaires
if not self.__machines() or self.exception_catcher(self.__stop) :
cprint("Abandon",'rouge')
cprint(u"Abandon", 'rouge')
return
# Initialisation
......@@ -179,7 +179,7 @@ class firewall_crans :
def stop(self):
""" Arrte le firewall """
cprint("Arrt du firewall",'gras')
cprint(u"Arrt du firewall", 'gras')
self.pre_stop_hook()
self.exception_catcher(self.__stop)
cprint(u"\t -> fin de la procdure d'arrt",'vert')
......
......@@ -34,7 +34,7 @@ Subject: %(Subject)s
def reconfigure(self) :
""" Envoi le mail """
cprint('Mail de notification de modifications','gras')
cprint(u'Mail de notification de modifications', 'gras')
a = anim('\tRecherches dans la base',len(self.recherches))
db = crans_ldap()
......
......@@ -797,7 +797,7 @@ class crans_ldap:
if graphic: from affich_tools import anim, cprint, OK
if not self.__machines:
# Rcolte des donnes
if graphic: cprint('Lecture base LDAP', 'gras')
if graphic: cprint(u'Lecture base LDAP', 'gras')
# Machines de l'assoce
self.__machines = AssociationCrans(self.conn).machines()
# Machines des adhrents et clubs de l'anne en cours
......
Markdown is supported
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