ajout d'une route pour la récuperation de la photo d'un utilisateur

This commit is contained in:
2022-05-04 16:46:12 +02:00
parent 089af8530f
commit d19676b591

View File

@@ -12,7 +12,7 @@ import logging as log
from logging.config import dictConfig
from pprint import pprint
from flask import Flask, request, abort, jsonify, render_template, make_response
from flask import Flask, request, abort, jsonify, render_template, make_response, send_file
from flask_cors import CORS, cross_origin
from flask.logging import default_handler
from flask_api import status
@@ -389,6 +389,37 @@ def reset_passwd_user(userId):
content = {'message' : 'reset du mot de passe!'}
return jsonify(content)
@app.route('/api/utilisateurs/<int:userId>/photo', methods=['GET'])
@jwt_required()
@dbmanage
def get_photo(userId):
''' Recupere la photo de l'utilisateur suivant son Id '''
# Access the identity of the current user with get_jwt_identity
current_user = get_jwt_identity()
# Test si l'utilisateur courant est actif ou pas
# Si l'utilisateur courant n'est pas administrateur, il ne peut voir que son profil
if not current_user["Actif"] or current_user["Role"] != "Administrateur" and current_user['userId'] != userId:
db.disconnect()
abort(403, description='Utilisateur non autorisé')
# Hash du mot de passe
passwd = generate_password_hash('provisoire', method='sha256')
sql_statement = "SELECT * FROM utilisateur WHERE userid = {}".format(userId)
# Execution de la requete SQL
etat, ret = db.execute(sql_statement, None, False)
if not etat:
db.disconnect()
abort(500)
else:
if not ret:
db.disconnect()
abort(404)
user = ret[0]
if user['Photo']:
return send_file(os.path.join('../', user['Photo']), mimetype='image/'+os.path.splitext(user['Photo'])[1].split('.')[1])
return abort(404, description='Picture not found!')
@app.route('/api/utilisateurs/current', methods=['GET'])
@jwt_required()
def current_user():