function opigno_og_access_node_set_subscribe_permissions in Opigno 7
1 call to opigno_og_access_node_set_subscribe_permissions()
- opigno_og_access_node_set_og_permissions in modules/
opigno_og_access/ opigno_og_access.module
File
- modules/
opigno_og_access/ opigno_og_access.module, line 205 - Enable access control for private and public groups and group content.
Code
function opigno_og_access_node_set_subscribe_permissions($entity) {
$roles = og_roles("node", $entity->type, $entity->nid, FALSE, TRUE);
//$role_names=array($roles);
$role_permissions = og_role_permissions($roles);
$og_permissions = og_get_permissions();
foreach ($role_permissions as $rid => $permission) {
$tosave = array();
foreach ($og_permissions as $index => $value) {
if (isset($role_permissions[$rid][$index]) && $role_permissions[$rid][$index] == TRUE) {
$tosave[$index] = $index;
}
else {
$tosave[$index] = 0;
}
}
if ($entity->requires_validation[LANGUAGE_NONE][0]['value'] != 1) {
$tosave['subscribe without approval'] = 'subscribe without approval';
}
else {
$tosave['subscribe without approval'] = 0;
}
if ($entity->{OG_ACCESS_FIELD}[LANGUAGE_NONE][0]['value'] == 2) {
$tosave['subscribe'] = 0;
$tosave['subscribe without approval'] = 0;
}
else {
$tosave['subscribe'] = 'subscribe';
}
og_role_change_permissions($rid, $tosave);
}
}