function autologout_admin_settings in Automated Logout 7.2
Same name and namespace in other branches
- 6.2 autologout.admin.inc \autologout_admin_settings()
Settings form for menu callback
1 string reference to 'autologout_admin_settings'
- autologout_menu in ./
autologout.module - Implements hook_menu().
File
- ./
autologout.admin.inc, line 17 - contains all admin pages, settings, and validate.
Code
function autologout_admin_settings() {
_autologout_debug("autologout_settings()");
if (!user_access('administer autologout')) {
drupal_access_denied();
return;
}
if (module_exists('jstimer')) {
if (!module_exists('jst_timer')) {
drupal_set_message(t('The "Widget: timer" module must also be enabled for the dynamic countdown to work in the automated logout block.'), 'error');
}
if (variable_get('jstimer_js_load_option', 0) != 1) {
drupal_set_message(t('The Javascript timer module\'s "Javascript load options" setting should be set to "Every page" for the dynamic countdown to work in the automated logout block.'), 'error');
}
}
$form = array();
$form['autologout'] = array(
'#type' => 'fieldset',
'#title' => t('Automated Logout settings'),
'#tree' => TRUE,
);
$form['autologout']['markup1'] = array(
'#type' => 'markup',
'#value' => t('Set-up your site policy by role:-'),
);
$form['autologout']['enabled'] = array(
'#type' => 'checkbox',
'#title' => t('Enable module'),
'#default_value' => _autologout_local_settings('enabled'),
'#description' => t('Uncheck this and save settings to disable Automated Logout'),
);
$form['autologout']['timeout'] = array(
'#type' => 'textfield',
'#title' => t('Timeout value in seconds'),
'#default_value' => _autologout_local_settings('timeout'),
'#size' => 10,
'#maxlength' => 12,
'#description' => t('The length of inactivity time, in seconds, before Automated Logout. Must be 60 seconds or greater.'),
);
$form['autologout']['use_watchdog'] = array(
'#type' => 'checkbox',
'#title' => t('Enable watchdog Automated Logout logging'),
'#default_value' => _autologout_local_settings('use_watchdog'),
'#description' => t('Enable logging of automatically logged out users'),
);
$form['autologout']['markup2'] = array(
'#type' => 'markup',
'#value' => theme('autologout_generic', 0),
);
foreach (user_roles(TRUE) as $role) {
$form['autologout'][$role] = array(
'#type' => 'select',
'#title' => $role,
'#options' => array(
'0' => t('Enforce'),
'1' => t('Exclude'),
'2' => t('By user'),
),
'#default_value' => _autologout_local_settings($role),
);
}
$markup3_items = array(
t('Enforce : all users in this role will be auto-logged out'),
t('Exclude : all users in this role are excluded from auto-logout functionality'),
t('By user : all users in this role can select to switch off this functionality'),
);
$markup3 = theme('item_list', $markup3_items, t('Policy description')) . t('Please note: If a user is found to be in a role that allows disabling this feature, this overrides any enforcement');
$form['autologout']['markup3'] = array(
'#type' => 'markup',
'#value' => $markup3,
);
$form['autologout']['logout_message'] = array(
'#type' => 'textfield',
'#title' => t('Display a message at logout'),
'#default_value' => _autologout_local_settings('logout_message'),
'#size' => 40,
'#description' => t('If you want to display a message to the users when they are logged out.'),
);
$form['autologout']['redirect_url'] = array(
'#type' => 'textfield',
'#title' => t('Redirect URL at logout'),
'#default_value' => _autologout_local_settings('redirect_url'),
'#size' => 40,
'#description' => t('If you want to redirect users to another page when they are logged out. (default: autologout/logout)'),
);
$form['autologout']['refresh_delta'] = array(
'#type' => 'textfield',
'#title' => t('Browser refresh delay'),
'#default_value' => _autologout_local_settings('refresh_delta'),
'#size' => 10,
'#maxlength' => 12,
'#description' => t("The length of time, in seconds, after a timeout that a browser refresh is forced. Setting this to -1 (negative number) disables the browser refresh facility entirely."),
);
$form['block_settings'] = array(
'#type' => 'fieldset',
'#title' => t('Autologout warning block'),
);
$form['block_settings']['block_title'] = array(
'#type' => 'textfield',
'#title' => t('Block title'),
'#default_value' => _autologout_local_settings('block_title'),
'#size' => 40,
'#description' => t('The title of the logout warning block.'),
);
if (module_exists('jstimer') && module_exists('jst_timer')) {
$form['block_settings']['autologout_jstimer_format'] = array(
'#title' => t('Javascript timer output format string'),
'#type' => 'textarea',
'#rows' => 2,
'#default_value' => variable_get('autologout_jstimer_format', '%hours%:%mins%:%secs%'),
'#description' => t('Change the display of the dynamic timer. Available replacement values are: %day%, %month%, %year%, %dow%, %moy%, %years%, %ydays%, %days%, %hours%, %mins%, and %secs%.'),
);
}
$form['autologout_one_session'] = array(
'#type' => 'fieldset',
'#title' => t('One Session settings'),
'#tree' => TRUE,
'#description' => t('One session will provide enforcement for "one session" per user. If a user logs in when another session for that user is active the other session will be deactivated. The user will be notified and the event logged.'),
);
$values = variable_get('autologout_one_session', 0);
foreach (user_roles(TRUE) as $role) {
$this_value = $values[$role];
$form['autologout_one_session'][$role] = array(
'#type' => 'select',
'#title' => $role,
'#options' => array(
'1' => t('Enforce'),
'0' => t('Exclude'),
),
'#default_value' => isset($values[$role]) ? $values[$role] : 0,
);
}
$markup4_items = array(
t('Enforce : all users in this role will be only allowed one session.'),
t('Exclude : all users in this role are excluded from one session functionality.'),
);
$markup4 = theme('item_list', $markup4_items, t('Policy description')) . t('Please note: If a user is found to be in a role that allows disabling this feature, this overrides any enforcement');
$form['autologout_one_session']['markup4'] = array(
'#type' => 'markup',
'#value' => $markup4,
);
return system_settings_form($form);
}