function shib_auth_save_rule in Shibboleth Authentication 7.4
Same name and namespace in other branches
- 6.4 shib_auth_roles_forms.inc \shib_auth_save_rule()
Saves a new rule into database.
Parameters
array $form_state: The state of the form, which we have just received, including all of the variables.
int $update: Decides if it is a new rule (NULL), or we're just modifying one rule id.
2 calls to shib_auth_save_rule()
- shib_auth_edit_rule_submit in ./
shib_auth_roles_forms.inc - Submit rule edit form.
- shib_auth_new_rule_submit in ./
shib_auth_roles_forms.inc - Submit the new rule from.
File
- ./
shib_auth_roles_forms.inc, line 298 - Roles manager forms.
Code
function shib_auth_save_rule(array $form_state, $update) {
$values = $form_state['values'];
$new_id = $values['shib_auth_new_id'] == '0' ? NULL : (int) $values['shib_auth_new_id'];
// Collect ther roles into an array.
$roles = array();
if (is_array($values['shib_auth_roles'])) {
foreach ($values['shib_auth_roles'] as $role_id) {
if (!empty($role_id)) {
$roles[] = $role_id;
}
}
}
// Save the new element into an array.
$new_element = array(
'id' => $new_id,
'field' => urlencode($values['shib_auth_new_attrib']),
'regexpression' => urlencode($values['shib_auth_new_regexp']),
'role' => serialize($roles),
'sticky' => urlencode($values['shib_auth_new_sticky']),
);
// Write it in a record.
$ret = drupal_write_record('shib_auth', $new_element, $update);
// If it wasn't an error.
if (empty($update)) {
if ($ret === SAVED_NEW) {
drupal_set_message(t('New rule has been stored.'));
}
else {
drupal_set_message(t('Unexpected error has been detected.'));
}
}
else {
if ($ret === SAVED_UPDATED) {
drupal_set_message(t('The rule has been modified.'));
}
else {
drupal_set_message(t('Unexpected error has been detected.'));
}
}
drupal_goto('admin/config/people/shib_auth/rules');
}