51 lines
1.6 KiB
Lua
51 lines
1.6 KiB
Lua
--utils.lua- является пользовательской библиотекой вспомогательных функций Lua для работы с СУБД futriix.
|
||
|
||
-- Выполняет роль:
|
||
-- Загрузчика в других Lua скриптах проекта
|
||
-- Загрузчика при инициализации Lua интерпретатора
|
||
-- Основного инструмента в хранимых процедурах проекта
|
||
|
||
function json_encode(tbl)
|
||
return require("serde").encode(tbl)
|
||
end
|
||
|
||
function json_decode(str)
|
||
return require("serde").decode(str)
|
||
end
|
||
|
||
function table_length(tbl)
|
||
local count = 0
|
||
for _ in pairs(tbl) do
|
||
count = count + 1
|
||
end
|
||
return count
|
||
end
|
||
|
||
-- Функция для MD5 хеширования
|
||
function md5_hash(text)
|
||
return md5(text)
|
||
end
|
||
|
||
-- Функция для создания пользователя с хешированным паролем
|
||
function create_user_with_password(space, username, password, user_data)
|
||
user_data = user_data or {}
|
||
user_data.password = md5_hash(password)
|
||
return insert(space, username, json_encode(user_data))
|
||
end
|
||
|
||
-- Функция для проверки пароля пользователя
|
||
function verify_user_password(space, username, password)
|
||
local user_json = get(space, username)
|
||
if user_json == "null" then
|
||
return false, "User not found"
|
||
end
|
||
|
||
local user_data = json_decode(user_json)
|
||
if user_data.password == md5_hash(password) then
|
||
return true, "Password correct"
|
||
else
|
||
return false, "Password incorrect"
|
||
end
|
||
end
|
||
|