Cacti auth.php,auth_profile.php

/*

+-------------------------------------------------------------------------+

| Copyright (C) 2004-2020 The Cacti Group |

| |

| This program is free software; you can redistribute it and/or |

| modify it under the terms of the GNU General Public License |

| as published by the Free Software Foundation; either version 2 |

| of the License, or (at your option) any later version. |

| |

| This program is distributed in the hope that it will be useful, |

| but WITHOUT ANY WARRANTY; without even the implied warranty of |

| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |

| GNU General Public License for more details. |

+-------------------------------------------------------------------------+

| Cacti: The Complete RRDtool-based Graphing Solution |

+-------------------------------------------------------------------------+

| This code is designed, written, and maintained by the Cacti Group. See |

| about.php and/or the AUTHORS file for specific developer information. |

+-------------------------------------------------------------------------+

| http://www.cacti.net/ |

+-------------------------------------------------------------------------+

*/

$guest_account = true;

include('./include/auth.php');

/* set default action */

set_default_action();

switch (get_request_var('action')) {

case 'save':

form_save();

break;

case 'logout_everywhere':

api_auth_logout_everywhere();

break;

case 'clear_user_settings':

api_auth_clear_user_settings();

break;

case 'reset_default':

$name = get_nfilter_request_var('name');

api_auth_clear_user_setting($name);

break;

case 'update_data':

$name = get_nfilter_request_var('name');

$value = get_nfilter_request_var('value');

$current_tab = get_nfilter_request_var('tab');

if ($current_tab == 'general') {

api_auth_update_user_setting($name, $value);

} else {

api_plugin_hook_function('auth_profile_update_data', $current_tab);

}

break;

default:

// We must exempt ourselves from the page refresh, or else the settings page could update while the user is making changes

$_SESSION['custom'] = 1;

general_header();

unset($_SESSION['custom']);

/* ================= input validation ================= */

get_filter_request_var('tab', FILTER_VALIDATE_REGEXP, array('options' => array('regexp' => '/^([a-z_A-Z]+)$/')));

/* ==================================================== */

/* present a tabbed interface */

$tabs = array(

'general' => array(

'display' => __('General'),

'url' => $config['url_path'] . 'auth_profile.php?tab=general&header=false'

)

);

$tabs = api_plugin_hook_function('auth_profile_tabs', $tabs);

/* set the default tab */

load_current_session_value('tab', 'sess_profile_tabs', 'general');

$current_tab = get_nfilter_request_var('tab');

if (cacti_sizeof($tabs) > 1) {

$i = 0;

/* draw the tabs */

print "

  • \n";

foreach ($tabs as $tab_short_name => $attribs) {

print "

" href='" . html_escape($attribs['url']) .

"'>" . $attribs['display'] . "

\n";

$i++;

}

print "

\n";

}

if ($current_tab == 'general') {

settings();

settings_javascript();

} else {

api_plugin_hook_function('auth_profile_run_action', get_request_var('tab'));

}

bottom_footer();

break;

}

/* --------------------------

The Save Function

-------------------------- */

function api_auth_logout_everywhere() {

$user = $_SESSION['sess_user_id'];

if (!empty($user)) {

db_execute_prepared('DELETE FROM user_auth_cache

WHERE user_id = ?',

array($user));

}

}

function api_auth_clear_user_settings() {

$user = $_SESSION['sess_user_id'];

if (!empty($user)) {

if (isset_request_var('tab') && get_nfilter_request_var('tab') == 'general') {

db_execute_prepared('DELETE FROM settings_user

WHERE user_id = ?',

array($user));

kill_session_var('sess_user_config_array');

} elseif (isset_request_var('tab')) {

api_plugin_hook('auth_profile_reset');

}

raise_message('37');

}

}

function api_auth_clear_user_setting($name) {

global $settings_user;

$user = $_SESSION['sess_user_id'];

if (!empty($user)) {

if (isset_request_var('tab') && get_nfilter_request_var('tab') == 'general') {

db_execute_prepared('DELETE FROM settings_user

WHERE user_id = ?

AND name = ?',

array($user, $name));

foreach($settings_user as $tab => $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;

}

}

}

} else {

api_plugin_hook_function('auth_profile_reset_value', $name);

}

}

}

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 && isset_request_var('tab') && get_nfilter_request_var('tab') == 'general') {

save_user_settings($_SESSION['sess_user_id']);

} elseif (isset_request_var('tab')) {

api_plugin_hook('auth_profile_save');

}

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;

}

if (isset($_SERVER['HTTP_REFERER'])) {

$referer = $_SERVER['HTTP_REFERER'];

if (strpos($referer, 'auth_profile.php') === false) {

$timespan_sel_pos = strpos($referer, '&predefined_timespan');

if ($timespan_sel_pos) {

$referer = substr($referer, 0, $timespan_sel_pos);

}

$_SESSION['profile_referer'] = $referer;

}

} elseif (!isset($_SESSION['profile_referer'])) {

$_SESSION['profile_referer'] = 'graph_view.php';

}

