$settings) { if (isset($settings[$name])) { if (isset($settings[$name]['default'])) { db_execute_prepared('INSERT INTO settings_user (name, value, user_id) VALUES (?, ?, ?)', array($name, $settings[$name]['default'], $user)); print $settings[$name]['default']; kill_session_var('sess_user_config_array'); break; } } } } } function api_auth_update_user_setting($name, $value) { global $settings_user; $user = $_SESSION['sess_user_id']; if (!empty($user)) { if ($name == 'full_name' || $name == 'email_address') { db_execute_prepared("UPDATE user_auth SET $name = ? WHERE id = ?", array($value, $user)); } else { foreach($settings_user as $tab => $settings) { if (isset($settings[$name])) { db_execute_prepared('REPLACE INTO settings_user (name, value, user_id) VALUES (?, ?, ?)', array($name, $value, $user)); kill_session_var('sess_user_config_array'); kill_session_var('selected_theme'); kill_session_var('sess_user_language'); break; } } } } } function form_save() { global $settings_user; // Save the users profile information if (isset_request_var('full_name') && isset_request_var('email_address') && isset($_SESSION['sess_user_id'])) { db_execute_prepared("UPDATE user_auth SET full_name = ?, email_address = ? WHERE id = ?", array(get_nfilter_request_var('full_name'), get_nfilter_request_var('email_address'), $_SESSION['sess_user_id'])); } $errors = array(); // Save the users graph settings if they have permission if (is_view_allowed('graph_settings') == true) { save_user_settings($_SESSION['sess_user_id']); } if (cacti_sizeof($errors) == 0) { raise_message(1); } else { raise_message(35); foreach($errors as $error) { raise_message($error); } } /* reset local settings cache so the user sees the new settings */ kill_session_var('sess_user_language'); kill_session_var('sess_user_config_array'); kill_session_var('selected_theme'); } /* -------------------------- 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); return; } $referer = ''; if (get_request_var('action') == 'edit') { if (isset($_SERVER['HTTP_REFERER'])) { $referer = sanitize_uri($_SERVER['HTTP_REFERER']); $timespan_sel_pos = strpos($referer, '&predefined_timespan'); if ($timespan_sel_pos) { $referer = substr($referer, 0, $timespan_sel_pos); } } $_SESSION['profile_referer'] = ($referer != '' ? $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 (!cacti_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 (cacti_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' ), 'clear_settings' => array( 'method' => 'button', 'friendly_name' => __('Clear User Settings'), 'description' => __('Return all User Settings to Default values.'), 'value' => __('Clear User Settings'), 'on_click' => 'clearUserSettings()' ), '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; } $user_row = db_fetch_row_prepared('SELECT value FROM settings_user WHERE name = ? AND user_id = ?', array($field_name, $_SESSION['sess_user_id'])); if (cacti_sizeof($user_row)) { $form_array[$field_name]['user_set'] = true; $form_array[$field_name]['value'] = $user_row['value']; } else { $form_array[$field_name]['user_set'] = false; $form_array[$field_name]['value'] = null; } } } draw_edit_form( array( 'config' => array( 'no_form_tag' => true ), 'fields' => $form_array ) ); } print "\n"; html_end_box(true, true); } ?> 'return', 'value' => __esc('Return')))); form_end(); }