function password_policy_admin_form_submit in Password Policy 6
Same name and namespace in other branches
- 7 password_policy.admin.inc \password_policy_admin_form_submit()
Form submission hook for new or edited password policies.
File
- ./
password_policy.admin.inc, line 316 - Admin page callback file for the password_policy module.
Code
function password_policy_admin_form_submit($form, &$form_state) {
$op = $form_state['values']['op'];
if ($op == t('Delete')) {
drupal_goto('admin/settings/password_policy/delete/' . $form_state['values']['pid']);
}
$policy = array();
foreach ($form_state['values'] as $key => $value) {
// If we have no form value, then we have no constraint to set.
if (!is_array($value)) {
//dodge issues with roles array
$value = trim($value);
if ($value != "" && preg_match("/^constraint_/", $key)) {
$policy[substr($key, 11)] = $value;
}
}
}
// If we have a pid, update, else save.
if (isset($form_state['values']['pid'])) {
db_query("UPDATE {password_policy} SET name = '%s', description = '%s', policy = '%s', expiration = %d, warning = '%s' WHERE pid = %d", $form_state['values']['name'], $form_state['values']['description'], serialize($policy), trim($form_state['values']['expiration']), str_replace(' ', '', $form_state['values']['warning']), $form_state['values']['pid']);
drupal_set_message(t('Policy %name has been updated.', array(
'%name' => $form_state['values']['name'],
)));
watchdog('password_policy', 'Policy %name updated.', array(
'%name' => $form_state['values']['name'],
), WATCHDOG_NOTICE, l(t('edit'), 'admin/settings/password_policy/' . $form_state['values']['pid'] . '/edit'));
$pid = $form_state['values']['pid'];
db_query("DELETE FROM {password_policy_role} WHERE pid = %d", $pid);
}
else {
db_query("INSERT INTO {password_policy} (name, description, enabled, policy, expiration, warning) VALUES ('%s', '%s', %d, '%s', %d, '%s')", $form_state['values']['name'], $form_state['values']['description'], 0, serialize($policy), trim($form_state['values']['expiration']), str_replace(' ', '', $form_state['values']['warning']));
$pid = db_last_insert_id('password_policy', 'pid');
drupal_set_message(t('Policy %name has been created.', array(
'%name' => $form_state['values']['name'],
)));
watchdog('password_policy', 'New policy %name created.', array(
'%name' => $form_state['values']['name'],
), WATCHDOG_NOTICE, l(t('edit'), 'admin/settings/password_policy/' . $pid . '/edit'));
}
foreach (array_filter($form_state['values']['roles']) as $rid => $enabled) {
db_query("INSERT INTO {password_policy_role} (pid, rid) VALUES (%d, %d)", $pid, $rid);
}
drupal_goto('admin/settings/password_policy/list');
}