Made permissions inheritance work properly and cleanly
This commit is contained in:
parent
2bf50a379a
commit
c17dba3eb0
@ -513,43 +513,22 @@ permissions = {}
|
|||||||
|
|
||||||
if server_config.permissions ~= nil then
|
if server_config.permissions ~= nil then
|
||||||
print "Permissions:"
|
print "Permissions:"
|
||||||
-- For some reason, this gives them in reverse order, so extends doesn't work properly atm
|
for group, perms in pairs(server_config.permissions) do
|
||||||
-- GOGO HORRIBLE WORKAROUND
|
|
||||||
local temp_table_of_horror = {}
|
|
||||||
local temp_int_of_horror = 1
|
|
||||||
for k,v in pairs(server_config.permissions) do
|
|
||||||
temp_table_of_horror[temp_int_of_horror] = {k,v}
|
|
||||||
temp_int_of_horror = temp_int_of_horror + 1
|
|
||||||
end
|
|
||||||
local size_of_horror = table.getn(temp_table_of_horror)
|
|
||||||
for temp_int_of_horror = 1, size_of_horror/2, 1 do
|
|
||||||
local temp_thing_of_horror = temp_table_of_horror[temp_int_of_horror]
|
|
||||||
temp_table_of_horror[temp_int_of_horror] = temp_table_of_horror[size_of_horror - (temp_int_of_horror - 1)]
|
|
||||||
temp_table_of_horror[size_of_horror - (temp_int_of_horror - 1)] = temp_thing_of_horror
|
|
||||||
end
|
|
||||||
-- OHGODWHATHAVEIDONE
|
|
||||||
for horror_one, horror_two in pairs(temp_table_of_horror) do
|
|
||||||
local group = horror_two[1]
|
|
||||||
local perms = horror_two[2]
|
|
||||||
print(" Group: "..group)
|
print(" Group: "..group)
|
||||||
permissions[group] = {}
|
permissions[group] = {}
|
||||||
|
permissions[group]["perms"] = {}
|
||||||
if perms.password ~= nil then
|
if perms.password ~= nil then
|
||||||
permissions[group]["password"] = perms.password
|
permissions[group]["password"] = perms.password
|
||||||
else
|
else
|
||||||
permissions[group]["password"] = ""
|
permissions[group]["password"] = ""
|
||||||
end
|
end
|
||||||
print(" Password: "..permissions[group]["password"])
|
|
||||||
if perms.extends ~= nil then
|
if perms.extends ~= nil then
|
||||||
if permissions[perms.extends] ~= nil then
|
permissions[group]["extends"] = perms.extends
|
||||||
print(" Extends: "..perms.extends)
|
|
||||||
permissions[group]["perms"] = copy_table(permissions[perms.extends])
|
|
||||||
else
|
|
||||||
print(" Extends: "..perms.extends.." (doesn't exist)")
|
|
||||||
permissions[group]["perms"] = {}
|
|
||||||
end
|
|
||||||
else
|
else
|
||||||
permissions[group]["perms"] = {}
|
permissions[group]["extends"] = ""
|
||||||
end
|
end
|
||||||
|
print(" Password: "..permissions[group]["password"])
|
||||||
|
print(" Extends: "..permissions[group]["extends"])
|
||||||
if perms.permissions ~= nil then
|
if perms.permissions ~= nil then
|
||||||
print(" Permissions:")
|
print(" Permissions:")
|
||||||
for k, v in pairs(perms.permissions) do
|
for k, v in pairs(perms.permissions) do
|
||||||
@ -558,6 +537,19 @@ if server_config.permissions ~= nil then
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
-- Do inheritance
|
||||||
|
-- We do it this way to avoid costly lookups later, and possible infinite loops from looping inheritance
|
||||||
|
for group, perms in pairs(permissions) do
|
||||||
|
if perms["extends"] ~= "" then
|
||||||
|
if permissions[perms["extends"]] ~= nil then
|
||||||
|
for k,v in pairs(permissions[perms["extends"]]) do
|
||||||
|
perms["perms"][k] = v
|
||||||
|
end
|
||||||
|
else
|
||||||
|
print("Error: Group \""..group.."\" extends nonexistent group \""..perms["extends"].."\"")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
-- load map
|
-- load map
|
||||||
|
@ -10,14 +10,14 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"rakiru" : {
|
"rakiru" : {
|
||||||
"password" : "change me (don't use spaces)",
|
"password" : "123456",
|
||||||
"extends" : "default",
|
"extends" : "default",
|
||||||
"permissions" : [
|
"permissions" : [
|
||||||
"god"
|
"god"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"moderator" : {
|
"moderator" : {
|
||||||
"password" : "change me (don't use spaces)",
|
"password" : "iceball",
|
||||||
"extends" : "default",
|
"extends" : "default",
|
||||||
"permissions" : [
|
"permissions" : [
|
||||||
"god",
|
"god",
|
||||||
@ -28,7 +28,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"admin" : {
|
"admin" : {
|
||||||
"password" : "change me (don't use spaces)",
|
"password" : "Password1",
|
||||||
"extends" : "moderator",
|
"extends" : "moderator",
|
||||||
"permissions" : [
|
"permissions" : [
|
||||||
"ban"
|
"ban"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user