Initial commit
This commit is contained in:
@@ -0,0 +1,89 @@
|
||||
from backend.code.modules.database.database import DatabaseModule
|
||||
|
||||
class SessionRepository():
|
||||
def __init__(self, repo: DatabaseModule):
|
||||
self.conn = repo.conn
|
||||
self.cursor = repo.cursor
|
||||
|
||||
def SelectByUsername(self, username: str):
|
||||
sql = '''
|
||||
SELECT a.*, u.name, u.surnames, u.email
|
||||
FROM user_accounts a
|
||||
JOIN users u ON u.id = a.user_id
|
||||
WHERE a.username = ?
|
||||
AND a.active
|
||||
'''
|
||||
self.cursor.execute(sql, [username])
|
||||
return self.cursor.fetchone()
|
||||
|
||||
def SelectByToken(self, token: str):
|
||||
sql = '''
|
||||
SELECT uas.account_id, u.id
|
||||
FROM user_account_sessions uas
|
||||
JOIN user_accounts ua ON uas.account_id = ua.id
|
||||
JOIN users u ON ua.user_id = u.id
|
||||
WHERE token = ?
|
||||
AND uas.active
|
||||
'''
|
||||
self.cursor.execute(sql, [token])
|
||||
return self.cursor.fetchone()
|
||||
|
||||
def RefreshAttempts(self, account_id: int, attempts: int, locked: bool):
|
||||
sql = '''
|
||||
UPDATE user_accounts
|
||||
SET attempts = ?, locked = ?
|
||||
WHERE id = ?
|
||||
'''
|
||||
self.cursor.execute(sql, [attempts, locked, account_id])
|
||||
self.conn.commit()
|
||||
return self.cursor.rowcount
|
||||
|
||||
def RegisterSession(self, accountId: int, token: str):
|
||||
sql = '''
|
||||
INSERT INTO user_account_sessions(account_id, token)
|
||||
VALUES (?, ?)
|
||||
'''
|
||||
self.cursor.execute(sql, [accountId, token])
|
||||
self.conn.commit()
|
||||
return self.cursor.rowcount
|
||||
|
||||
def DisableToken(self, token: str):
|
||||
sql = '''
|
||||
UPDATE user_account_sessions
|
||||
SET active = false
|
||||
WHERE token = ?
|
||||
'''
|
||||
self.cursor.execute(sql, [token])
|
||||
self.conn.commit()
|
||||
return self.cursor.rowcount
|
||||
|
||||
def InsertRecoverRequest(self, accountId: int, token: str):
|
||||
sql = '''
|
||||
INSERT INTO user_account_recover_requests(account_id, token)
|
||||
VALUES(?, ?)
|
||||
'''
|
||||
self.cursor.execute(sql, [accountId, token])
|
||||
self.conn.commit()
|
||||
return self.cursor.rowcount
|
||||
|
||||
def SelectRecoverRequest(self, accountId: int, token: str):
|
||||
sql = '''
|
||||
SELECT *
|
||||
FROM user_account_recover_requests
|
||||
WHERE account_id = ?
|
||||
AND token = ?
|
||||
AND active
|
||||
'''
|
||||
self.cursor.execute(sql, [accountId, token])
|
||||
return self.cursor.fetchone()
|
||||
|
||||
def DisableRecoverRequest(self, token: str):
|
||||
sql = '''
|
||||
UPDATE user_account_recover_requests
|
||||
SET active = false
|
||||
WHERE token = ?
|
||||
AND active
|
||||
'''
|
||||
self.cursor.execute(sql, [token])
|
||||
self.conn.commit()
|
||||
self.cursor.rowcount
|
||||
Reference in New Issue
Block a user