79 lines
3.0 KiB
Python
79 lines
3.0 KiB
Python
from flask import Blueprint, Flask, request, flash, render_template, url_for, session, redirect, abort, make_response, send_file, escape
|
|
import sqlite3
|
|
from flask_bcrypt import Bcrypt
|
|
from socket import gethostname
|
|
|
|
app = Flask( 'pywallter' )
|
|
app.config.from_pyfile('config.py')
|
|
bcrypt = Bcrypt(app)
|
|
|
|
#### Variables ####################################################################################
|
|
|
|
bcrypt = Bcrypt(app)
|
|
DOSSIER_PERSO= app.config['DOSSIER_APP']
|
|
|
|
extensionimg = app.config['EXT_IMG']
|
|
|
|
DATABASE = app.config['DATABASE']
|
|
|
|
BASE_URL = app.config['BASE_URL']
|
|
|
|
MAIL_SERVER = app.config['MAIL_SERVER']
|
|
##################################################################################################
|
|
|
|
|
|
loginlogout = Blueprint('loginlogout', __name__, template_folder='templates')
|
|
|
|
@loginlogout.route( '/login/', methods=['GET','POST'] )
|
|
def login() :
|
|
if 'username' in session :
|
|
resp = redirect(url_for('filesupload.uploadfiles', _external=True))
|
|
else :
|
|
resp = redirect(url_for('loginlogout.login', _external=True))
|
|
if request.method == 'POST' :
|
|
conn = sqlite3.connect(DATABASE) # Connexion à la base de donnée
|
|
cursor = conn.cursor() # Création de l'objet "curseur"
|
|
cursor.execute("""SELECT name, passwd FROM users""")
|
|
users = cursor.fetchall()
|
|
conn.close()
|
|
password = request.form['passwd']
|
|
for user in users:
|
|
print (user[0])
|
|
passwd = str(user[1] )
|
|
print ( passwd[2:(len(passwd)-1 )] )
|
|
if user[0] == request.form['user'] and bcrypt.check_password_hash(user[1], password) is True:
|
|
session['username'] = request.form['user']
|
|
resp = redirect(url_for('profil.profile', _external=True))
|
|
else:
|
|
resp = render_template('accueil.html', signin_enable=app.config['SIGNIN_ENABLE'])
|
|
return resp
|
|
|
|
|
|
@loginlogout.route( '/logout/' )
|
|
def logout():
|
|
session.pop('username', None) # Supprimer username de la session s'il s'y trouve
|
|
return redirect(url_for('loginlogout.index'))
|
|
|
|
|
|
@loginlogout.route( '/' )
|
|
def index():
|
|
|
|
conn = sqlite3.connect(DATABASE) # Connexion à la base de donnée
|
|
cursor = conn.cursor() # Création de l'objet "curseur"
|
|
cursor.execute("""SELECT token passwd FROM users where name=? """, ("pywallter", ))
|
|
tmp = cursor.fetchone()
|
|
conn.close
|
|
token = tmp[0]
|
|
if 'username' in session :
|
|
return redirect(url_for('profil.profile'))
|
|
else :
|
|
if token:
|
|
hostname = gethostname()
|
|
url_inscription = BASE_URL+'inscription/'+token
|
|
return render_template('inscription.html', signin_enable=app.config['SIGNIN_ENABLE'],
|
|
token=token, hostname=hostname,
|
|
url_inscription=url_inscription,
|
|
MAIL_SERVER=MAIL_SERVER)
|
|
else:
|
|
return redirect(url_for('loginlogout.login', _external=True))
|