Переписаны страницы с учетом авторизации, добавлен логаут

This commit is contained in:
2020-03-16 20:47:50 +03:00
parent 3a429ef993
commit fc7794b9e0
6 changed files with 51 additions and 129 deletions

View File

@@ -1,6 +1,6 @@
from flask import render_template, request, redirect
from flask import render_template, request, redirect, url_for
import db_routing
from flask_login import LoginManager, current_user, login_user, login_required
from flask_login import LoginManager, login_user, login_required, logout_user
from db_routing import app, db
import os
import hashlib
@@ -10,8 +10,7 @@ login_manager = LoginManager(app)
@login_manager.user_loader
def load_user(user_id):
userID = db_routing.find_user(id=user_id).id
return userID
return db_routing.find_user(id=user_id)
@app.route('/', methods=['GET'])
@@ -26,7 +25,7 @@ def register():
userPassw = request.form['RegUserPassw']
if db_routing.add_user(userName, passw_hash(userPassw)):
login_user(db_routing.find_user(username=userName))
return redirect('content.html')
return redirect(url_for('workshop'))
return render_template('registration.html')
@@ -37,18 +36,24 @@ def login():
user = verify_password(userName, userPassw)
if user:
login_user(user)
return render_template('content.html')
return redirect(url_for('workshop'))
@app.route('/content', methods=['GET'])
@app.route('/logout')
def logout():
logout_user()
return redirect(url_for('/'))
@app.route('/workshop', methods=['GET'])
@login_required
def content():
return render_template('content.html')
def workshop():
return render_template('workshop.html')
# @app.errorhandler(404)
# def not_found(error):
# return render_template('404.html'), 404
@app.errorhandler(404)
def not_found(error):
return render_template('error.html'), 404
def passw_hash(user_passw, salt=os.urandom(32)):

View File

@@ -1,6 +1,5 @@
from flask_sqlalchemy import SQLAlchemy
from flask import Flask
from flask_login import UserMixin
app = Flask('Jarvis', static_folder='static', template_folder='templates')
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///data.db'
@@ -8,7 +7,7 @@ app.config['SECRET_KEY'] = 'Radius'
db = SQLAlchemy(app)
class User(UserMixin, db.Model):
class User(db.Model):
__tablename__ = 'Users'
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True, nullable=False)
@@ -18,6 +17,15 @@ class User(UserMixin, db.Model):
self.username = username
self.password = password
def is_active(self):
return True
def is_authenticated(self):
return self.is_authenticated
def get_id(self):
return self.id
class Trigger(db.Model):
__tablename__ = 'Triggers'

View File

@@ -1,108 +0,0 @@
<!DOCTYPE html>
<html lang="ru-RU">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>jarvis</title>
<link rel="stylesheet" type="text/css" href="{{ url_for('static', filename = './css/main.css') }}">
</head>
<body>
<div class="wrapper">
<!-- header -->
<header class="header">
<div class="container clearfix">
<div class="header_left clearfix">
<a href="" class="logo-decor">
<img class="logo_icon" src="{{ url_for('static', filename='./img/815a836e51c6f20226cb07df7f32895c.png') }}" alt="">
<p class="logo-text">J.a.r.v.i.s </p>
</a>
</div>
<div class="header_right">
<div class="contacts">
<div class="drop">
<p href="" class="contacts__schedule contacts__schedule_mod">nagbator228#264</p>
<div class="dropdown dropdown_mod">
<div class="drop-block drop-block_out">
<div class="triangle triangle_mod"></div>
<button type="submit" value="Выйти" class="header_btn" name="LogOut" >Выход</button>
</div>
</div>
</div>
</div>
</div>
</div>
</header>
<section class="container form_content">
<div class="hero">
<div class="container">
<div class="hero_con clearfix">
<div class="rotateblock_orenge">
<div class="ava_logo">
<div class="rotateblock">
<img src="{{ url_for('static', filename='./img/ava.png') }}" alt="" class="ava">
</div>
</div>
</div>
<div class="content_form">
<div class="animate_text">
<h class="h_content">Jarvis</h>
</div>
<div class="content_form-text">
<p class="text_content">Ваш индивидуальный помощник на каждый день</p>
</div>
<div class="input-button">
<a href="/login" class="input">
<input type="button" href="/login" name="LogButton" class="welcome__btn" value="Создать" >
</a>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- заглушка -->
<footer class="footer clearfix">
<div class="container">
<div class="footer-q clearfix">
<p class="footer-full-text">Сделано с любовью и старанием на курсе ВГУ "Тестирование ПО" <b class="footer-text_name"></b> </p>
</div>
<div class="footer-q clearfix">
<a href="" class="logo-text">j.a.r.v.i.s</a>
</div>
<div class="footer-q clearfix">
<p class="footer-messeger_text">Наши социальные сети</p>
<ul class="footer-messeger">
<li class="footer-messeger__item ">
<a href="" class="footer-messeger__link">
<img src="{{ url_for('static', filename='./img/vk.png') }}" class="footer-messeger__icon" alt="">
</a>
</li>
<li class="footer-messeger__item">
<a href="" class="footer-messeger__link ">
<img src="{{ url_for('static', filename='./img/fb.png') }}" class="footer-messeger__icon" alt="">
</a>
</li>
<li class="footer-messeger__item">
<a href="" class="footer-messeger__link">
<img src="{{ url_for('static', filename='./img/google.png') }}" class="footer-messeger__icon" alt="">
</a>
</li>
<li class="footer-messeger__item">
<a href="" class="footer-messeger__link">
<img src="{{ url_for('static', filename='./img/twitter.png') }}" class="footer-messeger__icon" alt="">
</a>
</li>
<li class="footer-messeger__item">
<a href="" class="footer-messeger__link">
<img src="{{ url_for('static', filename='./img/mail.png') }}" class="footer-messeger__icon" alt="">
</a>
</li>
</ul>
</div>
</div>
</footer>
</body>
</html>

