diff --git a/.gitignore b/.gitignore index cf67810..f0b988e 100644 --- a/.gitignore +++ b/.gitignore @@ -13,5 +13,5 @@ Taskfile.yml config.yaml # Garbage -com/_Access/GetMasterAccess.lua -com/_Zones/GetZoneInfo.lua +com/_* +com/test.lua \ No newline at end of file diff --git a/com/_Auth/DeleteUnit.lua b/com/_Auth/DeleteUnit.lua deleted file mode 100644 index adaa1ab..0000000 --- a/com/_Auth/DeleteUnit.lua +++ /dev/null @@ -1,119 +0,0 @@ --- com/DeleteUnit.lua - ----@diagnostic disable: redefined-local -local db = require("internal.database.sqlite").connect("db/user-database.db", {log = true}) -local log = require("internal.log") -local session = require("internal.session") -local crypt = require("internal.crypt.bcrypt") -local jwt = require("internal.crypt.jwt") -local sha256 = require("internal.crypt.sha256") - -local params = session.request.params.get() -local token = session.request.headers.get("authorization") - -local function close_db() - if db then - db:close() - db = nil - end -end - -local function error_response(message, code, data) - session.response.error = { - code = code or nil, - message = message, - data = data or nil - } - close_db() -end - -if not token or type(token) ~= "string" then - return error_response("Access denied") -end - -local prefix = "Bearer " -if token:sub(1, #prefix) ~= prefix then - return error_response("Invalid Authorization scheme") -end - -local access_token = token:sub(#prefix + 1) - -local err, data = jwt.decode(access_token, { secret = require("_config").token() }) - -if err or not data then - session.response.error = { - message = err - } - return -end - --- if data.session_uuid ~= session.id then --- return error_response("Access denied") --- end - --- if data.key ~= sha256.sum(session.request.address .. session.id .. session.request.headers.get("user-agent", "noagent")) then --- return error_response("Access denied") --- end - -if not params then - return error_response("no params provided") -end - -if not (params.username and params.email and params.password) then - return error_response("no username/email/password provided") -end - -local existing, err = db:query( - "SELECT password FROM users WHERE email = ? AND username = ? AND deleted = 0 LIMIT 1", - { - params.email, - params.username - } -) - -if err ~= nil then - log.error("Password fetch failed: " .. tostring(err)) - return error_response("Database query failed: " .. tostring(err)) -end - -if not existing or #existing == 0 then - return error_response("Unit not found") -end - -local hashed_password = existing[1].password - -local ok = crypt.compare(hashed_password, params.password) -if not ok then - log.warn("Wrong password attempt for: " .. params.username) - return error_response("Invalid password") -end - -local ctx, err = db:exec( - [[ - UPDATE users - SET deleted = 1, - deleted_at = CURRENT_TIMESTAMP - WHERE email = ? AND username = ? AND deleted = 0 - ]], - { params.email, params.username } -) - -if err ~= nil then - log.error("Soft delete failed: " .. tostring(err)) - return error_response("Soft delete failed: " .. tostring(err)) -end - -local res, err = ctx:wait() -if err ~= nil then - log.error("Soft delete confirmation failed: " .. tostring(err)) - return error_response("Soft delete confirmation failed: " .. tostring(err)) -end - -session.response.result = { - rows_affected = res, - message = "Unit soft-deleted successfully" -} - -log.info("user " .. params.username .. " soft-deleted successfully") - -close_db() diff --git a/com/_Auth/GetAccess.lua b/com/_Auth/GetAccess.lua deleted file mode 100644 index 14da4bf..0000000 --- a/com/_Auth/GetAccess.lua +++ /dev/null @@ -1,76 +0,0 @@ --- com/GetAccess - ----@diagnostic disable: redefined-local -local db = require("internal.database.sqlite").connect("db/user-database.db", {log = true}) -local log = require("internal.log") -local session = require("internal.session") -local crypt = require("internal.crypt.bcrypt") -local jwt = require("internal.crypt.jwt") -local sha256 = require("internal.crypt.sha256") - -local params = session.request.params.get() -local secret = require("_config").token() - -local function close_db() - if db then - db:close() - db = nil - end -end - -local function error_response(message, code, data) - session.response.error = { - code = code or nil, - message = message, - data = data or nil - } - close_db() -end - -if not params then - return error_response("No params provided") -end - -if not (params.username and params.email and params.password) then - return error_response("Missing username, email or password") -end - -local unit, err = db:query( - "SELECT id, username, email, password, created_at FROM users WHERE email = ? AND username = ? AND deleted = 0 LIMIT 1", - { - params.email, - params.username - } -) - -if err then - log.error("DB query error: " .. tostring(err)) - return error_response("Database query failed") -end - -if not unit or #unit == 0 then - return error_response("Unit not found") -end - -unit = unit[1] - -local ok = crypt.compare(unit.password, params.password) -if not ok then - log.warn("Login failed: wrong password for " .. params.username) - return error_response("Invalid password") -end - -local token = jwt.encode({ - secret = secret, - payload = { session_uuid = session.id, - admin_user = params.username, - key = sha256.sum(session.request.address .. session.id .. session.request.headers.get("user-agent", "noagent")) - }, - expires_in = 3600 -}) - -session.response.result = { - access_token = token -} - -close_db() diff --git a/com/_Auth/PutNewUnit.lua b/com/_Auth/PutNewUnit.lua deleted file mode 100644 index 3a140f4..0000000 --- a/com/_Auth/PutNewUnit.lua +++ /dev/null @@ -1,109 +0,0 @@ --- com/PutNewUnit.lua - ----@diagnostic disable: redefined-local -local db = require("internal.database.sqlite").connect("db/user-database.db", {log = true}) -local log = require("internal.log") -local session = require("internal.session") -local crypt = require("internal.crypt.bcrypt") -local jwt = require("internal.crypt.jwt") -local sha256 = require("internal.crypt.sha256") - -local params = session.request.params.get() -local token = session.request.headers.get("authorization") - -local function close_db() - if db then - db:close() - db = nil - end -end - -local function error_response(message, code, data) - session.response.error = { - code = code or nil, - message = message, - data = data or nil - } - close_db() -end - -if not token or type(token) ~= "string" then - return error_response("Access denied") -end - -local prefix = "Bearer " -if token:sub(1, #prefix) ~= prefix then - return error_response("Invalid Authorization scheme") -end - -local access_token = token:sub(#prefix + 1) - -local err, data = jwt.decode(access_token, { secret = require("_config").token() }) - -if err or not data then - session.response.error = { - message = err - } - return -end - -if data.session_uuid ~= session.id then - return error_response("Access denied") -end - -if data.key ~= sha256.sum(session.request.address .. session.id .. session.request.headers.get("user-agent", "noagent")) then - return error_response("Access denied") -end - -if not params then - return error_response("no params provided") -end - -if not (params.username and params.email and params.password) then - return error_response("no username/email/password provided") -end - -local hashPass = crypt.generate(params.password, crypt.DefaultCost) - -local existing, err = db:query("SELECT 1 FROM users WHERE deleted = 0 AND (email = ? OR username = ?) LIMIT 1", { - params.email, - params.username -}) - -if err ~= nil then - log.error("Email check failed: "..tostring(err)) - return error_response("Database check failed: "..tostring(err)) -end - -if existing and #existing > 0 then - return error_response("Unit already exists") -end - -local ctx, err = db:exec( - "INSERT INTO users (username, email, password, first_name, last_name, phone_number) VALUES (?, ?, ?, ?, ?, ?)", - { - params.username, - params.email, - hashPass, - params.first_name or "", - params.last_name or "", - params.phone_number or "" - } -) -if err ~= nil then - log.error("Insert failed: "..tostring(err)) - return error_response("Insert failed: "..tostring(err)) -end - -local res, err = ctx:wait() -if err ~= nil then - log.error("Insert confirmation failed: "..tostring(err)) - return error_response("Insert confirmation failed: "..tostring(err)) -end - -session.response.result = { - rows_affected = res, - message = "Unit created successfully" -} - -close_db() \ No newline at end of file diff --git a/com/_DB/Put.lua b/com/_DB/Put.lua deleted file mode 100644 index 62146f5..0000000 --- a/com/_DB/Put.lua +++ /dev/null @@ -1,66 +0,0 @@ ----@diagnostic disable: redefined-local -local db = require("internal.database-sqlite").connect("db/test.db", {log = true}) -local log = require("internal.log") -local session = require("internal.session") - -if not (session.request.params.name and session.request.params.email) then - session.response.error = { - code = -32602, - message = "Name and email are required" - } - return -end - -local existing, err = db:query("SELECT 1 FROM users WHERE email = ? LIMIT 1", { - session.request.params.email -}) -if err ~= nil then - session.response.error = { - code = -32603, - message = "Database check failed: "..tostring(err) - } - log.error("Email check failed: "..tostring(err)) - return -end - -if existing and #existing > 0 then - session.response.error = { - code = -32604, - message = "Email already exists" - } - return -end - -local ctx, err = db:exec( - "INSERT INTO users (name, email) VALUES (?, ?)", - { - session.request.params.name, - session.request.params.email - } -) -if err ~= nil then - session.response.error = { - code = -32605, - message = "Insert failed: "..tostring(err) - } - log.error("Insert failed: "..tostring(err)) - return -end - -local res, err = ctx:wait() -if err ~= nil then - session.response.error = { - code = -32606, - message = "Insert confirmation failed: "..tostring(err) - } - log.error("Insert confirmation failed: "..tostring(err)) - return -end - -session.response.result = { - success = true, - rows_affected = res, - message = "User created successfully" -} - -db:close() \ No newline at end of file diff --git a/com/_Net/GetExpl.lua b/com/_Net/GetExpl.lua deleted file mode 100644 index a762d64..0000000 --- a/com/_Net/GetExpl.lua +++ /dev/null @@ -1,29 +0,0 @@ -local session = require("internal.session") -local net = require("internal.net") - -local reqAddr -local logReq = true - -if session.request.params and session.request.params.url then - reqAddr = session.request.params.url -else - session.response.error = { - code = -32602, - message = "no url provided" - } - return -end - -local resp = net.http.get_request(logReq, reqAddr) -if resp then - session.response.result.answer = { - status = resp.status, - body = resp.body - } - return -end - -session.response.error = { - data = "error while requesting" -} - diff --git a/com/_Net/PostExpl.lua b/com/_Net/PostExpl.lua deleted file mode 100644 index a45fc45..0000000 --- a/com/_Net/PostExpl.lua +++ /dev/null @@ -1,35 +0,0 @@ -local session = require("internal.session") -local net = require("internal.net") -local log = require("internal.log") - -local reqAddr -local logReq = true -local payload - -log.debug(session.request.params) - -if not (session.request.params and session.request.params.url) then - session.response.error = { - code = -32602, - message = "no url or payload provided" - } - return -end - - - -reqAddr = session.request.params.url -payload = session.request.params.payload - -local resp = net.http.post_request(logReq, reqAddr, "application/json", payload) -if resp then - session.response.result.answer = { - status = resp.status, - body = resp.body - } - return -end - -session.response.error = { - data = "error while requesting" -} \ No newline at end of file diff --git a/com/test.lua b/com/test.lua deleted file mode 100644 index 68657ee..0000000 --- a/com/test.lua +++ /dev/null @@ -1,44 +0,0 @@ -local sha256 = require("internal.crypt.sha256") -local log = require("internal.log") -local session = require("internal.session") - --- local secret = require("_config").token() - --- local token = jwt.encode({ --- secret = secret, --- payload = { session_uuid = session.id }, --- expires_in = 3600 --- }) - --- local err, data = jwt.decode(token, { secret = secret }) - --- if not err then --- session.response.result = { --- token = token --- } --- return --- end - --- session.response.error = { --- message = "not sigma" --- } --- local array = session.request.params.get("array", "oops") --- function s() --- session.throw_error("dqdqwdqwdqiwhodiwqohdq", 10) --- end --- s() - --- session.response.__script_data.result = { --- data = { --- sewf = 1 --- }, --- 2 --- } -session.response.set_error() ---session.response.send_error({1}) --- session.response.set() --- session.response.__script_data.result = { --- status = "ok" --- } -session.response.set(1) -log.event("popi") \ No newline at end of file diff --git a/db/backup/root.db b/db/backup/root.db deleted file mode 100644 index 8fd5acb..0000000 Binary files a/db/backup/root.db and /dev/null differ diff --git a/db/backup/zones/zone0.db b/db/backup/zones/zone0.db deleted file mode 100644 index db16d54..0000000 Binary files a/db/backup/zones/zone0.db and /dev/null differ diff --git a/db/root.db b/db/root.db deleted file mode 100644 index 847d194..0000000 Binary files a/db/root.db and /dev/null differ diff --git a/db/user-database.db b/db/user-database.db deleted file mode 100644 index ae8db0b..0000000 Binary files a/db/user-database.db and /dev/null differ diff --git a/db/zones-registry.db b/db/zones-registry.db deleted file mode 100644 index e69de29..0000000 diff --git a/db/zones/zone0.db b/db/zones/zone0.db deleted file mode 100644 index db16d54..0000000 Binary files a/db/zones/zone0.db and /dev/null differ