2023-12-11 20:56:09 +00:00
|
|
|
require 'sqlite3'
|
|
|
|
|
2023-12-12 22:52:36 +00:00
|
|
|
|
|
|
|
def create_new_user(username, password)
|
|
|
|
db = SQLite3::Database.new('./database/auth.db')
|
|
|
|
|
|
|
|
db.execute('
|
|
|
|
INSERT INTO users (username, hashed_password)
|
|
|
|
VALUES (?, ?)
|
|
|
|
', [username, create_password_for_user(password)])
|
|
|
|
end
|
|
|
|
|
2023-12-13 09:06:34 +00:00
|
|
|
def check_if_user_exists(username)
|
|
|
|
db = SQLite3::Database.new('./database/auth.db')
|
|
|
|
|
|
|
|
result = db.get_first_value('SELECT COUNT(*) FROM users WHERE username = ?', username)
|
2023-12-12 22:52:36 +00:00
|
|
|
|
2023-12-13 09:06:34 +00:00
|
|
|
if result > 0
|
|
|
|
return true
|
|
|
|
else
|
|
|
|
return false
|
|
|
|
end
|
|
|
|
end
|
2023-12-12 22:52:36 +00:00
|
|
|
|
2023-12-11 20:56:09 +00:00
|
|
|
def get_user_id(username)
|
|
|
|
db = SQLite3::Database.new('./database/auth.db')
|
|
|
|
|
|
|
|
user_id = db.get_first_value('
|
|
|
|
SELECT id
|
|
|
|
FROM users U
|
|
|
|
WHERE U.username = ?
|
|
|
|
|
|
|
|
', [username])
|
|
|
|
|
|
|
|
return user_id
|
|
|
|
end
|
|
|
|
|
|
|
|
def get_user_hashed_password(user_id)
|
|
|
|
db = SQLite3::Database.new('./database/auth.db')
|
|
|
|
|
|
|
|
password_hash = db.get_first_value('
|
|
|
|
SELECT hashed_password
|
|
|
|
FROM users U
|
|
|
|
WHERE U.id = ?
|
|
|
|
|
|
|
|
', [user_id])
|
|
|
|
|
|
|
|
return password_hash
|
|
|
|
end
|
|
|
|
|
2023-12-12 22:52:36 +00:00
|
|
|
def update_user_password(user_id, password)
|
2023-12-11 20:56:09 +00:00
|
|
|
db = SQLite3::Database.new('./database/auth.db')
|
|
|
|
|
2023-12-12 22:52:36 +00:00
|
|
|
db.execute('
|
|
|
|
UPDATE users
|
|
|
|
SET hashed_password = ?, salt = ?
|
|
|
|
WHERE id = ?
|
|
|
|
', [hash_password, salt, user_id])
|
2023-12-11 20:56:09 +00:00
|
|
|
end
|