100 lines
3.1 KiB
PHP
100 lines
3.1 KiB
PHP
<?php
|
|
|
|
// Pandora FMS - http://pandorafms.com
|
|
// ==================================================
|
|
// Copyright (c) 2005-2021 Artica Soluciones Tecnologicas
|
|
// Please see http://pandorafms.org for full contribution list
|
|
// 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; version 2
|
|
// 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.
|
|
function extension_uploader_extensions()
|
|
{
|
|
global $config;
|
|
|
|
if (!check_acl($config['id_user'], 0, 'PM')) {
|
|
db_pandora_audit(
|
|
AUDIT_LOG_ACL_VIOLATION,
|
|
'Trying to access Group Management'
|
|
);
|
|
include 'general/noaccess.php';
|
|
|
|
return;
|
|
}
|
|
|
|
ui_print_page_header(
|
|
__('Uploader extension'),
|
|
'images/extensions.png',
|
|
false,
|
|
'',
|
|
true,
|
|
''
|
|
);
|
|
|
|
$upload = (bool) get_parameter('upload', 0);
|
|
$upload_enteprise = (bool) get_parameter('upload_enterprise', 0);
|
|
|
|
if ($upload) {
|
|
$error = $_FILES['extension']['error'];
|
|
|
|
if ($error == 0) {
|
|
$zip = new ZipArchive;
|
|
|
|
$tmpName = $_FILES['extension']['tmp_name'];
|
|
|
|
if ($upload_enteprise) {
|
|
$pathname = $config['homedir'].'/'.ENTERPRISE_DIR.'/'.EXTENSIONS_DIR.'/';
|
|
} else {
|
|
$pathname = $config['homedir'].'/'.EXTENSIONS_DIR.'/';
|
|
}
|
|
|
|
if ($zip->open($tmpName) === true) {
|
|
$result = $zip->extractTo($pathname);
|
|
} else {
|
|
$result = false;
|
|
}
|
|
} else {
|
|
$result = false;
|
|
}
|
|
|
|
if ($result) {
|
|
db_pandora_audit(
|
|
AUDIT_LOG_EXTENSION_MANAGER,
|
|
'Upload extension '.$_FILES['extension']['name']
|
|
);
|
|
}
|
|
|
|
ui_print_result_message(
|
|
$result,
|
|
__('Success to upload extension'),
|
|
__('Fail to upload extension')
|
|
);
|
|
}
|
|
|
|
$table = new stdClass();
|
|
|
|
$table->width = '100%';
|
|
$table->class = 'databox filters';
|
|
$table->data = [];
|
|
$table->data[0][0] = __('Upload extension');
|
|
$table->data[0][1] = html_print_input_file('extension', true).ui_print_help_tip(__('Upload the extension as a zip file.'), true);
|
|
if (enterprise_installed()) {
|
|
$table->data[0][2] = __('Upload enterprise extension').' '.html_print_checkbox('upload_enterprise', 1, false, true);
|
|
}
|
|
|
|
echo "<form method='post' enctype='multipart/form-data'>";
|
|
html_print_table($table);
|
|
echo "<div class='right' style='width: ".$table->width."'>";
|
|
html_print_input_hidden('upload', 1);
|
|
html_print_submit_button(__('Upload'), 'submit', false, 'class="sub add"');
|
|
echo '</div>';
|
|
echo '</form>';
|
|
}
|
|
|
|
|
|
extensions_add_godmode_menu_option(__('Extension uploader'), 'PM', null, null, 'v1r1');
|
|
extensions_add_godmode_function('extension_uploader_extensions');
|