View File

@@ -22,6 +22,17 @@
<div class="header_right">
<div class="contacts">
<div class="drop">
{% if current_user.is_authenticated %}
<p href="" class="contacts__schedule contacts__schedule_mod">{{ current_user.username }}</p>
<div class="dropdown dropdown_mod">
<div class="drop-block drop-block_out">
<div class="triangle triangle_mod"></div>
<a href="/logout" >
<button type="submit" value="Выйти" class="header_btn" name="LogOut" >Выход</button>
</a>
</div>
</div>
{% else %}
<div class="contacts__schedule">Войти</div>
<div class="dropdown">
<div class="drop-block">
@@ -37,6 +48,7 @@
</form>
</div>
</div>
{% endif %}
</div>
</div>
</div>
@@ -61,9 +73,15 @@
<p class="text_content">Ваш индивидуальный помощник на каждый день</p>
</div>
<div class="input-button">
{% if current_user.is_authenticated %}
<a href="/workshop" class="input">
<input type="button" href="/login" name="LogButton" class="welcome__btn" value="Приступить" >
</a>
{% else %}
<a href="/registration" class="input">
<input type="button" href="/registration" name="scriptbutton" class="welcome__btn" value="Регистрация" >
</a>
{% endif %}
</div>
</div>
</div>

View File

@@ -34,7 +34,7 @@
<input type="password" class="form__input-text-mod" placeholder="Пароль" name= "LogUserPassw">
</label>
<a href="" class="input">
<input type="button" href="/content.html" name="LogButton" class="header_btn" value="Войти" >
<input type="button" name="LogButton" class="header_btn" value="Войти" >
</a>
</div>
</form>

View File

@@ -14,7 +14,7 @@
<header class="header">
<div class="container clearfix">
<div class="header_left clearfix">
<a href="" class="logo-decor">
<a href="/" class="logo-decor">
<img class="logo_icon" src="{{ url_for('static', filename='./img/815a836e51c6f20226cb07df7f32895c.png') }}" alt="">
<p class="logo-text">J.a.r.v.i.s </p>
</a>
@@ -22,14 +22,13 @@
<div class="header_right">
<div class="contacts">
<div class="drop">
<p href="" class="contacts__schedule contacts__schedule_mod">nagbator228#264</p>
<p href="" class="contacts__schedule contacts__schedule_mod">{{ current_user.username }}</p>
<div class="dropdown dropdown_mod">
<div class="drop-block drop-block_out">
<div class="triangle triangle_mod"></div>
<!-- <a href="" class="input">
<input type="button" href="" name="LogOut" class="header_btn header_btn_mod" value="Выйти" >
</a> -->
<a href="/logout" class="input">
<button type="submit" value="Выйти" class="header_btn" name="LogOut" >Выход</button>
</a>
</div>
</div>
</div>