tested login.pt
This commit is contained in:
83
caotek_mesavoirs/models/members.py
Normal file
83
caotek_mesavoirs/models/members.py
Normal file
@@ -0,0 +1,83 @@
|
||||
# -*- 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 members WHERE mdp_oublie=:lien;"
|
||||
results = request.dbsession.execute(query, {'lien':lien}).first()
|
||||
return results
|
||||
|
||||
def get_member_by_email(request, email):
|
||||
if email == '0':
|
||||
query = "SELECT * FROM members ORDER BY nom"
|
||||
results = request.dbsession.execute(query).fetchall()
|
||||
else:
|
||||
# lire le membres par son identifianr
|
||||
query = """SELECT * FROM members WHERE email=:email;"""
|
||||
results = request.dbsession.execute(query, {'email': email}).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 members SET mdp_oublie=:r_uuid, mdp_oublie_date=now() WHERE email=: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 members SET mdp = SHA1(:password), mdp_oublie=NULL, mdp_oublie_date=NULL WHERE email=:login;"
|
||||
execute_query(request, query, {'login': login, 'password': password})
|
||||
|
||||
def update_last_connection(request, login):
|
||||
"""Update last connection for login """
|
||||
query = "UPDATE members SET dern_cnx_le=NOW() WHERE email=:login;"
|
||||
execute_query(request, query, {'login': login})
|
||||
|
||||
def update_membre(request, email, new_values):
|
||||
# formater les champs
|
||||
s = ''
|
||||
for param in new_values.keys():
|
||||
if param == 'nom':
|
||||
new_values['nom'] = new_values['nom'].upper()
|
||||
if param == 'access':
|
||||
' ne prend que le 1er caractère'
|
||||
new_values['access'] = new_values['access'][0]
|
||||
|
||||
if s:
|
||||
s += ",%s=:%s" % (param, param)
|
||||
else:
|
||||
s = "%s=:%s" % (param, param)
|
||||
|
||||
if email == '':
|
||||
query = "INSERT INTO members SET %s" % s
|
||||
else:
|
||||
new_values['email'] = email
|
||||
query = "UPDATE members SET %s WHERE email = :email;" % s
|
||||
execute_query(request, query, new_values)
|
||||
|
||||
def delete_membre(request, email):
|
||||
query = "DELETE FROM members WHERE email = :email ;"
|
||||
execute_query(request, query, {'email': email})
|
||||
|
||||
Reference in New Issue
Block a user