TG-124 : Correction du sytème de login + register

This commit is contained in:
Clément ARNAUDEAU 2017-03-28 15:14:57 +02:00
parent b08c110fbd
commit e5c50d9907
8 changed files with 65 additions and 23 deletions

View File

@ -1,5 +1,5 @@
USE OLA;
INSERT INTO SETTINGS VALUES ('URL_BASE_DIRECTORY', '/OLA_RESSOURCES/', 'Répertoire base pour le dépot des fichiers');
INSERT INTO SETTINGS VALUES ('BASE_DIRECTORY', '/OLA_RESSOURCES/', 'Répertoire base pour le dépot des fichiers');
INSERT INTO SETTINGS VALUES ('OLA_URL', 'ola.univ-tlse2.fr/', 'URL de l application');
INSERT INTO `USER` VALUES (1, '1', 'sec@univ-tlse2.fr', 'Secrétaire', DEFAULT, 'aZeRtYuIoP', '01.23.45.67.89');

View File

@ -0,0 +1,18 @@
USE OLA;
INSERT INTO SETTINGS VALUES ('URL_BASE_DIRECTORY', '/OLA_RESSOURCES/', 'Répertoire base pour le dépot des fichiers');
INSERT INTO SETTINGS VALUES ('OLA_URL', 'ola.univ-tlse2.fr/', 'URL de l application');
INSERT INTO `USER` VALUES (1, 'sec', '1', 'sec@univ-tlse2.fr', '01.23.45.67.89');
INSERT INTO `USER` VALUES (2, 'etu1', '4', 'etu1@univ-tlse2.fr', '01.23.45.67.89');
INSERT INTO `USER` VALUES (3, 'etu2', '4', 'etu2@univ-tlse2.fr', '01.23.45.67.89');
INSERT INTO `USER` VALUES (4, 'etu3', '4', 'etu3@univ-tlse2.fr', '01.23.45.67.89');
INSERT INTO `USER` VALUES (5, 'resp', '2-3', 'resp@univ-tlse2.fr', '01.23.45.67.89');
INSERT INTO `USER` VALUES (6, 'tut', '3', 'tut@univ-tlse2.fr', '01.23.45.67.89');
INSERT INTO `GROUP` VALUES (1, 'M2_ICE_2016-2017_TEST', '2017', 'Master2 ICE', 'Master 2 Informatique Collaborative en Entreprise', 'Sciences du chômage proffessionnel', 5, 1, '/home/dan/PycharmProjects/OLA/backend/app/OLA_RESSOURCES/M2_ICE_2016-2017_TEST');
INSERT INTO `GROUP` VALUES (2, 'M1_ICE_2016-2017_TEST', '2017', 'Master1 ICE', 'Master 1 Informatique Collaborative en Entreprise', 'Sciences du chômage proffessionnel', 5, 1, '/home/dan/PycharmProjects/OLA/backend/app/OLA_RESSOURCES/M1_ICE_2016-2017_TEST');
INSERT INTO TUTORSHIP VALUES (DEFAULT, 1, 5, 2);
INSERT INTO TUTORSHIP VALUES (DEFAULT, 2, 5, 4);
INSERT INTO TUTORSHIP VALUES (DEFAULT, 1, 6, 3);

View File

@ -24,7 +24,7 @@ class GroupAPI(Resource):
department = args['department']
resp_id = args['resp_id']
sec_id = args['sec_id']
res_dir = getParam('URL_BASE_DIRECTORY') + name + "/"
res_dir = getParam('BASE_DIRECTORY') + name + "/"
mails = []
group = getGroup(name=name)
@ -97,7 +97,7 @@ class GroupAPI(Resource):
department = args['department']
resp_id = args['resp_id']
sec_id = args['sec_id']
res_dir = getParam('URL_BASE_DIRECTORY') + name + "/"
res_dir = getParam('BASE_DIRECTORY') + name + "/"
mails = []
group = getGroup(gid=gid)

View File

@ -1,8 +1,11 @@
from hashlib import sha256
from flask import session
from flask_restful import Resource
from flask_restful.reqparse import RequestParser
from app.model import getUser
from app.core import app
from app.model import USER
class LoginAPI(Resource):
@ -15,18 +18,31 @@ class LoginAPI(Resource):
parser.add_argument('email', required=True, help="Email cannot be blank!")
parser.add_argument('password', required=True, help="Password cannot be blank!")
args = parser.parse_args()
email = args['email']
psw = args['password']
password = sha256(psw.encode('utf-8')).hexdigest()
if "user" in session and session["user"] is not None:
return {'AUTH_RESULT': 'ALREADY_LOGGED'}, 201
user = getUser(email=args['email'])
query = USER.select(USER.c.email == email)
rows = query.execute()
user = rows.first()
if user is not None and args['password'] == args['email']:
session['user'] = user
return {'AUTH_RESULT': 'OK'}, 200
if app.config['TESTING']:
if user is not None and psw == email:
session['user'] = user
return {'AUTH_RESULT': 'OK'}, 200
else:
session['user'] = None
return {'AUTH_RESULT': 'AUTHENTICATION_FAILED'}, 401
else:
session['user'] = None
return {'AUTH_RESULT': 'AUTHENTICATION_FAILED'}, 401
if user is not None and password == user.psw:
session['user'] = user
return {'AUTH_RESULT': 'OK'}, 200
else:
session['user'] = None
return {'AUTH_RESULT': 'AUTHENTICATION_FAILED'}, 401
def delete(self):
session['user'] = None

