Gestion de message d'erreurs.
En quelque sorte un revert de555b6c4c0a
qui revertaitbbc6cb73f6
. Maintenant, ça marche.
This commit is contained in:
parent
c3c1115b39
commit
0bdf20357f
2 changed files with 69 additions and 68 deletions
68
server.py
68
server.py
|
@ -72,10 +72,10 @@ def getfile(filename):
|
|||
try:
|
||||
obj = json.loads(open(filepath).read())
|
||||
if not validate(obj['roles']):
|
||||
return False
|
||||
return obj
|
||||
return [False, u"Vous n'avez pas les droits de lecture sur le fichier %s." % filename]
|
||||
return [True, obj]
|
||||
except IOError:
|
||||
return False
|
||||
return [False, u"Le fichier %s n'existe pas." % filename]
|
||||
|
||||
|
||||
def putfile(filename):
|
||||
|
@ -87,41 +87,38 @@ def putfile(filename):
|
|||
roles = parsed_stdin['roles']
|
||||
contents = parsed_stdin['contents']
|
||||
except KeyError:
|
||||
return False
|
||||
return [False, u"Entrée invalide"]
|
||||
|
||||
try:
|
||||
old = getfile(filename)
|
||||
oldroles = old['roles']
|
||||
except TypeError:
|
||||
gotit, old = getfile(filename)
|
||||
if not gotit:
|
||||
old = u"[Création du fichier]"
|
||||
pass
|
||||
else:
|
||||
if not validate(oldroles,'w'):
|
||||
return False
|
||||
|
||||
corps = u"Le fichier %s a été modifié par %s." % (filename, MYUID)
|
||||
backup(corps, filename, old)
|
||||
notification(u"Modification de %s" % filename, corps, filename, old)
|
||||
oldroles = old['roles']
|
||||
if not validate(oldroles, 'w'):
|
||||
return [False, u"Vous n'avez pas le droit d'écriture sur %s." % filename]
|
||||
|
||||
corps = u"Le fichier %s a été modifié par %s." % (filename, MYUID)
|
||||
backup(corps, filename, old)
|
||||
notification(u"Modification de %s" % filename, corps, filename, old)
|
||||
|
||||
writefile(filepath, json.dumps({'roles': roles, 'contents': contents}))
|
||||
return True
|
||||
return [True, u"Modification effectuée."]
|
||||
|
||||
def rmfile(filename):
|
||||
"""Supprime le fichier filename après avoir vérifié les droits sur le fichier"""
|
||||
try:
|
||||
old = getfile(filename)
|
||||
roles = old['roles']
|
||||
except TypeError:
|
||||
return True
|
||||
gotit, old = getfile(filename)
|
||||
if not gotit:
|
||||
return old # contient le message d'erreur
|
||||
roles = old['roles']
|
||||
if validate(roles, 'w'):
|
||||
corps = u"Le fichier %s a été supprimé par %s." % (filename, MYUID)
|
||||
backup(corps, filename, old)
|
||||
notification(u"Suppression de %s" % filename, corps, filename, old)
|
||||
os.remove(getpath(filename))
|
||||
else:
|
||||
if validate(roles,'w'):
|
||||
corps = u"Le fichier %s a été supprimé par %s." % (filename, MYUID)
|
||||
backup(corps, filename, old)
|
||||
notification(u"Suppression de %s" % filename, corps, filename, old)
|
||||
os.remove(getpath(filename))
|
||||
else:
|
||||
return False
|
||||
return True
|
||||
return u"Vous n'avez pas les droits d'écriture sur le fichier %s." % filename
|
||||
return u"Suppression effectuée"
|
||||
|
||||
def backup(corps, fname, old):
|
||||
"""Backupe l'ancienne version du fichier"""
|
||||
|
@ -164,20 +161,23 @@ if __name__ == "__main__":
|
|||
except IndexError:
|
||||
pass
|
||||
|
||||
answer = None
|
||||
if command == "listroles":
|
||||
print(json.dumps(listroles()))
|
||||
answer = listroles()
|
||||
elif command == "listkeys":
|
||||
print(json.dumps(listkeys()))
|
||||
answer = listkeys()
|
||||
elif command == "listfiles":
|
||||
print(json.dumps(listfiles()))
|
||||
answer = listfiles()
|
||||
else:
|
||||
if not filename:
|
||||
sys.exit(1)
|
||||
if command == "getfile":
|
||||
print(json.dumps(getfile(filename)))
|
||||
answer = getfile(filename)
|
||||
elif command == "putfile":
|
||||
print(json.dumps(putfile(filename)))
|
||||
answer = putfile(filename)
|
||||
elif command == "rmfile":
|
||||
print(json.dumps(rmfile(filename)))
|
||||
answer = rmfile(filename)
|
||||
else:
|
||||
sys.exit(1)
|
||||
if not answer is None:
|
||||
print(json.dumps(answer))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue