function oa_access_set_group_permissions in Open Atrium Core 7.2
Changes the permissions for a set of groups.
Parameters
array $group_permissions: An associatiive array keyed by Group or Team nid containing associative arrays keyed by module containing a list of permissions, for example:
array(
'27' => array(
'mymodule' => array(
'a permission',
),
),
);
Which signifies that the group with nid 27 has 'a permission' from a module called 'mymodule'.
See also
oa_access_get_group_permissions()
7 calls to oa_access_set_group_permissions()
- OpenAtriumAccessTestCase::testCleanupPermissions in modules/
oa_access/ tests/ oa_access.test - OpenAtriumAccessTestCase::testCombinedGroupPermissions in modules/
oa_access/ tests/ oa_access.test - OpenAtriumAccessTestCase::testGetSetGroupPermissions in modules/
oa_access/ tests/ oa_access.test - OpenAtriumAccessTestCase::testGroupAccess in modules/
oa_access/ tests/ oa_access.test - OpenAtriumAccessTestCase::testTeamAccess in modules/
oa_access/ tests/ oa_access.test
File
- modules/
oa_access/ oa_access.module, line 485 - Code for the Open Atrium Access module.
Code
function oa_access_set_group_permissions($group_permissions) {
$cache =& drupal_static('oa_access_get_group_permissions', array());
// Delete current permissions for the given groups.
db_delete('oa_access')
->condition('nid', array_keys($group_permissions), 'IN')
->execute();
// Then build them back up!
foreach ($group_permissions as $nid => $modules) {
foreach ($modules as $module => $permissions) {
foreach ($permissions as $name) {
db_insert('oa_access')
->fields(array(
'nid' => $nid,
'permission' => $name,
'module' => $module,
))
->execute();
}
// Replace these entries in the cache, so that we don't have to pull them
// from the database at all!
$cache[$nid] = $modules;
}
}
}