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:
@ -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!')
|
||||
|
Reference in New Issue
Block a user