View File

@ -59,8 +59,10 @@ class UserAPI(Resource):
query.execute()
return {"UID": uid}, 200
def get(self, uid=0, email=""):
def get(self, uid=0, email="", hashcode=""):
if uid > 0:
return {'USER': getUser(uid=uid)}, 200
elif email != "":
return {'USER': getUser(email=email)}, 200
elif hash != "":
return {'USER': getUser(hashcode=hashcode)}, 200

View File

@ -4,8 +4,8 @@ _NEW_STUD_OF_GROUP = ("Votre compte OLA a été créé !", "Bonjour,<br/><p>Votr
"<a href='#URL'>#URL</a></p><p>Bonne journée !</p>")
_STUD_OF_GROUP = (
"Vous avez été ajouté à un groupe OLA !", "Bonjour,<br/><p>Votre compte vient d'être ajouté dans l'Outil du "
"Livret de l'Alternant au groupe <b>#GROUPE</b>. Vous pouvez dès "
"Vous avez été ajouté à un groupe OLA !", "Bonjour,<br/><p>Votre compte vient d'être ajouté dans l'Outil du "
"Livret de l'Alternant au groupe <b>#GROUPE</b>. Vous pouvez dès "
"maintenant créer un livret en vous rendant à l'adresse : <br/>"
"<a href='#URL'>#URL</a></p><p>Bonne journée !</p>")
@ -15,10 +15,10 @@ _NEW_RESP_OF_GROUP = ("Votre compte OLA a été créé !", "Bonjour,<br/><p>Votr
"<a href='#URL'>#URL</a></p><p>Bonne journée !</p>")
_RESP_OF_GROUP = (
"Vous avez été ajouté à un groupe OLA !", "Bonjour,<br/><p>Votre compte vient d'être ajouté dans l'Outil du "
"Livret de l'Alternant en tant que responsable du groupe <b>#GROUPE</b>. Vous pouvez dès "
"maintenant y accéder en vous rendant à l'adresse : <br/>"
"<a href='#URL'>#URL</a></p><p>Bonne journée !</p>")
"Vous avez été ajouté à un groupe OLA !", "Bonjour,<br/><p>Votre compte vient d'être ajouté dans l'Outil du "
"Livret de l'Alternant en tant que responsable du groupe <b>#GROUPE</b>. Vous pouvez dès "
"maintenant y accéder en vous rendant à l'adresse : <br/>"
"<a href='#URL'>#URL</a></p><p>Bonne journée !</p>")
_NEW_SEC_OF_GROUP = ("Votre compte OLA a été créé !", "Bonjour,<br/><p>Votre compte vient d'être créé dans l'Outil du "
"Livret de l'Alternant en tant que secrétaire du groupe <b>#GROUPE</b>. Vous pouvez dès "
@ -26,10 +26,10 @@ _NEW_SEC_OF_GROUP = ("Votre compte OLA a été créé !", "Bonjour,<br/><p>Votre
"<a href='#URL'>#URL</a></p><p>Bonne journée !</p>")
_SEC_OF_GROUP = (
"Vous avez été ajouté à un groupe OLA !", "Bonjour,<br/><p>Votre compte vient d'être ajouté dans l'Outil du "
"Livret de l'Alternant en tant que secrétaire du groupe <b>#GROUPE</b>. Vous pouvez dès "
"maintenant y accéder en vous rendant à l'adresse : <br/>"
"<a href='#URL'>#URL</a></p><p>Bonne journée !</p>")
"Vous avez été ajouté à un groupe OLA !", "Bonjour,<br/><p>Votre compte vient d'être ajouté dans l'Outil du "
"Livret de l'Alternant en tant que secrétaire du groupe <b>#GROUPE</b>. Vous pouvez dès "
"maintenant y accéder en vous rendant à l'adresse : <br/>"
"<a href='#URL'>#URL</a></p><p>Bonne journée !</p>")
def getMailContent(mail_type, args):

View File

@ -24,7 +24,7 @@ def getParam(key):
return rows.first().value
def getUser(uid=0, email=""):
def getUser(uid=0, email="", hashcode=""):
res = None
if uid == 0 and email == "":
@ -40,6 +40,11 @@ def getUser(uid=0, email=""):
rows = query.execute()
res = rows.first()
elif hashcode != "":
query = USER.select(USER.c.hash == hashcode)
rows = query.execute()
res = rows.first()
if res is not None:
return {"id": res.id, "email": res.email, "role": res.role, "phone": res.phone, "name": res.name}
else:

View File

@ -9,5 +9,6 @@ from app.core import api
api.add_resource(SomeApi, '/api/someapi', '/api/someapi/<int:id>')
api.add_resource(LoginAPI, '/api/login')
api.add_resource(UserInfoAPI, '/api/userInfo')
api.add_resource(UserAPI, '/api/user', '/api/user/byuid/<int:uid>', '/api/user/byemail/<string:email>')
api.add_resource(UserAPI, '/api/user', '/api/user/byuid/<int:uid>', '/api/user/byemail/<string:email>',
'/api/user/byhash/<string:hashcode>')
api.add_resource(GroupAPI, '/api/group', '/api/group/bygid/<int:gid>', '/api/group/byname/<string:name>')