iteration
This commit is contained in:
109
lib/auth.lua
Normal file
109
lib/auth.lua
Normal file
@ -0,0 +1,109 @@
|
||||
settings.define("auth.token", {
|
||||
description = "Authentication token",
|
||||
type = "number",
|
||||
default = -1
|
||||
})
|
||||
|
||||
settings.define("auth.server", {
|
||||
description = "Authentication server",
|
||||
type = "string",
|
||||
default = "auth.box"
|
||||
})
|
||||
|
||||
function get_token()
|
||||
return settings.get("auth.token")
|
||||
end
|
||||
|
||||
function check_user_group(username, group)
|
||||
local data = {
|
||||
["action"] = "check_group",
|
||||
["username"] = username,
|
||||
["group"] = group
|
||||
}
|
||||
|
||||
rednet.send(auth_server_id, data, "auth")
|
||||
|
||||
while true do
|
||||
id, msg = rednet.receive("auth")
|
||||
if id == auth_server_id then
|
||||
if msg == "invalid request" then
|
||||
io.write("Invalid request\n")
|
||||
return
|
||||
elseif msg == "user not found" then
|
||||
io.write("User not found\n")
|
||||
return
|
||||
elseif msg == "invalid token" then
|
||||
io.write("Invalid token\n")
|
||||
return
|
||||
elseif msg == "invalid group" then
|
||||
io.write("Invalid group\n")
|
||||
return
|
||||
elseif msg == "ok" then
|
||||
return true
|
||||
else
|
||||
return false
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function list_user_groups(username)
|
||||
local data = {
|
||||
["action"] = "list_groups",
|
||||
["username"] = username
|
||||
}
|
||||
|
||||
rednet.send(auth_server_id, data, "auth")
|
||||
|
||||
while true do
|
||||
id, msg = rednet.receive("auth")
|
||||
if id == auth_server_id then
|
||||
if msg == "invalid request" then
|
||||
io.write("Invalid request\n")
|
||||
return
|
||||
elseif msg == "user not found" then
|
||||
io.write("User not found\n")
|
||||
return
|
||||
elseif msg == "invalid token" then
|
||||
io.write("Invalid token\n")
|
||||
return
|
||||
else
|
||||
return msg
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function add_user_to_group(username, group)
|
||||
local data = {
|
||||
["action"] = "add_group",
|
||||
["username"] = username,
|
||||
["group"] = group,
|
||||
["token"] = get_token()
|
||||
}
|
||||
|
||||
rednet.send(auth_server_id, data, "auth")
|
||||
|
||||
while true do
|
||||
id, msg = rednet.receive("auth")
|
||||
if id == auth_server_id then
|
||||
if msg == "invalid request" then
|
||||
io.write("Invalid request\n")
|
||||
return
|
||||
elseif msg == "user not found" then
|
||||
io.write("User not found\n")
|
||||
return
|
||||
elseif msg == "invalid token" then
|
||||
io.write("Invalid token\n")
|
||||
return
|
||||
elseif msg == "invalid privileges" then
|
||||
io.write("Invalid privileges\n")
|
||||
return
|
||||
elseif msg == "ok" then
|
||||
return
|
||||
else
|
||||
return
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Reference in New Issue
Block a user