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 72fe577..4472666 100644 --- a/App/Auth/auth_route.py +++ b/App/Auth/auth_route.py @@ -1,31 +1,15 @@ -from flask import request, Blueprint, render_template, session, redirect, url_for -from os import path -from Database.sql_provider import SQLProvider +from dataclasses import dataclass from Database.select import select_list -import json +@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 = request.form.to_dict() - print(data) - result = select_list(config, sql_provider.get('auth.sql', data)) - - if result[1]: - session.update({ - 'user_id': result[1][0]['user_ID'], - 'role': result[1][0]['role'], - 'db_config': config, - 'permanent': True - }) - return redirect(url_for('index')) - - return 'Неправильный логин или пароль' +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 %}