function og_register_og_membership_state_validate in Organic groups 7.2
Validate handler; Set the state according to the "subscribe" permissions of the group.
1 string reference to 'og_register_og_membership_state_validate'
- og_register_field_attach_form in og_register/
og_register.module - Implements hook_field_attach_form().
File
- og_register/
og_register.module, line 113 - Allow subscribing to groups during the user registration.
Code
function og_register_og_membership_state_validate($element, &$form_state) {
$langcode = $element['#language'];
$field_name = $element[$langcode]['#field_name'];
if (empty($form_state['values'][$field_name][$langcode])) {
return;
}
$field = field_info_field($field_name);
$group_type = $field['settings']['target_type'];
$values = $form_state['values'][$field_name][$langcode];
foreach ($values as &$value) {
$og_roles = og_roles($group_type, NULL, $value['target_id']);
$rid = array_search(OG_ANONYMOUS_ROLE, $og_roles);
$og_permissions = og_role_permissions(array(
$rid => $rid,
));
// State should be pending if "subscribe without approval" is not enabled.
$value['state'] = !empty($og_permissions[$rid]['subscribe without approval']) ? OG_STATE_ACTIVE : OG_STATE_PENDING;
}
form_set_value($element, array(
$langcode => $values,
), $form_state);
}