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