Skip to content
Snippets Groups Projects
Commit b07b6a65 authored by Tobias Ullerich's avatar Tobias Ullerich
Browse files

Add UsernamePasswordService, SessionLoginWrapper

parent 5bf3ce01
No related branches found
No related tags found
No related merge requests found
...@@ -3,3 +3,4 @@ MANIFEST ...@@ -3,3 +3,4 @@ MANIFEST
build/ build/
*.egg-info/ *.egg-info/
*.eggs/ *.eggs/
venv/
\ No newline at end of file
from functools import wraps
from flask import session, redirect, url_for
def require_login(func):
@wraps(func)
def check_token(*args, **kwargs):
if 'authorized' not in session:
return redirect(url_for('authentication.login'))
# redirect to requested url
return func(*args, **kwargs)
return check_token
import bcrypt
class UserService:
def __init__(self, users):
self.__users = {}
for user in users:
self.__users[user["name"].lower()] = user["password"]
def get_users(self):
return self.__users
def is_password_valid(self, name: str, password: str) -> bool:
saved_password = self.__users.get(name.lower(), None)
if saved_password is None:
raise ValueError(f'User {name} not found')
return bcrypt.checkpw(password.encode(), saved_password.encode())
...@@ -14,6 +14,7 @@ setup( ...@@ -14,6 +14,7 @@ setup(
install_requires=[ install_requires=[
'flask', 'flask',
'gevent' 'gevent'
'bcrypt'
], ],
setup_requires=[ setup_requires=[
'wheel' 'wheel'
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment