Fixed permission handling

This commit is contained in:
Yessiest 2022-05-15 18:18:15 +04:00
parent 9f56d01b3e
commit 570aa63cc6
3 changed files with 7 additions and 5 deletions

View File

@ -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

View File

@ -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)

View File

@ -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 = {