roysathome.net/auth/database_queries.rb

71 lines
1.6 KiB
Ruby
Raw Normal View History

2023-12-11 20:56:09 +00:00
require 'sqlite3'
2023-12-13 16:02:09 +00:00
def create_new_user(username, password, is_admin)
2023-12-12 22:52:36 +00:00
db = SQLite3::Database.new('./database/auth.db')
db.execute('
2023-12-13 16:02:09 +00:00
INSERT INTO users (username, hashed_password, is_admin)
VALUES (?, ?, ?)
', [username.downcase, create_password_for_user(password), is_admin])
2023-12-12 22:52:36 +00:00
end
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.downcase)
2023-12-12 22:52:36 +00:00
if result > 0
return true
else
return false
end
end
2023-12-12 22:52:36 +00:00
2023-12-13 16:02:09 +00:00
def check_if_user_is_admin(user_id)
db = SQLite3::Database.new('./database/auth.db')
result = db.get_first_value('SELECT is_admin FROM users WHERE id = ?', user_id)
if result == 1
return true
else
return false
end
end
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.downcase])
2023-12-11 20:56:09 +00:00
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