# -*- coding: utf8 -*- from sqlalchemy import text from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import ( scoped_session, sessionmaker, ) from zope.sqlalchemy import ( ZopeTransactionExtension, mark_changed ) from datetime import * import transaction def execute_query(request, query, params): """Execute query and mark session as changed""" request.dbsession.execute(query, params) mark_changed(request.dbsession) transaction.commit() def get_member_by_mdp_oublie(request, lien): query = "SELECT * FROM p_users WHERE mdp_oublie=:lien;" results = request.dbsession.execute(query, {'lien':lien}).first() return results def get_member_by_id(request, mbr_id): # lire le membres par son identifianr query = """SELECT * FROM p_users WHERE CD_UTI=:mbr_id;""" results = request.dbsession.execute(query, {'mbr_id': mbr_id}).first() return results def update_membre_mdp_oublie(request, login): import base64 import uuid # get a UUID - URL safe, Base64 r_uuid = base64.urlsafe_b64encode(uuid.uuid4().bytes) r_uuid = r_uuid.replace('=', '') query = "UPDATE p_users SET mdp_oublie=:r_uuid, mdp_oublie_date=now() WHERE CD_UTI=:login;" execute_query(request, query, {'r_uuid':r_uuid, 'login':login}) return r_uuid def update_membre_mdp(request, login, password): """Update password for member login""" query = "UPDATE p_users SET mdp = SHA1(:password), mdp_oublie=NULL, mdp_oublie_date=NULL WHERE CD_UTI=:login;" execute_query(request, query, {'login': login, 'password': password})