Fixed permission handling
This commit is contained in:
parent
9f56d01b3e
commit
570aa63cc6
|
@ -2,6 +2,8 @@
|
||||||
local acl = import("classes.acl")
|
local acl = import("classes.acl")
|
||||||
local command_acl = acl:extend("CommandACL")
|
local command_acl = acl:extend("CommandACL")
|
||||||
local table_utils = import("table-utils")
|
local table_utils = import("table-utils")
|
||||||
|
local discordia = import("discordia")
|
||||||
|
local enum_perms = discordia.enums.permission
|
||||||
--The following method extends the ACL class to work with rule-specific features,
|
--The following method extends the ACL class to work with rule-specific features,
|
||||||
--such as the role position
|
--such as the role position
|
||||||
function command_acl:check_group(roles)
|
function command_acl:check_group(roles)
|
||||||
|
@ -34,7 +36,7 @@ end
|
||||||
function command_acl:check_perm(perms)
|
function command_acl:check_perm(perms)
|
||||||
local output = true
|
local output = true
|
||||||
for k,v in pairs(self.perm_rules) do
|
for k,v in pairs(self.perm_rules) do
|
||||||
if not perms[v] then
|
if (bit.band(perms[1],enum_perms[v]) == 0) then
|
||||||
output = false
|
output = false
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -35,8 +35,8 @@ function command:__init(name,callback)
|
||||||
self.rules:set_group_rule(k,v)
|
self.rules:set_group_rule(k,v)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if callback.perm then
|
if callback.perms then
|
||||||
self.rules:set_perm_rules(callback.perm)
|
self.rules:set_perm_rules(callback.perms)
|
||||||
end
|
end
|
||||||
if callback.help then
|
if callback.help then
|
||||||
self:set_help(callback.help,callback.usage)
|
self:set_help(callback.help,callback.usage)
|
||||||
|
|
|
@ -26,7 +26,7 @@ local grantrole = command("grant-role",{
|
||||||
{name = "Options:",value = "-q - quiet (don't print the result)"}
|
{name = "Options:",value = "-q - quiet (don't print the result)"}
|
||||||
}
|
}
|
||||||
}},
|
}},
|
||||||
perms = {
|
permss = {
|
||||||
"administrator"
|
"administrator"
|
||||||
},
|
},
|
||||||
args = {
|
args = {
|
||||||
|
@ -50,7 +50,7 @@ local revokerole = command("revoke-role",{
|
||||||
{name = "Options:",value = "-q - quiet (don't print the result)"}
|
{name = "Options:",value = "-q - quiet (don't print the result)"}
|
||||||
}
|
}
|
||||||
}},
|
}},
|
||||||
perms = {
|
permss = {
|
||||||
"administrator"
|
"administrator"
|
||||||
},
|
},
|
||||||
args = {
|
args = {
|
||||||
|
|
Loading…
Reference in New Issue