summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTed Trask <ttrask01@yahoo.com>2017-03-01 01:35:04 +0000
committerTed Trask <ttrask01@yahoo.com>2017-03-01 01:35:04 +0000
commitd2375db6c8893a65dfa3ca1e1df69c085c05f39a (patch)
treef855cd7ccac8a8103153928dfb8da89c5696856e
parent08bf2da91cca687f8f84d880d6e5cbdf180a9166 (diff)
downloadacf-core-d2375db6c8893a65dfa3ca1e1df69c085c05f39a.tar.bz2
acf-core-d2375db6c8893a65dfa3ca1e1df69c085c05f39a.tar.xz
Prevent writing out default permissions when editing role
-rw-r--r--app/acf-util/roles-model.lua17
1 files changed, 16 insertions, 1 deletions
diff --git a/app/acf-util/roles-model.lua b/app/acf-util/roles-model.lua
index 0e49b4e..d21a1d5 100644
--- a/app/acf-util/roles-model.lua
+++ b/app/acf-util/roles-model.lua
@@ -89,7 +89,22 @@ mymodule.setpermissions = function(self, permissions, action, newrole)
end
-- Try to set the value
if result==true then
- result, permissions.value.role.errtxt = roles.set_role_perm(self, permissions.value.role.value, nil, permissions.value.permissions.value)
+ -- Remove the default permissions
+ local reversepermissions = {}
+ for i,p in ipairs(permissions.value.permissions.value) do
+ reversepermissions[p] = i
+ end
+ for i,p in ipairs(permissions.value.permissions.option) do
+ if p.disabled then
+ reversepermissions[p.value] = nil
+ end
+ end
+ local permissionstable = {}
+ for p in pairs(reversepermissions) do
+ permissionstable[#permissionstable+1] = p
+ end
+
+ result, permissions.value.role.errtxt = roles.set_role_perm(self, permissions.value.role.value, nil, permissionstable)
if not result then
permissions.errtxt = "Failed to save role"
end