1
0
mirror of https://github.com/avatao-content/test-tutorial-framework synced 2025-06-28 23:25:13 +00:00

Make webservice run as user and use tfwconnector pip package

This commit is contained in:
Kristóf Tóth
2018-05-11 17:46:15 +02:00
parent ba0f92d2ac
commit 3ee5db6e57
3 changed files with 16 additions and 2 deletions

View File

@ -1,3 +1,7 @@
from functools import partial
from tfwconnector import MessageSender
from crypto import PasswordHasher
from model import User
from errors import InvalidCredentialsError, UserExistsError
@ -8,6 +12,8 @@ class UserOps:
self.username = username
self.password = password
self.db_session = db_session
self.message_sender = MessageSender()
self.log = partial(self.message_sender.send, 'Authenticator')
def authenticate(self):
"""
@ -20,8 +26,11 @@ class UserOps:
user = self.db_session.query(User).filter(User.username == self.username).first()
if not user or not PasswordHasher.verify(self.password, user.passwordhash):
self.log(f'Invalid credentials for user "{self.username}"!')
raise InvalidCredentialsError
self.log(f'User "{self.username}" logged in!')
def register(self):
"""
Attempts to register a user.
@ -37,3 +46,5 @@ class UserOps:
passwordhash=PasswordHasher.hash(self.password))
self.db_session.add(user)
self.db_session.commit()
self.log(f'User "{self.username}" registered!')