server-tx part : web UI, PDF generator & transfer to RX server
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
from flask import Blueprint
|
||||
|
||||
m_auth = Blueprint(
|
||||
'auth',
|
||||
__name__,
|
||||
template_folder='templates'
|
||||
)
|
||||
|
||||
from . import views
|
||||
@@ -0,0 +1,21 @@
|
||||
{% extends "general.html" %}
|
||||
|
||||
{% block title %}Авторизация{% endblock %}
|
||||
{% block header %}Авторизация на платформе{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="card">
|
||||
<h2>Авторизация</h2>
|
||||
<form action="session/login" method="POST">
|
||||
<div class="form-group">
|
||||
<label for="username">Логин</label>
|
||||
<input type="text" id="username" name="username" required>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="password">Пароль</label>
|
||||
<input type="password" id="password" name="password" required>
|
||||
</div>
|
||||
<button type="submit" class="button">Авторизация</button>
|
||||
</form>
|
||||
</div>
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,41 @@
|
||||
from . import m_auth
|
||||
|
||||
from flask import render_template
|
||||
from flask import redirect
|
||||
from flask import request
|
||||
from flask import session
|
||||
from app._tools.database import SessionManager
|
||||
from app._tools.database import DataManager
|
||||
from app._tools.decorators import auth_required
|
||||
from app._tools import passhash
|
||||
from app.config import _SALT as SALT
|
||||
|
||||
@m_auth.route('/')
|
||||
def login_page():
|
||||
return render_template('auth/login_form.html')
|
||||
|
||||
@m_auth.route('/session/login', methods=['POST'])
|
||||
def login():
|
||||
data = dict(request.form)
|
||||
if (len(data['username']) == 0 or len(data['password']) == 0):
|
||||
return redirect("/auth")
|
||||
user_i = DataManager.get_user_by_name(data['username'])
|
||||
if user_i == None:
|
||||
return render_template("error.html", error = "Пользователь не найден!")
|
||||
if not passhash.isValid(data['password'], SALT, user_i.passkey):
|
||||
return render_template("error.html", error = "Неверный пароль!")
|
||||
|
||||
new_token = passhash.genToken()
|
||||
SessionManager.add_session(new_token, user_i.id)
|
||||
|
||||
session.permanent = True
|
||||
session["token"] = new_token
|
||||
return redirect("/")
|
||||
|
||||
@m_auth.route('/logout')
|
||||
@auth_required
|
||||
def logout():
|
||||
current_token = session["token"]
|
||||
session.clear()
|
||||
SessionManager.remove_session(current_token)
|
||||
return redirect("/")
|
||||
Reference in New Issue
Block a user