function secure_permissions_build_permissions in Secure Permissions 7
Same name and namespace in other branches
- 6 secure_permissions.module \secure_permissions_build_permissions()
- 7.2 secure_permissions.module \secure_permissions_build_permissions()
Build function to create the permissions arrays.
1 call to secure_permissions_build_permissions()
- secure_permissions_rebuild in ./
secure_permissions.module - Rebuild permissions, based on presets from the API.
File
- ./
secure_permissions.module, line 230 - Secure Permissions module file.
Code
function secure_permissions_build_permissions() {
// Get the active roles on the site.
$roles = secure_permissions_get_existing_roles();
$admin_rid = variable_get('user_admin_role', 0);
// Do not touch the administrative role.
if (!empty($admin_rid) && isset($roles[$admin_rid])) {
unset($roles[$admin_rid]);
}
// List all permissions.
$permissions = array_keys(module_invoke_all('permission'));
// Now set permissions per role, using our hook.
$permissions_rebuilt = FALSE;
foreach ($roles as $rid => $role) {
$perms = array();
$new_permissions = module_invoke_all('secure_permissions', $role);
foreach ($permissions as $perm) {
$perms[$perm] = FALSE;
if (in_array($perm, $new_permissions)) {
$perms[$perm] = TRUE;
$permissions_rebuilt = TRUE;
}
}
user_role_change_permissions($rid, $perms);
}
return $permissions_rebuilt;
}