diff options
author | Ted Trask <ttrask01@yahoo.com> | 2017-03-01 01:35:04 +0000 |
---|---|---|
committer | Ted Trask <ttrask01@yahoo.com> | 2017-03-01 01:35:04 +0000 |
commit | d2375db6c8893a65dfa3ca1e1df69c085c05f39a (patch) | |
tree | f855cd7ccac8a8103153928dfb8da89c5696856e | |
parent | 08bf2da91cca687f8f84d880d6e5cbdf180a9166 (diff) | |
download | acf-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.lua | 17 |
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 |