59 lines
2.0 KiB
Python
59 lines
2.0 KiB
Python
# -*- 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})
|
|
|
|
def update_last_connection(request, login):
|
|
"""Update last connection for login """
|
|
query = "UPDATE p_users SET dern_cnx_le=NOW() WHERE CD_UTI=:login;"
|
|
execute_query(request, query, {'login': login})
|
|
|
|
def get_members_by_last_connection(request, ):
|
|
# lire les donnees de l'eleve
|
|
query = "SELECT * FROM p_users WHERE dern_cnx_le IS NOT NULL ORDER BY dern_cnx_le DESC"
|
|
results = request.dbsession.execute(query, ).fetchall()
|
|
return results
|