Files

89 lines
3.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
from .default import (
execute_query,
)
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 uuid, base64
# get a UUID - URL safe, Base64
uid = uuid.uuid1()
urlslug = base64.urlsafe_b64encode(uid.bytes).decode("utf-8").rstrip('=\n').replace('/', '_')
query = "UPDATE members SET mdp_oublie=:urlslug, mdp_oublie_date=now() WHERE email=:login;"
execute_query(request, query, {'urlslug':urlslug, 'login':login})
return urlslug
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_membre_photo(request, login, photo_instagram):
"""Update photo_instagram for member login"""
query = "UPDATE members SET photo_instagram = :photo_instagram WHERE email=:login;"
execute_query(request, query, {'login': login, 'photo_instagram': photo_instagram})
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 s:
s += ",%s=:%s" % (param, param)
else:
s = "%s=:%s" % (param, param)
if email == 'new':
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})
def update_membre_statut(request, email, action):
if action == 'on':
query = "UPDATE members SET expire_le = NULL WHERE email = :email ;"
else:
query = "UPDATE members SET expire_le = now() WHERE email = :email ;"
execute_query(request, query, {'email': email})