Codestyle and new python package versions.

This commit is contained in:
Patrick Jentsch 2019-08-22 09:33:34 +02:00
parent bfe28eca61
commit 19f60cfd0f
3 changed files with 26 additions and 22 deletions

View File

@ -1,6 +1,6 @@
from flask import current_app
from flask_login import UserMixin, AnonymousUserMixin
from itsdangerous import TimedJSONWebSignatureSerializer as Serializer
from itsdangerous import BadSignature, TimedJSONWebSignatureSerializer
from werkzeug.security import generate_password_hash, check_password_hash
from . import db
from . import login_manager
@ -22,8 +22,8 @@ class Permission:
class Role(db.Model):
"""
Model for the different roles Users can have. Is a one-to-many relationship.
A Role can be associated with many User rows.
Model for the different roles Users can have. Is a one-to-many
relationship. A Role can be associated with many User rows.
"""
__tablename__ = 'roles'
# Primary key
@ -136,24 +136,26 @@ class User(UserMixin, db.Model):
"""
Generates a confirmation token for user confirmation via email.
"""
s = Serializer(current_app.config['SECRET_KEY'], expiration)
s = TimedJSONWebSignatureSerializer(current_app.config['SECRET_KEY'],
expiration)
return s.dumps({'confirm': self.id}).decode('utf-8')
def generate_reset_token(self, expiration=3600):
"""
Generates a reset token for password reset via email.
"""
s = Serializer(current_app.config['SECRET_KEY'], expiration)
s = TimedJSONWebSignatureSerializer(current_app.config['SECRET_KEY'],
expiration)
return s.dumps({'reset': self.id}).decode('utf-8')
def confirm(self, token):
"""
Confirms User if the given token is valid and not expired.
"""
s = Serializer(current_app.config['SECRET_KEY'])
s = TimedJSONWebSignatureSerializer(current_app.config['SECRET_KEY'])
try:
data = s.loads(token.encode('utf-8'))
except:
except BadSignature:
return False
if data.get('confirm') != self.id:
return False
@ -166,10 +168,10 @@ class User(UserMixin, db.Model):
"""
Resets password for User if the given token is valid and not expired.
"""
s = Serializer(current_app.config['SECRET_KEY'])
s = TimedJSONWebSignatureSerializer(current_app.config['SECRET_KEY'])
try:
data = s.loads(token.encode('utf-8'))
except:
except BadSignature:
return False
user = User.query.get(data.get('reset'))
if user is None:
@ -291,6 +293,7 @@ class Corpus(db.Model):
'title': self.title,
'user_id': self.user_id}
'''
' Flask-Login is told to use the applications custom anonymous user by setting
' its class in the login_manager.anonymous_user attribute.

View File

@ -33,7 +33,8 @@ class Config:
class DevelopmentConfig(Config):
DEBUG = True
SQLALCHEMY_DATABASE_URI = 'sqlite:///' + os.path.join(basedir, 'data_dev.sqlite')
SQLALCHEMY_DATABASE_URI = 'sqlite:///' + os.path.join(basedir,
'data_dev.sqlite')
class TestingConfig(Config):

View File

@ -1,12 +1,12 @@
docker==4.0.2
eventlet==0.25.0
Flask==1.0.3
Flask-APScheduler==1.11.0
Flask-Login==0.4.1
Flask-Mail==0.9.1
Flask-Migrate==2.5.2
Flask-SocketIO==4.2.1
Flask-SQLAlchemy==2.4.0
Flask-Table==0.5.0
Flask-WTF==0.14.2
python-dotenv==0.10.3
docker
eventlet
Flask
Flask-APScheduler
Flask-Login
Flask-Mail
Flask-Migrate
Flask-SocketIO
Flask-SQLAlchemy
Flask-Table
Flask-WTF
python-dotenv