diff --git a/App/Auth/auth.py b/App/Auth/auth.py new file mode 100644 index 0000000..d7415b5 --- /dev/null +++ b/App/Auth/auth.py @@ -0,0 +1,30 @@ +from flask import request, Blueprint, render_template, session, redirect, url_for +from os import path +from .auth_route import route +from Database.sql_provider import SQLProvider +import json + +sql_provider = SQLProvider(path.join(path.dirname(__file__), 'sql')) +auth_bp = Blueprint('auth_bp', __name__, template_folder='templates') + +with open(path.join(path.dirname(__file__), 'config.json')) as f: + config = json.load(f) + +@auth_bp.route('/', methods=['GET', 'POST']) +def auth(): + if request.method == 'GET': + return render_template('auth.html') + else: + data = request.form.to_dict() + print(data) + auth_data = route(config, data, sql_provider, 'auth.sql') + if auth_data.status: + session.update({ + 'user_id': auth_data.result[0]['user_ID'], + 'role': auth_data.result[0]['role'], + 'db_config': config, + 'permanent': True + }) + return redirect(url_for('index')) + else: + return auth_data.error_message diff --git a/App/Auth/auth_route.py b/App/Auth/auth_route.py index 4298f15..4472666 100644 --- a/App/Auth/auth_route.py +++ b/App/Auth/auth_route.py @@ -1,28 +1,15 @@ -from flask import request, Blueprint, render_template, session, redirect, url_for -from os import path -from db.sql_provider import SQLProvider -from db.select import select_list -import json +from dataclasses import dataclass +from Database.select import select_list +@dataclass +class InfoRespronse: + result: tuple + error_message: str + status: bool -sql_provider = SQLProvider(path.join(path.dirname(__file__), 'sql')) -auth_bp = Blueprint('auth_bp', __name__, template_folder='templates') - -with open(path.join(path.dirname(__file__), 'config.json')) as f: - config = json.load(f) - -@auth_bp.route('/', methods=['GET', 'POST']) -def auth(): - if request.method == 'GET': - return render_template('auth.html') - else: - data = dict(request.form) - print(data) - result = select_list(config, sql_provider.get('auth.sql', data)) - if result[1]: - session['user_id'] = result[1][0]['user_ID'] - session['role'] = result[1][0]['role'] - session['db_config'] = config - session.permanent = True - return redirect(url_for('index')) - else: - return 'Неправильный логин или пароль' \ No newline at end of file +def route(db_config, input_data, sql_provider, name) -> InfoRespronse: + _sql = sql_provider.get(name, input_data) + print("sql = ", _sql) + result = select_list(db_config, _sql) + if result is None: + return InfoRespronse(result, error_message = 'Ошибка на этапе авторизации', status=False) + return InfoRespronse(result, error_message='', status=True) \ No newline at end of file diff --git a/App/Auth/templates/auth.html b/App/Auth/templates/auth.html index 70ad0fe..595a817 100644 --- a/App/Auth/templates/auth.html +++ b/App/Auth/templates/auth.html @@ -2,7 +2,7 @@
-| {{ item }} | - {% endfor %} +Материал | +Вес | +Цена | +Количество |
|---|---|---|---|---|
| {{ item['material'] }} | {{ item['weight'] }} | @@ -35,7 +36,6 @@ {% endfor %}