form_start('auth_profile.php', 'chk');

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);

}

form_hidden_box('save_component_graph_config','1','');

form_save_buttons(array(array('id' => 'return', 'value' => __esc('Return'))));

form_end();

}

function settings_javascript() {

global $config;

?>

var themeFonts = <?php print read_config_option('font_method');?>;

var currentTab = '<?php print get_nfilter_request_var('tab');?>';

var currentTheme = '<?php print get_selected_theme();?>';

var currentLang = '<?php print read_config_option('user_language');?>';

function clearUserSettings() {

$.get('auth_profile.php?action=clear_user_settings', function() {

document.location = 'auth_profile.php?newtheme=1';

$('#clear_settings').blur();

});

}

function clearPrivateData() {

Storages.localStorage.removeAll();

Storages.sessionStorage.removeAll();

$('body').append('

$('#private_data').blur();

$('#cleared').dialog({

modal: true,

resizable: false,

draggable: false,

height:140,

buttons: {

Ok: function() {

$(this).dialog('close');

$('#cleared').remove();

}

}

});

$('#cleared').dialog('open');

}

function logoutEverywhere() {

$('#logout_everywhere').blur();

$.get('auth_profile.php?action=logout_everywhere', function(data) {

$('body').append('

$('#cleared').dialog({

modal: true,

resizable: false,

draggable: false,

height:140,

buttons: {

Ok: function() {

$(this).dialog('close');

$('#cleared').remove();

}

}

});

$('#cleared').dialog('open');

});

}

function graphSettings() {

if (themeFonts == 1) {

$('#row_fonts').hide();

$('#row_custom_fonts').hide();

$('#row_title_size').hide();

$('#row_title_font').hide();

$('#row_legend_size').hide();

$('#row_legend_font').hide();

$('#row_axis_size').hide();

$('#row_axis_font').hide();

$('#row_unit_size').hide();

$('#row_unit_font').hide();

} else {

var custom_fonts = $('#custom_fonts').is(':checked');

switch(custom_fonts) {

case true:

$('#row_fonts').show();

$('#row_title_size').show();

$('#row_title_font').show();

$('#row_legend_size').show();

$('#row_legend_font').show();

$('#row_axis_size').show();

$('#row_axis_font').show();

$('#row_unit_size').show();

$('#row_unit_font').show();

break;

case false:

$('#row_fonts').show();

$('#row_title_size').hide();

$('#row_title_font').hide();

$('#row_legend_size').hide();

$('#row_legend_font').hide();

$('#row_axis_size').hide();

$('#row_axis_font').hide();

$('#row_unit_size').hide();

$('#row_unit_font').hide();

break;

}

}

}

$(function() {

graphSettings();

$('#navigation, #navigation_right').show();

$('#tabs').find('li a.selected').removeClass('selected');

$('input[value="<?php print __esc('Save');?>"]').unbind().click(function(event) {

event.preventDefault();

$.post('auth_profile.php?header=false', $('input, select, textarea').serialize()).done(function(data) {

loadPageNoHeader('auth_profile.php?action=noreturn&header=false');

});

});

$('#auth_profile_edit2 .formData, #auth_profile_noreturn2 .formData').each(function() {

if ($(this).find('select, input[type!="button"]').length) {

$(this).parent().hover(

function() {

var id = $(this).find('select, input[type!="button"]').attr('id');

$('<?php print __('Reset');?>').appendTo($(this));

$('.resetHover').on('click', function(event) {

event.preventDefault();

var id = $(this).attr('data-id');

if (id != undefined) {

$.get('auth_profile.php?tab='+currentTab+'&action=reset_default&name='+id, function(data) {

if (id != 'selected_theme' && id != 'user_language' && id != 'enable_hscroll') {

if ($('#'+id).is(':checkbox')) {

if (data == 'on') {

$('#'+id).prop('checked', true);

} else {

$('#'+id).prop('checked', false);

}

} else {

$('#'+id).val(data);

if ($('#'+id).selectmenu('instance')) {

$('#'+id).selectmenu('refresh');

}

}

} else {

document.location = 'auth_profile.php?action=edit';

}

});

}

});

},

function() {

$('.resetHover').remove();

}

);

}

});

$('select, input[type!="button"]').unbind().keyup(function() {

name = $(this).attr('id');

if ($(this).attr('type') == 'checkbox') {

if ($(this).is(':checked')) {

value = 'on';

} else {

value = '';

}

} else {

value = $(this).val();

}

$.post('auth_profile.php?tab='+currentTab+'&action=update_data', {

__csrf_magic: csrfMagicToken,

name: name,

value: value

});

}).change(function() {

name = $(this).attr('id');

if ($(this).attr('type') == 'checkbox') {

if ($(this).is(':checked')) {

value = 'on';

} else {

value = '';

}

} else {

value = $(this).val();

}

$.post('auth_profile.php?tab='+currentTab+'&action=update_data', {

__csrf_magic: csrfMagicToken,

name: name,

value: value

}, function() {

if (name == 'selected_theme' || name == 'user_language' || name == 'enable_hscroll') {

document.location = 'auth_profile.php?action=edit';

}

});

});

$('#return').click(function() {

document.location = '<?php print $_SESSION['profile_referer'];?>';

});

// set the buttons active

$('#clear_settings, #private_data, #logout_everywhere').addClass('ui-state-active');

});

}

一键复制

编辑

Web IDE

原始数据

按行查看

历史

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园信息化系统解决方案旨在通过先进的信息技术,实现教育的全方位创新和优质资源的普及共享。该方案依据国家和地方政策背景,如教育部《教育信息化“十三五”规划》和《教育信息化十年发展规划》,以信息技术的革命性影响为指导,推进教育信息化建设,实现教育思想和方法的创新。 技术发展为智慧校园建设提供了强有力的支撑。方案涵盖了互连互通、优质资源共享、宽带网络、移动APP、电子书包、电子教学白板、3D打印、VR虚拟教学等技术应用,以及大数据和云计算技术,提升了教学数据记录和分析水平。此外,教育资源公共服务平台、教育管理公共服务平台等平台建设,进一步提高了教学、管控的效率。 智慧校园系统由智慧教学、智慧管控和智慧办公三大部分组成,各自具有丰富的应用场景。智慧教学包括微课、公开课、精品课等教学资源的整合和共享,支持在线编辑、录播资源、教学分析等功能。智慧管控则通过平安校园、可视对讲、紧急求助、视频监控等手段,保障校园安全。智慧办公则利用远程视讯、无纸化会议、数字会议等技术,提高行政效率和会议质量。 教育录播系统作为智慧校园的重要组成部分,提供了一套满足学校和教育局需求的解决方案。它包括标准课室、微格课室、精品课室等,通过自动五机位方案、高保真音频采集、一键式录课等功能,实现了优质教学资源的录制和共享。此外,录播系统还包括互动教学、录播班班通、教育中控、校园广播等应用,促进了教育资源的均衡化发展。 智慧办公的另一重点是无纸化会议和数字会议系统的建设,它们通过高效的文件管理、会议文件保密处理、本地会议的音频传输和摄像跟踪等功能,实现了会议的高效化和集中管控。这些系统不仅提高了会议的效率和质量,还通过一键管控、无线管控等设计,简化了操作流程,使得会议更加便捷和环保。 总之,智慧校园信息化系统解决方案通过整合先进的信息技术和教学资源,不仅提升了教育质量和管理效率,还为实现教育均衡化和资源共享提供了有力支持,推动了教育现代化的进程。
智慧校园信息化系统解决方案旨在通过先进的信息技术,实现教育的全方位创新和优质资源的普及共享。该方案依据国家和地方政策背景,如教育部《教育信息化“十三五”规划》和《教育信息化十年发展规划》,以信息技术的革命性影响为指导,推进教育信息化建设,实现教育思想和方法的创新。 技术发展为智慧校园建设提供了强有力的支撑。方案涵盖了互连互通、优质资源共享、宽带网络、移动APP、电子书包、电子教学白板、3D打印、VR虚拟教学等技术应用,以及大数据和云计算技术,提升了教学数据记录和分析水平。此外,教育资源公共服务平台、教育管理公共服务平台等平台建设,进一步提高了教学、管控的效率。 智慧校园系统由智慧教学、智慧管控和智慧办公三大部分组成,各自具有丰富的应用场景。智慧教学包括微课、公开课、精品课等教学资源的整合和共享,支持在线编辑、录播资源、教学分析等功能。智慧管控则通过平安校园、可视对讲、紧急求助、视频监控等手段,保障校园安全。智慧办公则利用远程视讯、无纸化会议、数字会议等技术,提高行政效率和会议质量。 教育录播系统作为智慧校园的重要组成部分,提供了一套满足学校和教育局需求的解决方案。它包括标准课室、微格课室、精品课室等,通过自动五机位方案、高保真音频采集、一键式录课等功能,实现了优质教学资源的录制和共享。此外,录播系统还包括互动教学、录播班班通、教育中控、校园广播等应用,促进了教育资源的均衡化发展。 智慧办公的另一重点是无纸化会议和数字会议系统的建设,它们通过高效的文件管理、会议文件保密处理、本地会议的音频传输和摄像跟踪等功能,实现了会议的高效化和集中管控。这些系统不仅提高了会议的效率和质量,还通过一键管控、无线管控等设计,简化了操作流程,使得会议更加便捷和环保。 总之,智慧校园信息化系统解决方案通过整合先进的信息技术和教学资源,不仅提升了教育质量和管理效率,还为实现教育均衡化和资源共享提供了有力支持,推动了教育现代化的进程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值