$tab_fields) { foreach ($tab_fields as $field_name => $field_array) { /* Check every field with a numeric default value and reset it to default if the inputted value is not numeric */ if (isset($field_array['default']) && is_numeric($field_array['default']) && !is_numeric(get_nfilter_request_var($field_name))) { set_request_var($field_name, $field_array['default']); } if ($field_array['method'] == 'checkbox') { if (isset_request_var($field_name)) { db_execute_prepared("REPLACE INTO settings_user (user_id,name,value) VALUES (?, ?, 'on')", array($_SESSION['sess_user_id'], $field_name)); } else { db_execute_prepared("REPLACE INTO settings_user (user_id,name,value) VALUES (?, ?, '')", array($_SESSION['sess_user_id'], $field_name)); } } elseif ($field_array['method'] == 'checkbox_group') { foreach ($field_array['items'] as $sub_field_name => $sub_field_array) { if (isset_request_var($sub_field_name)) { db_execute_prepared("REPLACE INTO settings_user (user_id,name,value) VALUES (?, ?, 'on')", array($_SESSION['sess_user_id'], $sub_field_name)); } else { db_execute_prepared("REPLACE INTO settings_user (user_id,name,value) VALUES (?, ?, '')", array($_SESSION['sess_user_id'], $sub_field_name)); } } } elseif ($field_array['method'] == 'textbox_password') { if (get_nfilter_request_var($field_name) != get_nfilter_request_var($field_name.'_confirm')) { raise_message(4); break; } elseif (isset_request_var($field_name)) { db_execute_prepared('REPLACE INTO settings_user (user_id, name, value) VALUES (?, ?, ?)', array($_SESSION['sess_user_id'], $field_name, get_nfilter_request_var($field_name))); } } elseif ((isset($field_array['items'])) && (is_array($field_array['items']))) { foreach ($field_array['items'] as $sub_field_name => $sub_field_array) { if (isset_request_var($sub_field_name)) { db_execute_prepared('REPLACE INTO settings_user (user_id, name, value) values (?, ?, ?)', array($_SESSION['sess_user_id'], $sub_field_name, get_nfilter_request_var($sub_field_name))); } } }else if (isset_request_var($field_name)) { db_execute_prepared('REPLACE INTO settings_user (user_id, name, value) values (?, ?, ?)', array($_SESSION['sess_user_id'], $field_name, get_nfilter_request_var($field_name))); } } } } raise_message(1); /* reset local settings cache so the user sees the new settings */ kill_session_var('sess_user_language'); kill_session_var('sess_user_config_array'); } /* -------------------------- User Settings Functions -------------------------- */ function settings() { global $tabs_graphs, $settings_user, $current_user, $graph_views, $current_user; /* you cannot have per-user graph settings if cacti's user management is not turned on */ if (read_config_option('auth_method') == 0) { raise_message(6); display_output_messages(); return; } if (get_request_var('action') == 'edit') { if (isset($_SERVER['HTTP_REFERER'])) { $timespan_sel_pos = strpos($_SERVER['HTTP_REFERER'],'&predefined_timespan'); if ($timespan_sel_pos) { $_SERVER['HTTP_REFERER'] = substr($_SERVER['HTTP_REFERER'],0,$timespan_sel_pos); } } $_SESSION['profile_referer'] = (isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER']:'graph_view.php'); } form_start('auth_profile.php'); html_start_box(__('User Account Details'), '100%', true, '3', 'center', ''); $current_user = db_fetch_row_prepared('SELECT * FROM user_auth WHERE id = ?', array($_SESSION['sess_user_id'])); if (!sizeof($current_user)) { return; } // Set the graph views the user has permission to unset($graph_views); if (is_view_allowed('show_tree')) { $graph_views[1] = __('Tree View'); } if (is_view_allowed('show_list')) { $graph_views[2] = __('List View'); } if (is_view_allowed('show_preview')) { $graph_views[2] = __('Preview View'); } if (sizeof($graph_views)) { $settings_user['general']['default_view_mode']['array'] = $graph_views; } else { unset($settings_user['general']['default_view_mode']); } /* file: user_admin.php, action: user_edit (host) */ $fields_user = array( 'username' => array( 'method' => 'value', 'friendly_name' => __('User Name'), 'description' => __('The login name for this user.'), 'value' => '|arg1:username|', 'max_length' => '40', 'size' => '40' ), 'full_name' => array( 'method' => 'textbox', 'friendly_name' => __('Full Name'), 'description' => __('A more descriptive name for this user, that can include spaces or special characters.'), 'value' => '|arg1:full_name|', 'max_length' => '120', 'size' => '60' ), 'email_address' => array( 'method' => 'textbox', 'friendly_name' => __('Email Address'), 'description' => __('An Email Address you be reached at.'), 'value' => '|arg1:email_address|', 'max_length' => '60', 'size' => '60' ), 'private_data' => array( 'method' => 'button', 'friendly_name' => __('Clear Private Data'), 'description' => __('Clear Private Data including Column sizing.'), 'value' => __('Clear Private Data'), 'on_click' => 'clearPrivateData()' ) ); if (read_config_option('auth_cache_enabled') == 'on') { $fields_user += array( 'logout_everywhere' => array( 'method' => 'button', 'friendly_name' => __('Logout Everywhere'), 'description' => __('Clear all your Login Session Tokens.'), 'value' => __('Logout Everywhere'), 'on_click' => 'logoutEverywhere()' ) ); } draw_edit_form( array( 'config' => array('no_form_tag' => true), 'fields' => inject_form_variables($fields_user, (isset($current_user) ? $current_user : array())) ) ); html_end_box(true, true); if (is_view_allowed('graph_settings') == true) { if (read_config_option('auth_method') != 0) { $settings_user['tree']['default_tree_id']['sql'] = get_allowed_trees(false, true); } html_start_box( __('User Settings'), '100%', true, '3', 'center', ''); foreach ($settings_user as $tab_short_name => $tab_fields) { $collapsible = true; print "
" . $tabs_graphs[$tab_short_name] . ($collapsible ? "
":"") . "
\n"; $form_array = array(); foreach ($tab_fields as $field_name => $field_array) { $form_array += array($field_name => $tab_fields[$field_name]); if ((isset($field_array['items'])) && (is_array($field_array['items']))) { foreach ($field_array['items'] as $sub_field_name => $sub_field_array) { if (graph_config_value_exists($sub_field_name, $_SESSION['sess_user_id'])) { $form_array[$field_name]['items'][$sub_field_name]['form_id'] = 1; } $form_array[$field_name]['items'][$sub_field_name]['value'] = db_fetch_cell_prepared('SELECT value FROM settings_user WHERE name = ? AND user_id = ?', array($sub_field_name, $_SESSION['sess_user_id'])); } } else { if (graph_config_value_exists($field_name, $_SESSION['sess_user_id'])) { $form_array[$field_name]['form_id'] = 1; } $form_array[$field_name]['value'] = db_fetch_cell_prepared('SELECT value FROM settings_user WHERE name = ? AND user_id = ?', array($field_name, $_SESSION['sess_user_id'])); } } draw_edit_form( array( 'config' => array( 'no_form_tag' => true ), 'fields' => $form_array ) ); } print "\n"; html_end_box(true, true); } ?> 'return', 'value' => __esc('Return')), array('id' => 'save', 'value' => __esc('Save')))); form_end(); }