Commit a97aa5ee authored by Vincent Le gallic's avatar Vincent Le gallic

print_function

parent 7dacd6bb
...@@ -8,6 +8,8 @@ Authors : Daniel Stan <daniel.stan@crans.org> ...@@ -8,6 +8,8 @@ Authors : Daniel Stan <daniel.stan@crans.org>
Vincent Le Gallic <legallic@crans.org> Vincent Le Gallic <legallic@crans.org>
""" """
from __future__ import print_function
import sys import sys
import subprocess import subprocess
import json import json
...@@ -192,7 +194,7 @@ def check_keys(): ...@@ -192,7 +194,7 @@ def check_keys():
for (mail, fpr) in keys.values(): for (mail, fpr) in keys.values():
if fpr: if fpr:
if VERB: if VERB:
print (u"Checking %s" % (mail)).encode("utf-8") print((u"Checking %s" % (mail)).encode("utf-8"))
corresponds = [key for key in localkeys if key["fingerprint"] == fpr] corresponds = [key for key in localkeys if key["fingerprint"] == fpr]
# On vérifie qu'on possède la clé… # On vérifie qu'on possède la clé…
if len(corresponds) == 1: if len(corresponds) == 1:
...@@ -202,13 +204,13 @@ def check_keys(): ...@@ -202,13 +204,13 @@ def check_keys():
meaning, trustvalue = GPG_TRUSTLEVELS[correspond["trust"]] meaning, trustvalue = GPG_TRUSTLEVELS[correspond["trust"]]
# … et qu'on lui fait confiance # … et qu'on lui fait confiance
if not trustvalue: if not trustvalue:
print (u"--> Fail on %s:%s\nLa confiance en la clé est : %s" % (meaning,)).encode("utf-8") print((u"--> Fail on %s:%s\nLa confiance en la clé est : %s" % (meaning,)).encode("utf-8"))
failed = True failed = True
else: else:
print (u"--> Fail on %s:%s\n!! Le fingerprint et le mail ne correspondent pas !" % (fpr, mail)).encode("utf-8") print((u"--> Fail on %s:%s\n!! Le fingerprint et le mail ne correspondent pas !" % (fpr, mail)).encode("utf-8"))
failed = True failed = True
else: else:
print (u"--> Fail on %s:%s\nPas (ou trop) de clé avec ce fingerprint." % (fpr, mail)).encode("utf-8") print((u"--> Fail on %s:%s\nPas (ou trop) de clé avec ce fingerprint." % (fpr, mail)).encode("utf-8"))
failed = True failed = True
return not failed return not failed
...@@ -245,8 +247,8 @@ def encrypt(roles, contents): ...@@ -245,8 +247,8 @@ def encrypt(roles, contents):
stdin.close() stdin.close()
out = stdout.read().decode("utf-8") out = stdout.read().decode("utf-8")
if out == '': if out == '':
if VERB: if not QUIET:
print u"Échec de chiffrement".encode("utf-8") print(u"Échec de chiffrement".encode("utf-8"))
return None return None
else: else:
return out return out
...@@ -265,7 +267,7 @@ def put_password(name, roles, contents): ...@@ -265,7 +267,7 @@ def put_password(name, roles, contents):
if NROLES != None: if NROLES != None:
roles = NROLES roles = NROLES
if VERB: if VERB:
print u"Pas de nouveaux rôles".encode("utf-8") print(u"Pas de nouveaux rôles".encode("utf-8"))
if enc_pwd <> None: if enc_pwd <> None:
return put_file(name, roles, enc_pwd) return put_file(name, roles, enc_pwd)
else: else:
...@@ -304,7 +306,7 @@ def editor(texte, annotations=u""): ...@@ -304,7 +306,7 @@ def editor(texte, annotations=u""):
def show_files(): def show_files():
"""Affiche la liste des fichiers disponibles sur le serveur distant""" """Affiche la liste des fichiers disponibles sur le serveur distant"""
print u"Liste des fichiers disponibles :".encode("utf-8") print(u"Liste des fichiers disponibles :".encode("utf-8"))
my_roles = get_my_roles() my_roles = get_my_roles()
files = all_files() files = all_files()
keys = files.keys() keys = files.keys()
...@@ -312,21 +314,21 @@ def show_files(): ...@@ -312,21 +314,21 @@ def show_files():
for fname in keys: for fname in keys:
froles = files[fname] froles = files[fname]
access = set(my_roles).intersection(froles) != set([]) access = set(my_roles).intersection(froles) != set([])
print (u" %s %s (%s)" % ((access and '+' or '-'), fname, ", ".join(froles))).encode("utf-8") print((u" %s %s (%s)" % ((access and '+' or '-'), fname, ", ".join(froles))).encode("utf-8"))
print (u"""--Mes roles: %s""" % (", ".join(my_roles),)).encode("utf-8") print((u"""--Mes roles: %s""" % (", ".join(my_roles),)).encode("utf-8"))
def show_roles(): def show_roles():
"""Affiche la liste des roles existants""" """Affiche la liste des roles existants"""
print u"Liste des roles disponibles".encode("utf-8") print(u"Liste des roles disponibles".encode("utf-8"))
for role in all_roles().keys(): for role in all_roles().keys():
if not role.endswith('-w'): if not role.endswith('-w'):
print (u" * " + role ).encode("utf-8") print((u" * " + role ).encode("utf-8"))
def show_servers(): def show_servers():
"""Affiche la liste des serveurs disponibles""" """Affiche la liste des serveurs disponibles"""
print u"Liste des serveurs disponibles".encode("utf-8") print(u"Liste des serveurs disponibles".encode("utf-8"))
for server in config.servers.keys(): for server in config.servers.keys():
print (u" * " + server).encode("utf-8") print((u" * " + server).encode("utf-8"))
old_clipboard = None old_clipboard = None
def saveclipboard(restore=False): def saveclipboard(restore=False):
...@@ -359,7 +361,7 @@ def show_file(fname): ...@@ -359,7 +361,7 @@ def show_file(fname):
"""Affiche le contenu d'un fichier""" """Affiche le contenu d'un fichier"""
value = get_file(fname) value = get_file(fname)
if value == False: if value == False:
print u"Fichier introuvable".encode("utf-8") print(u"Fichier introuvable".encode("utf-8"))
return return
(sin, sout) = gpg('decrypt') (sin, sout) = gpg('decrypt')
sin.write(value['contents'].encode("utf-8")) sin.write(value['contents'].encode("utf-8"))
...@@ -390,7 +392,7 @@ def edit_file(fname): ...@@ -390,7 +392,7 @@ def edit_file(fname):
annotations = u"" annotations = u""
if value == False: if value == False:
nfile = True nfile = True
print u"Fichier introuvable".encode("utf-8") print(u"Fichier introuvable".encode("utf-8"))
if not confirm(u"Créer fichier ?"): if not confirm(u"Créer fichier ?"):
return return
annotations += u"""Ceci est un fichier initial contenant un mot de passe annotations += u"""Ceci est un fichier initial contenant un mot de passe
...@@ -402,7 +404,7 @@ Enregistrez le fichier vide pour annuler.\n""" ...@@ -402,7 +404,7 @@ Enregistrez le fichier vide pour annuler.\n"""
# créateur # créateur
roles = [ r[:-2] for r in roles if r.endswith('-w') ] roles = [ r[:-2] for r in roles if r.endswith('-w') ]
if roles == []: if roles == []:
print u"Vous ne possédez aucun rôle en écriture ! Abandon.".encode("utf-8") print(u"Vous ne possédez aucun rôle en écriture ! Abandon.".encode("utf-8"))
return return
value = {'roles' : roles} value = {'roles' : roles}
else: else:
...@@ -421,13 +423,13 @@ C'est-à-dire pour les utilisateurs suivants :\n%s""" % ( ...@@ -421,13 +423,13 @@ C'est-à-dire pour les utilisateurs suivants :\n%s""" % (
ntexte = editor(texte, annotations) ntexte = editor(texte, annotations)
if ntexte == None and not nfile and NROLES == None: if ntexte == None and not nfile and NROLES == None:
print u"Pas de modifications effectuées".encode("utf-8") print(u"Pas de modifications effectuées".encode("utf-8"))
else: else:
ntexte = texte if ntexte == None else ntexte ntexte = texte if ntexte == None else ntexte
if put_password(fname, value['roles'], ntexte): if put_password(fname, value['roles'], ntexte):
print u"Modifications enregistrées".encode("utf-8") print(u"Modifications enregistrées".encode("utf-8"))
else: else:
print u"Erreur lors de l'enregistrement (avez-vous les droits suffisants ?)".encode("utf-8") print(u"Erreur lors de l'enregistrement (avez-vous les droits suffisants ?)".encode("utf-8"))
def confirm(text): def confirm(text):
"""Demande confirmation, sauf si on est mode ``FORCED``""" """Demande confirmation, sauf si on est mode ``FORCED``"""
...@@ -444,19 +446,19 @@ def remove_file(fname): ...@@ -444,19 +446,19 @@ def remove_file(fname):
if not confirm((u'Êtes-vous sûr de vouloir supprimer %s ?' % fname).encode("utf-8")): if not confirm((u'Êtes-vous sûr de vouloir supprimer %s ?' % fname).encode("utf-8")):
return return
if rm_file(fname): if rm_file(fname):
print u"Suppression effectuée".encode("utf-8") print(u"Suppression effectuée".encode("utf-8"))
else: else:
print u"Erreur de suppression (avez-vous les droits ?)".encode("utf-8") print(u"Erreur de suppression (avez-vous les droits ?)".encode("utf-8"))
def my_check_keys(): def my_check_keys():
"""Vérifie les clés et affiche un message en fonction du résultat""" """Vérifie les clés et affiche un message en fonction du résultat"""
print u"Vérification que les clés sont valides (uid correspondant au login) et de confiance." print(u"Vérification que les clés sont valides (uid correspondant au login) et de confiance.")
print (check_keys() and u"Base de clés ok" or u"Erreurs dans la base").encode("utf-8") print((check_keys() and u"Base de clés ok" or u"Erreurs dans la base").encode("utf-8"))
def my_update_keys(): def my_update_keys():
"""Met à jour les clés existantes et affiche le résultat""" """Met à jour les clés existantes et affiche le résultat"""
print update_keys().encode("utf-8") print(update_keys().encode("utf-8"))
def recrypt_files(): def recrypt_files():
"""Rechiffre les fichiers""" """Rechiffre les fichiers"""
...@@ -471,7 +473,7 @@ def recrypt_files(): ...@@ -471,7 +473,7 @@ def recrypt_files():
for (fname, froles) in all_files().iteritems(): for (fname, froles) in all_files().iteritems():
if set(roles).intersection(froles) == set([]): if set(roles).intersection(froles) == set([]):
continue continue
print (u"Rechiffrement de %s" % fname).encode("utf-8") print((u"Rechiffrement de %s" % fname).encode("utf-8"))
put_password(fname, froles, get_password(fname)) put_password(fname, froles, get_password(fname))
def parse_roles(strroles): def parse_roles(strroles):
...@@ -484,10 +486,10 @@ def parse_roles(strroles): ...@@ -484,10 +486,10 @@ def parse_roles(strroles):
writable = False writable = False
for role in strroles.split(','): for role in strroles.split(','):
if role not in roles.keys(): if role not in roles.keys():
print (u"Le rôle %s n'existe pas !" % role).encode("utf-8") print((u"Le rôle %s n'existe pas !" % role).encode("utf-8"))
return False return False
if role.endswith('-w'): if role.endswith('-w'):
print (u"Le rôle %s ne devrait pas être utilisé ! (utilisez %s)" print((u"Le rôle %s ne devrait pas être utilisé ! (utilisez %s)")
% (role, role[:-2])).encode("utf-8") % (role, role[:-2])).encode("utf-8")
return False return False
writable = writable or role in my_roles_w writable = writable or role in my_roles_w
...@@ -565,7 +567,7 @@ if __name__ == "__main__": ...@@ -565,7 +567,7 @@ if __name__ == "__main__":
parsed.action() parsed.action()
elif parsed.fname == None: elif parsed.fname == None:
if not QUIET: if not QUIET:
print u"Vous devez fournir un nom de fichier avec cette commande".encode("utf-8") print(u"Vous devez fournir un nom de fichier avec cette commande".encode("utf-8"))
parser.print_help() parser.print_help()
sys.exit(1) sys.exit(1)
else: else:
......
...@@ -3,6 +3,8 @@ ...@@ -3,6 +3,8 @@
"""Serveur pour cranspasswords""" """Serveur pour cranspasswords"""
from __future__ import print_function
import glob import glob
import os import os
import pwd import pwd
...@@ -163,19 +165,19 @@ if __name__ == "__main__": ...@@ -163,19 +165,19 @@ if __name__ == "__main__":
pass pass
if command == "listroles": if command == "listroles":
print json.dumps(listroles()) print(json.dumps(listroles()))
elif command == "listkeys": elif command == "listkeys":
print json.dumps(listkeys()) print(json.dumps(listkeys()))
elif command == "listfiles": elif command == "listfiles":
print json.dumps(listfiles()) print(json.dumps(listfiles()))
else: else:
if not filename: if not filename:
sys.exit(1) sys.exit(1)
if command == "getfile": if command == "getfile":
print json.dumps(getfile(filename)) print(json.dumps(getfile(filename)))
elif command == "putfile": elif command == "putfile":
print json.dumps(putfile(filename)) print(json.dumps(putfile(filename)))
elif command == "rmfile": elif command == "rmfile":
print json.dumps(rmfile(filename)) print(json.dumps(rmfile(filename)))
else: else:
sys.exit(1) sys.exit(1)
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