iteration

This commit is contained in:
2023-10-08 04:44:58 -04:00
parent 282f209217
commit 9ed504bb5f
3 changed files with 192 additions and 39 deletions

View File

@@ -158,4 +158,63 @@ while true do
rednet.send(client_id, "invalid token", "auth")
end
end
if request.action == "check_group" then
if request.username == nil or request.group == nil then
rednet.send(client_id, "invalid request", "auth")
end
if data.users[request.username].groups == nil then
rednet.send(client_id, false, "auth")
else
rednet.send(client_id, data.users[request.username].groups[request.group] ~= nil, "auth")
end
end
if request.action == "list_groups" then
if request.username == nil then
rednet.send(client_id, "invalid request", "auth")
end
if data.users[request.username].groups == nil then
rednet.send(client_id, {}, "auth")
else
rednet.send(client_id, data.users[request.username].groups, "auth")
end
end
-- Only if in group admin
if request.action == "add_group" then
if request.username == nil or request.group == nil or request.token == nil then
rednet.send(client_id, "invalid request", "auth")
else
local found = false
local acting_user = nil
for user, userdata in pairs(data.users) do
if userdata.token == request.token then
acting_user = user
found = true
end
end
if not found then
rednet.send(client_id, "invalid token", "auth")
elseif data.users[acting_user].groups["admin"] == nil then
rednet.send(client_id, "invalid privileges", "auth")
else
if data.users[request.username].groups == nil then
data.users[request.username].groups = {}
end
data.users[request.username].groups[request.group] = true
save_data()
rednet.send(client_id, "ok", "auth")
log(request.username .. " added to group " .. request.group, "auth")
else
rednet.send(client_id, "invalid token", "auth")
end
end
end
end