generates new password at first edit

This commit is contained in:
Daniel STAN 2013-02-22 04:10:20 +01:00
parent 3b1bf0e77f
commit e6b1a41a54

View file

@ -10,6 +10,9 @@ import os
import atexit import atexit
import argparse import argparse
import re import re
import random
import string
import datetime
try: try:
import clientconfig as config import clientconfig as config
except ImportError: except ImportError:
@ -134,6 +137,13 @@ def get_my_roles():
allr = all_roles() allr = all_roles()
return filter(lambda role: SERVER['user'] in allr[role],allr.keys()) return filter(lambda role: SERVER['user'] in allr[role],allr.keys())
def gen_password():
"""Generate random password"""
random.seed(datetime.datetime.now().microsecond)
chars = string.letters + string.digits + '/=+*'
length = 15
return ''.join([random.choice(chars) for _ in xrange(length)])
###### ######
## Local commands ## Local commands
@ -335,12 +345,15 @@ def show_file(fname):
def edit_file(fname): def edit_file(fname):
value = get_file(fname) value = get_file(fname)
nfile = False nfile = False
annotations = u""
if value == False: if value == False:
nfile = True nfile = True
print "Fichier introuvable" print "Fichier introuvable"
if not confirm("Créer fichier ?"): if not confirm("Créer fichier ?"):
return return
texte = "" annotations += u"""Ceci est un fichier initial contenant un mot de passe
aléatoire, pensez à rajouter une ligne "login: ${login}" """
texte = "pass: %s\n" % gen_password()
roles = get_my_roles() roles = get_my_roles()
# Par défaut les roles d'un fichier sont ceux en écriture de son # Par défaut les roles d'un fichier sont ceux en écriture de son
# créateur # créateur
@ -356,7 +369,7 @@ def edit_file(fname):
texte = sout.read() texte = sout.read()
value['roles'] = NROLES or value['roles'] value['roles'] = NROLES or value['roles']
annotations = u"Ce fichier sera chiffré pour les rôles suivants :\n%s\n\ annotations += u"Ce fichier sera chiffré pour les rôles suivants :\n%s\n\
C'est-à-dire pour les utilisateurs suivants :\n%s" % ( C'est-à-dire pour les utilisateurs suivants :\n%s" % (
', '.join(value['roles']), ', '.join(value['roles']),
'\n'.join(' %s' % rec for rec in get_dest_of_roles(value['roles'])) '\n'.join(' %s' % rec for rec in get_dest_of_roles(value['roles']))