UM notifications MR update

Former-commit-id: d2aad195cb9bab4e1efa504cb4b4a583f262f0e3
This commit is contained in:
fbsanchez 2019-05-14 17:15:28 +02:00
parent 6e35f6aec7
commit 53e9113b7e
5 changed files with 151 additions and 25 deletions

View File

@ -5,4 +5,8 @@ ALTER TABLE `talert_templates` MODIFY COLUMN `type` ENUM('regex','max_min','max'
DELETE FROM `tevent_response` WHERE `name` LIKE 'Create Integria IMS incident from event';
INSERT INTO `tnotification_source_user` (`id_source`, `id_user`, `enabled`, `also_mail`) VALUES ((SELECT `id` FROM `tnotification_source` WHERE `description`="Official communication"), "admin", 1, 0);
INSERT INTO `tnotification_source_group` SELECT `id`,0 FROM `tnotification_source` WHERE `description`="Official communication";
COMMIT;

View File

@ -46,8 +46,35 @@ if (is_ajax()) {
$cancel_newsletter = get_parameter('cancel_newsletter', 0);
$register_newsletter = get_parameter('register_newsletter', 0);
// Load wizards.
$load_wizards = get_parameter('load_wizards', '');
$feedback = [];
// Load wizards.
if ($load_wizards != '') {
switch ($load_wizards) {
case 'initial':
return config_wiz_modal(false, false);
case 'registration':
return registration_wiz_modal(false, false);
case 'newsletter':
return newsletter_wiz_modal(false, false);
case 'all':
config_wiz_modal(false, false);
registration_wiz_modal(false, false);
newsletter_wiz_modal(false, false);
return;
default:
// Ignore.
break;
}
}
// Configuration wizard process.
if ($configuration_wizard) {
$feedback = config_wiz_process();
@ -122,7 +149,6 @@ if ($initial) {
);
}
if ($registration) {
// Prepare registration wizard, not launch. leave control to flow.
registration_wiz_modal(

View File

@ -194,6 +194,22 @@ class ConsoleSupervisor
$this->checkCronRunning();
}
/*
* Check if instance is registered.
* NOTIF.UPDATEMANAGER.REGISTRATION
*/
$this->checkUpdateManagerRegistration();
/*
* Check if there're new messages in UM.
* NOTIF.UPDATEMANAGER.MESSAGES
*/
if (update_manager_verify_registration()) {
$this->getUMMessages();
}
}
@ -571,6 +587,7 @@ class ConsoleSupervisor
case 'NOTIF.UPDATEMANAGER.OPENSETUP':
case 'NOTIF.UPDATEMANAGER.UPDATE':
case 'NOTIF.UPDATEMANAGER.MINOR':
case 'NOTIF.UPDATEMANAGER.MESSAGES':
case 'NOTIF.CRON.CONFIGURED':
default:
// NOTIF.SERVER.STATUS.
@ -1913,25 +1930,15 @@ class ConsoleSupervisor
global $config;
$login = get_parameter('login', false);
if (license_free() === true
&& users_is_admin($config['id_user']) === true
) {
$login = get_parameter('login', false);
// Registration advice.
if ((isset($config['instance_registered']) === true
|| ($config['instance_registered'] != 1)) && ($login === false)
) {
$this->notify(
[
'type' => 'NOTIF.UPDATEMANAGER.REGISTRATION',
'title' => __('This instance is not registered in the Update manager section'),
'message' => __('Click <a style="font-weight:bold; text-decoration:underline" href="javascript: force_run_register();"> here</a> to start the registration process'),
'url' => 'javascript: force_run_register();',
]
);
} else {
$this->cleanNotifications('NOTIF.UPDATEMANAGER.REGISTRATION');
}
if (update_manager_verify_registration() === false) {
$this->notify(
[
'type' => 'NOTIF.UPDATEMANAGER.REGISTRATION',
'title' => __('This instance is not registered in the Update manager section'),
'message' => __('Click <a style="font-weight:bold; text-decoration:underline" href="javascript: force_run_register();"> here</a> to start the registration process'),
'url' => 'javascript: force_run_register();',
]
);
} else {
$this->cleanNotifications('NOTIF.UPDATEMANAGER.REGISTRATION');
}
@ -2217,4 +2224,55 @@ class ConsoleSupervisor
}
/**
* Search for messages.
*
* @return void
*/
public function getUMMessages()
{
global $config;
include_once $config['homedir'].'/include/functions_update_manager.php';
$params = [
'pandora_uid' => $config['pandora_uid'],
'timezone' => $config['timezone'],
'language' => $config['language'],
];
$result = update_manager_curl_request('get_messages', $params);
try {
if ($result['success'] === true) {
$messages = json_decode($result['update_message'], true);
}
} catch (Exception $e) {
error_log($e->getMessage());
};
if (is_array($messages)) {
$source_id = get_notification_source_id(
'Official&#x20;communication'
);
foreach ($messages as $message) {
if (!isset($message['url'])) {
// Avoid log messges.
$message['url'] = null;
}
$this->notify(
[
'type' => 'NOTIF.UPDATEMANAGER.MESSAGES',
'title' => $message['subject'],
'message' => base64_decode($message['message_html']),
'url' => $message['url'],
],
$source_id
);
}
}
}
}

View File

@ -1,7 +1,6 @@
<?php
/**
* Extension to manage a list of gateways and the node address where they should
* point to.
* Update manager client library.
*
* @category Functions Update Manager
* @package Pandora FMS

View File

@ -1201,6 +1201,9 @@ if ($config['pure'] == 0) {
// main_pure
}
echo '<div id="wiz_container">';
echo '</div>';
if ($config['pure'] == 0) {
echo '</div>';
@ -1281,13 +1284,49 @@ require 'include/php_to_js_values.php';
})();
function force_run_register () {
run_identification_wizard (1, 0, 0);
jQuery.post ("ajax.php",
{
"page": "general/register",
"load_wizards": 'registration'
},
function (data) {
$('#wiz_container').empty ()
.html (data);
show_registration_wizard();
},
"html"
);
}
function force_run_newsletter () {
run_identification_wizard (0, 1, 0);
jQuery.post ("ajax.php",
{
"page": "general/register",
"load_wizards": 'newsletter'
},
function (data) {
$('#wiz_container').empty ()
.html (data);
show_newsletter_wizard ();
},
"html"
);
}
function first_time_identification () {
run_identification_wizard (-1, -1, 1);
jQuery.post ("ajax.php",
{
"page": "general/register",
"load_wizards": 'initial'
},
function (data) {
$('#wiz_container').empty ()
.html (data);
run_configuration_wizard ();
},
"html"
);
}
var times_fired_register_wizard = 0;