From 8579aed0a83466e71e296fe8038549f43691120b Mon Sep 17 00:00:00 2001 From: zarzuelo Date: Mon, 22 Apr 2013 10:31:20 +0000 Subject: [PATCH] 2013-04-22 Sergio Martin * include/styles/pandora.css include/functions_ui.php include/functions_db.php index.php images/splash_bg.png images/pandora_login.png images/login_background.jpg images/pandora_tinylogo.png images/input_user.png images/input_lock.png images/pandora_login_enterprise.png general/error_emptyconfig.php general/error_perms.php general/error_authconfig.php general/login_page.php general/error_noconfig.php general/logoff.php general/error_install.php general/error_dbconfig.php general/error_screen.php: Change the login appearence unifyng code of login, logout and error screens * pandoradb.sql pandoradb.postgreSQL.sql pandoradb.oracle.sql extras/pandoradb_migrate_4.0.x_to_5.0.mysql.sql extras/pandoradb_migrate_4.0.x_to_5.0.oracle.sql extras/pandoradb_migrate_4.0.x_to_5.0.postgreSQL.sql godmode/users/configure_user.php operation/users/user_edit.php: Added new options in user configuration to metaconsole agents editor and more meta options. Avoid to show useless options when metaconsole is enabled git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@8024 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f --- pandora_console/ChangeLog | 36 ++++ .../pandoradb_migrate_4.0.x_to_5.0.mysql.sql | 7 + .../pandoradb_migrate_4.0.x_to_5.0.oracle.sql | 8 + ...doradb_migrate_4.0.x_to_5.0.postgreSQL.sql | 7 + pandora_console/general/error_authconfig.php | 70 ------- pandora_console/general/error_dbconfig.php | 63 ------ pandora_console/general/error_emptyconfig.php | 63 ------ pandora_console/general/error_noconfig.php | 67 ------- pandora_console/general/error_perms.php | 62 ------ .../{error_install.php => error_screen.php} | 32 +-- pandora_console/general/login_page.php | 186 +++++++++++++----- pandora_console/general/logoff.php | 34 +--- .../godmode/users/configure_user.php | 70 ++++++- pandora_console/images/input_lock.png | Bin 0 -> 1723 bytes pandora_console/images/input_user.png | Bin 0 -> 1618 bytes pandora_console/images/login_background.jpg | Bin 22212 -> 50177 bytes pandora_console/images/pandora_login.png | Bin 3136 -> 5349 bytes .../images/pandora_login_enterprise.png | Bin 3385 -> 5313 bytes pandora_console/images/pandora_tinylogo.png | Bin 0 -> 4447 bytes pandora_console/images/splash_bg.png | Bin 0 -> 221 bytes pandora_console/include/functions_db.php | 3 +- pandora_console/include/functions_ui.php | 81 +++++++- pandora_console/include/styles/pandora.css | 142 ++++++++++--- pandora_console/index.php | 13 +- pandora_console/operation/users/user_edit.php | 64 +++--- pandora_console/pandoradb.oracle.sql | 6 + pandora_console/pandoradb.postgreSQL.sql | 3 + pandora_console/pandoradb.sql | 3 + 28 files changed, 513 insertions(+), 507 deletions(-) delete mode 100644 pandora_console/general/error_authconfig.php delete mode 100644 pandora_console/general/error_dbconfig.php delete mode 100644 pandora_console/general/error_emptyconfig.php delete mode 100644 pandora_console/general/error_noconfig.php delete mode 100644 pandora_console/general/error_perms.php rename pandora_console/general/{error_install.php => error_screen.php} (60%) create mode 100644 pandora_console/images/input_lock.png create mode 100644 pandora_console/images/input_user.png create mode 100644 pandora_console/images/pandora_tinylogo.png create mode 100644 pandora_console/images/splash_bg.png diff --git a/pandora_console/ChangeLog b/pandora_console/ChangeLog index 53965a02c9..4765f09d86 100644 --- a/pandora_console/ChangeLog +++ b/pandora_console/ChangeLog @@ -1,3 +1,39 @@ +2013-04-22 Sergio Martin + + * include/styles/pandora.css + include/functions_ui.php + include/functions_db.php + index.php + images/splash_bg.png + images/pandora_login.png + images/login_background.jpg + images/pandora_tinylogo.png + images/input_user.png + images/input_lock.png + images/pandora_login_enterprise.png + general/error_emptyconfig.php + general/error_perms.php + general/error_authconfig.php + general/login_page.php + general/error_noconfig.php + general/logoff.php + general/error_install.php + general/error_dbconfig.php + general/error_screen.php: Change the login appearence + unifyng code of login, logout and error screens + + * pandoradb.sql + pandoradb.postgreSQL.sql + pandoradb.oracle.sql + extras/pandoradb_migrate_4.0.x_to_5.0.mysql.sql + extras/pandoradb_migrate_4.0.x_to_5.0.oracle.sql + extras/pandoradb_migrate_4.0.x_to_5.0.postgreSQL.sql + godmode/users/configure_user.php + operation/users/user_edit.php: Added new options in user + configuration to metaconsole agents editor and more meta + options. Avoid to show useless options when metaconsole + is enabled + 2013-04-20 Junichi Satoh * include/help/ja/help_alert-matches.php: Updated help. diff --git a/pandora_console/extras/pandoradb_migrate_4.0.x_to_5.0.mysql.sql b/pandora_console/extras/pandoradb_migrate_4.0.x_to_5.0.mysql.sql index db7bcb9481..737b5ddf4a 100644 --- a/pandora_console/extras/pandoradb_migrate_4.0.x_to_5.0.mysql.sql +++ b/pandora_console/extras/pandoradb_migrate_4.0.x_to_5.0.mysql.sql @@ -449,6 +449,13 @@ ALTER TABLE `talert_snmp` ADD COLUMN `al_field8` text; ALTER TABLE `talert_snmp` ADD COLUMN `al_field9` text; ALTER TABLE `talert_snmp` ADD COLUMN `al_field10` text; +-- --------------------------------------------------------------------- +-- Add metaconsole fields to user table (17/04/13) +-- --------------------------------------------------------------------- +ALTER TABLE `tusuario` ADD COLUMN `metaconsole_agents_manager` tinyint(1) unsigned NOT NULL default 0; +ALTER TABLE `tusuario` ADD COLUMN `metaconsole_assigned_server` int(10) unsigned NOT NULL default 0; +ALTER TABLE `tusuario` ADD COLUMN `metaconsole_access_node` tinyint(1) unsigned NOT NULL default 0; + -- --------------------------------------------------------------------- -- --------------------------------------------------------------------- -- DATA diff --git a/pandora_console/extras/pandoradb_migrate_4.0.x_to_5.0.oracle.sql b/pandora_console/extras/pandoradb_migrate_4.0.x_to_5.0.oracle.sql index f841bd8e38..308959c1c1 100644 --- a/pandora_console/extras/pandoradb_migrate_4.0.x_to_5.0.oracle.sql +++ b/pandora_console/extras/pandoradb_migrate_4.0.x_to_5.0.oracle.sql @@ -478,6 +478,14 @@ ALTER TABLE talert_snmp ADD COLUMN (al_field8 CLOB NOT NULL default ''); ALTER TABLE talert_snmp ADD COLUMN (al_field9 CLOB NOT NULL default ''); ALTER TABLE talert_snmp ADD COLUMN (al_field10 CLOB NOT NULL default ''); +-- --------------------------------------------------------------------- +-- Add metaconsole fields to user table (17/04/13) +-- --------------------------------------------------------------------- +ALTER TABLE tusuario ADD COLUMN (metaconsole_agents_manager NUMBER(10, 0) default 0 NOT NULL); +ALTER TABLE tusuario ADD COLUMN (metaconsole_assigned_server NUMBER(10, 0) default 0 NOT NULL); +ALTER TABLE tusuario ADD COLUMN (metaconsole_access_node NUMBER(10, 0) default 0 NOT NULL); + + -- --------------------------------------------------------------------- -- --------------------------------------------------------------------- -- DATA diff --git a/pandora_console/extras/pandoradb_migrate_4.0.x_to_5.0.postgreSQL.sql b/pandora_console/extras/pandoradb_migrate_4.0.x_to_5.0.postgreSQL.sql index 579f37e4f8..2c8f57fe02 100644 --- a/pandora_console/extras/pandoradb_migrate_4.0.x_to_5.0.postgreSQL.sql +++ b/pandora_console/extras/pandoradb_migrate_4.0.x_to_5.0.postgreSQL.sql @@ -469,6 +469,13 @@ ALTER TABLE "talert_snmp" ADD COLUMN "al_field8" TEXT; ALTER TABLE "talert_snmp" ADD COLUMN "al_field9" TEXT; ALTER TABLE "talert_snmp" ADD COLUMN "al_field10" TEXT; +-- --------------------------------------------------------------------- +-- Add metaconsole fields to user table (17/04/13) +-- --------------------------------------------------------------------- +ALTER TABLE "tusuario" ADD COLUMN "metaconsole_agents_manager" SMALLINT DEFAULT 0; +ALTER TABLE "tusuario" ADD COLUMN "metaconsole_assigned_server" INTEGER NOT NULL default 0; +ALTER TABLE "tusuario" ADD COLUMN "metaconsole_access_node" SMALLINT DEFAULT 0; + -- --------------------------------------------------------------------- -- --------------------------------------------------------------------- -- DATA diff --git a/pandora_console/general/error_authconfig.php b/pandora_console/general/error_authconfig.php deleted file mode 100644 index 202accd55a..0000000000 --- a/pandora_console/general/error_authconfig.php +++ /dev/null @@ -1,70 +0,0 @@ - - - - -Pandora FMS - The Flexible Monitoring System - Console error - - - - - - - - - - - - - - - - -
-
-

Problem with Pandora FMS database

-
-
- - -
- Pandora FMS - - Cannot connect to the database, please check your database setup in the include/config.php file.

- Probably your database, hostname, user or password values are incorrect or - the database server is not running.


- DB ERROR: - - -
- If you have modified auth system, this problem could be because Pandora cannot override authorization variables from the config database. Remove them from your database by executing:
DELETE FROM tconfig WHERE token = "auth";
-
-
-
-
- -
- - - - - diff --git a/pandora_console/general/error_dbconfig.php b/pandora_console/general/error_dbconfig.php deleted file mode 100644 index 1cbf8a1498..0000000000 --- a/pandora_console/general/error_dbconfig.php +++ /dev/null @@ -1,63 +0,0 @@ - - - - -Pandora FMS - The Flexible Monitoring System - Console Error - - - - - - - - - - - - - - - -
-
-

Problem with Pandora FMS database

-
-
- - -
- Pandora FMS - - Cannot connect to the database, please check your database setup in the include/config.php file.

- Probably one or more of your user, database or hostname values are incorrect or - the database server is not running.


- DB ERROR: -
  -
-
-
- -
- - - - - diff --git a/pandora_console/general/error_emptyconfig.php b/pandora_console/general/error_emptyconfig.php deleted file mode 100644 index 880fd1d2b9..0000000000 --- a/pandora_console/general/error_emptyconfig.php +++ /dev/null @@ -1,63 +0,0 @@ - - - - -Pandora FMS - The Flexible Monitoring System - Console error - - - - - - - - - - - - - - -
-
-

Empty configuration table

-
-
- - -
- border="0" height="100px" alt="Pandora FMS"> - -

- Cannot load configuration variables from database. Please check your database setup in the - include/config.php file.

- Most likely your database schema has been created but there are is no data in it, you have a problem with the database access credentials or your schema is out of date. -

Pandora FMS Console cannot find include/config.php or this file has invalid - permissions and HTTP server cannot read it. Please read documentation to fix this problem.
-
-
-
- -
- - - - - diff --git a/pandora_console/general/error_noconfig.php b/pandora_console/general/error_noconfig.php deleted file mode 100644 index af1871eefd..0000000000 --- a/pandora_console/general/error_noconfig.php +++ /dev/null @@ -1,67 +0,0 @@ - - - - -Pandora FMS - The Flexible Monitoring System - Console error - - - - - - - - - type="image/ico"> - type="text/css"> - - - - - -
-
-

No configuration file found

-
-
- - -
- border="0" height="100px" alt="Pandora FMS"> - -

Pandora FMS Console cannot find include/config.php or this file has invalid - permissions and HTTP server cannot read it. Please read documentation to fix this problem. -
- You may try to run the installation wizard'; - else - echo 'installation wizard'; ?> to create one. -
-
-
-
- -
- - - - - diff --git a/pandora_console/general/error_perms.php b/pandora_console/general/error_perms.php deleted file mode 100644 index 12e46a28d3..0000000000 --- a/pandora_console/general/error_perms.php +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Pandora FMS - The Flexible Monitoring System - Console error - - - - - - - - - type="image/ico"> - type="text/css"> - - - - -
-
-

  Bad permission for include/config.php

-
-
- - -
- border="0" height="100px" alt="Pandora FMS"> - -
- For security reasons, config.php must have restrictive permissions, and "other" users - should not read it or write to it. It should be written only for owner - (usually www-data or http daemon user), normal operation is not possible until you change - permissions for include/config.php file. Please do it, it's for your security. -
-
-
- -
- - - - - diff --git a/pandora_console/general/error_install.php b/pandora_console/general/error_screen.php similarity index 60% rename from pandora_console/general/error_install.php rename to pandora_console/general/error_screen.php index bb2c5d8f0a..fa54dd1553 100644 --- a/pandora_console/general/error_install.php +++ b/pandora_console/general/error_screen.php @@ -15,12 +15,13 @@ // GNU General Public License for more details. ?> + -Pandora FMS - The Flexible Monitoring System - Console Error +Pandora FMS - The Flexible Monitoring System - Console error - + @@ -29,32 +30,15 @@ + + -
-
-

Installer active

-
-
- - -
- Pandora FMS - - For security reasons, normal operation is not possible until you delete installer file. - Please delete the ./install.php file before running Pandora FMS Console. -
-
-
- -
- - +// At this point, $login_screen is setted with the error type desired +require('login_page.php'); +?> diff --git a/pandora_console/general/login_page.php b/pandora_console/general/login_page.php index 634b904732..d56af3209c 100644 --- a/pandora_console/general/login_page.php +++ b/pandora_console/general/login_page.php @@ -14,6 +14,39 @@ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. +if(isset($config["homedir"])) { + $homedir = $config["homedir"] . '/'; +} +else { + $homedir = ''; +} + +include_once($homedir . 'include/functions_ui.php'); +include_once($homedir . 'include/functions.php'); +include_once($homedir . 'include/functions_html.php'); + +if(!isset($login_screen)) { + $login_screen = 'login'; +} + +switch($login_screen) { + case 'login': + $logo_link = 'http://www.pandorafms.com'; + $logo_title = __('Go to Pandora FMS Website'); + break; + case 'logout': + $logo_link = 'index.php'; + $logo_title = __('Go to Login'); + break; + default: + error_reporting(0); + $error_info = ui_get_error($login_screen); + $logo_link = 'index.php'; + $logo_title = __('Refresh'); + break; +} + + $url = '?login=1'; //These variables come from index.php if (!empty ($page) && !empty ($sec)) { @@ -21,65 +54,84 @@ if (!empty ($page) && !empty ($sec)) { $url .= '&'.safe_url_extraclean($key).'='.safe_url_extraclean($value); } } -echo ''; - +echo '
'; +echo '
'; echo '
'; -echo ''; -echo '
' . $pandora_version.(($develop_bypass == 1) ? ' '.__('Build').' '.$build_version : '') . '
'; - if (isset ($login_failed)) { echo '
'; @@ -201,12 +253,48 @@ ui_require_jquery_file('jquery-ui-1.10.0.custom'); 'forced_title_layer', 'class' => 'forced_title_layer', 'hidden' => true)); + +html_print_div(array('id' => 'modal_alert', 'hidden' => true)); ?> - + + + \ No newline at end of file + diff --git a/pandora_console/general/logoff.php b/pandora_console/general/logoff.php index 168d4d52a5..65a7b180f1 100644 --- a/pandora_console/general/logoff.php +++ b/pandora_console/general/logoff.php @@ -14,36 +14,6 @@ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. -ui_require_css_file ('jquery-ui-1.10.0.custom'); -ui_require_jquery_file('jquery-ui-1.10.0.custom'); +$login_screen = 'logout'; -?> - -
-
-

-
-
- - -
- '; - if (defined ('PANDORA_ENTERPRISE')){ - html_print_image ("images/pandora_login_enterprise.png", false, array ("alt" => "logo", "border" => 0)); - } - else { - html_print_image ("images/pandora_login.png", false, array ("alt" => "logo", "border" => 0)); - } - - //html_print_image ("images/pandora_login.png", false, array ("alt" => "logo", "border" => 0)); - //echo ' '.$pandora_version; - ?> - -
'; ?> -
-
-
- -
-
+require('login_page.php'); diff --git a/pandora_console/godmode/users/configure_user.php b/pandora_console/godmode/users/configure_user.php index 8054feac04..cf1e05b44e 100644 --- a/pandora_console/godmode/users/configure_user.php +++ b/pandora_console/godmode/users/configure_user.php @@ -22,6 +22,11 @@ include_once($config['homedir'] . "/include/functions_profile.php"); include_once($config['homedir'] . '/include/functions_users.php'); include_once ($config['homedir'] . '/include/functions_groups.php'); +$meta = false; +if(enterprise_installed() && defined("METACONSOLE")) { + $meta = true; +} + $isFunctionSkins = enterprise_include_once ('include/functions_skins.php'); //Add the columns for the enterprise Pandora edition. @@ -61,7 +66,7 @@ if (!check_referer()) { $tab = get_parameter('tab', 'user'); // Header -if (defined('METACONSOLE')) { +if ($meta) { user_meta_print_header(); $sec = 'advanced'; @@ -366,6 +371,7 @@ if ($delete_profile) { __('Could not be deleted')); } +$table->id = 'user_configuration_table'; $table->width = '98%'; $table->data = array (); $table->colspan = array (); @@ -439,11 +445,13 @@ else { $id_usr = $id; } -// User only can change skins if has more than one group -if (count($usr_groups) > 1) { - if ($isFunctionSkins !== ENTERPRISE_NOT_HOOK) { - $table->data[10][0] = __('Skin'); - $table->data[10][1] = skins_print_select($id_usr,'skin', $user_info['id_skin'], '', __('None'), 0, true); +if(!$meta) { + // User only can change skins if has more than one group + if (count($usr_groups) > 1) { + if ($isFunctionSkins !== ENTERPRISE_NOT_HOOK) { + $table->data[10][0] = __('Skin'); + $table->data[10][1] = skins_print_select($id_usr,'skin', $user_info['id_skin'], '', __('None'), 0, true); + } } } @@ -474,6 +482,35 @@ $table->data[13][0] = __('Not Login'); $table->data[13][0] .= ui_print_help_tip(__('The user with not login set only can access to API.'), true); $table->data[13][1] = html_print_checkbox('not_login', 1, $user_info["not_login"], true); +if($meta) { + enterprise_include('include/functions_metaconsole.php'); + $data = array(); + $data[0] = __('Enable agents managment'); + $data[1] = html_print_checkbox('metaconsole_agents_manager', 1, $user_info["metaconsole_agents_manager"], true); + $table->rowclass[] = ''; + $table->rowstyle[] = 'font-weight: bold;'; + $table->data['metaconsole_agents_manager'] = $data; + + $data = array(); + $data[0] = __('Assigned node'). ui_print_help_tip(__('Server where the agents managed of this user will be placed'), true); + $servers = metaconsole_get_servers(); + $servers_for_select = array(); + foreach($servers as $server) { + $servers_for_select[$server['id']] = $server['server_name']; + } + $data[1] = html_print_select($servers_for_select, 'metaconsole_assigned_server', $user_info["metaconsole_assigned_server"], '', '', -1, true, false, false); + $table->rowclass[] = ''; + $table->rowstyle[] = 'font-weight: bold;'; + $table->data['metaconsole_assigned_server'] = $data; + + $data = array(); + $data[0] = __('Enable node access'). ui_print_help_tip(__('With this option enabled, the user will can access to nodes console'), true); + $data[2] = html_print_checkbox('metaconsole_access_node', 1, $user_info["metaconsole_access_node"], true); + $table->rowclass[] = ''; + $table->rowstyle[] = ''; + $table->data['metaconsole_access_node'] = $data; +} + echo '
'; html_print_table ($table); @@ -592,3 +629,24 @@ array_push ($table->data, $data); html_print_table ($table); unset ($table); ?> + + diff --git a/pandora_console/images/input_lock.png b/pandora_console/images/input_lock.png new file mode 100644 index 0000000000000000000000000000000000000000..fe1c647acd0fe532f33206eba3c72947e30cbb31 GIT binary patch literal 1723 zcmV;s21NOZP)KLZ*U+qw076Q$fI%7r-R&;hLM@wZi)~|KwzF?{$4+O*cV^3v^u$GPp#A|W za`0f{$pn8zxBv$YBm@nyAu-`l;*StXxEN9ov)!H6HuXI{`+dL9_xV20`(y`FpO<~# zO zl`D{%2YRMrcr_MB9suYpNKY!qwn~MpRaEt9$CWX=8(ja-GwU{%>vaPi!OX}pU?(I_ z)zm<#8GmAz^CQ5Ekht!L*%GiF5`Q#i#xlSzNIo^Kj*Lb8G9_1!4%+!ySnw;x)&_4-056QbVIXD#g(WuB=9_RtByVe+J>T5@Xxsm*`&Y4>O zaHONDcgjbLKo@B5t9t2pf;)~$|f^Bmu3zWP0VQNOL<)9>gD zZHE4dS-YbBpk39z)V__q)%yF< zdV4alZYAEDvzEAK*4$>kVCKx{%$Lleww}4g++z-yJItK9t@Up4dhuQyCU9F*UAtDq z8^golBoakH85fV!tM@xa{J;qTZ)AncVFmgtp zvBSu(*gAWi4rGiK?{ha(NCIY1ILsk&36P;Y6$13v{nN^+)5o`}Rh^Ii0VoFfuYSFxBm|-(R=Sem?^PgMZyV zdjTe>fe)bcdzirqFk6|LoDMQV*$M=b^Gl9L-Br?4!EQ1 z_SqLOFfb@IIUQt#Vn>+okUi1Qz`)RtWD?B#|B)5JfFqK77|>0Ef&IwVFfcG2U|?Wi z00000|Np`W9(=)dzka{Ne<(I!WMo8GQ@79lJ_7?oBFt9|3=HSd-J#IrbnpO@{S)f; z*+b$D8i@?Bh=2xM00RR$g0n}mh z(G?&YxgR6Ao16|BGB7X%GB7ZFKoVa7iyMI8X#^eA?Xx$i+h^|p#RAyWpkyH=jR8o> zBc6eQK>!*o>!ITB>-O0j;7l1%kFIB6VAueSy22)>gBzNh4lZbNItWWv9~c-I&ch-J zTZlP8>4^-u!9rLvz%T@wc6oC R*NXrE002ovPDHLkV1nzM6(9fr literal 0 HcmV?d00001 diff --git a/pandora_console/images/input_user.png b/pandora_console/images/input_user.png new file mode 100644 index 0000000000000000000000000000000000000000..311b058e369acce525982ad5c81874231719a110 GIT binary patch literal 1618 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 z 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%0DPxS0|}Fwp3KhMq)|oJz%P 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 literal 22212 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 QJ0MlS#L&W^O8*w|KWbCH^#A|> diff --git a/pandora_console/images/pandora_login_enterprise.png b/pandora_console/images/pandora_login_enterprise.png index c228f1eaac6ca29f1761d44b1ae6d351cb2e1ceb..79800d15f4c5b71aa122cbbfab9b5da5e6cb149c 100644 GIT binary patch literal 5313 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 Ypq`cIm@E9`_Xz-CsB4C)yx(K+ z1QvJ+M=dKzs(HVWQW=J`&cHW<4BGfjx1?}{AnIHx57y2h5*A#jI19>^cAP-T0y*Ye zcTl&we=!K$n%Gqg1ndU)14WhrvF;#h5pS;okdvk~+P?A8?V@B`&HDG?1X*rdX_$?t z0wc?7{z4*AIR2cLgl(F1llCle!URxG#Y$ItXXoOecw>Jd6GbV5m2ZMEY2Q{BI(@G( zx?B09E6K>3DSS93tHdy~f%P0Hjj@fZct<1x6b*c*H_~L#i+!*Ni?g4*L`+K*Tg=Uaf_De>B6GmA z)mN5zT_C8`=NIs47t$NHuV8|DMd(m-=tW>EDI?+;QL8!-)N*22i&t{0Dh~cxzo&Y$ zIpmy1Re$Pdv;|1@3iRa-1gk1a;3Zy<6_hDJrKAsjo&|yYCjJHgAOD{+|IRlE+Vdd` z26}q#WO9G?El>g&jsro^?!Ohk6wu)zsLS(iqeDL%gCx6ro0m1o<_pJHfNOUibCRwB z)QDnZZScGf;0PSqkzNZXFQx-RYFuehDAkT(rXC;+RB{z7CtL-%!BM657)c_bi5~&} ze*4cMYFt%Vjz$#~4jJ$5BVaGRzRCkCaJ;M}a@RUG-8iO;enoAkJ~6`;P?qPR+Id$x z+WwNdP<&kv8}$Tus%|8BMQfKgB$D|^Ay&GsBTt!~a<2u_j=d~MGn0_^0(NJtDhZRz zL5e*M<~LkW-MG8H${prKwFAS6XQv#N!~URqx0rf&g|S@ihOKs&);;K(&_ielG~S0Q zsvX8sWB;m$1mPVQ2zz)*s`^niW4UgTur)t8dl~OrgDT)0MLMN&<5=so&;y7(H&J|< zHwVjowV5S@S8Xk#hj?qg*iXePO+I*{(N(P&Y3YP*LUN5&ZY#Y9bC{P2)Lp8M5Gix~ zi(q@8#?_b)y&hCu(w$G#byRdvWLz?=Z5?|0+8od1eBA>er;;q1o^#0gV( zne4o=RMJ#DqWP=p4Bv_P`f5QtcP<11nnJ>b8K&3?s0G6Cd@xfrt}Rak#Yn9V91d-S zMPU!G3>{`ziE4pK3Y2=1XB z#VH6;d7@C+poeo1jsoXh{EjApPJ&b16cgKEB;J%Lijjl zW@h^3RWtV>xDG$(A171WoE*I`d|RV)^hJ;ZUyJw;*{t-XPaWKfAB*;VTkYl^F94@- z(k+2b#C=@fAtW*x@$(faAz2P}X1S0Sc{1T$(v?q)BofYe_c3g6&X=}X4vOaDQYmso z(@Ok3xu6CEBkq;D{LR%f*Bo2ECsiUqePx)BaPSQTrs?z-_q;DCBB^XX*>RXVc4Vxv zC+4ON&Yj*;aNDqc)ptFN>QkPjDbbg-*;<||6DM8YdTQ_tZ~P{z|1I7ILol0=wlfWs=DNL*R)#}`edXN5d)`mLD&!-%$##?ao?s&cQC zZS{xkY~cp39a9ags_fCfU+@^Zsuz3jL{R0dGR{G6*TRClfuu%Y24^q%R&Z0M_)+c$ zkMXCYPaD$N;$CUUZ6M^SJ`~Lwh5yY{65EgP++MzqDn1 z@QvT1_~#Ps&X??*C{qV^PW@-&hG}j4+Pd$9yyF)7jD)=3o7h$@`DgaZ(WRDBH2j}g zvqPiJOX7>|f3g5EDLqwxR%Xiv@bAagMj`E;$5iYD>o=}Jtt%>e?}hETP&1x4I~`=C ze4vNN30!Ys^eoK;!@ljhgaiDB(TW_2A)*D9o5_zpGYoo>8YX`~zk<=w&A{yT9T0PP3xSG-wkAGb+N84f~sZI_`b4 zr+Vlx_K=f7!SUcR(~JzyRVBf#(b10*Yxm39n)#@#v4QO2l9g@fIWYj~khzY(Dj7B=1vQu-4W@B%QJ8s`bfFfZLler&|4JCXeDo6_yT@%={;R$$ku*yGhLMX z)!c-k_`YWAwknVPY8Jnmf;$&&jum3rLNFnc2VN8-Rc}d@2sx2=v0h-rno-J6*l?OB z+ig5tzbq1t8rW_KcS2;8dX%tc@en@J8*9$S3rK9g{ri?0~MfLZ!O%Uf-cq>CQmH5^dWyn%uqpps6~-qbZS*l7we1 z(*Hpk5c@EtYA5uy)RL@3X`lu9BHL{0F?`m@kWjD1$-mW7MK!H+>Bn!}(FoZ#TX_g@ zd3(v47j`?%qFRRW+vptUzzFQ?%I#+8;M(R74u;|_{Oos9IrLkj)!rVz_!GnKjxkZH z<$$g_GvnBu;lke5D34*vH^~zx2b)q>^QLh`Pf^+EwkbkW%y@HOyR2BH2<*q8*)sI zr9(|n!AWwp>rgC8&!9^Kp~ZR9Fl96yx-Q&?=2{mmDL%ol0UWU@f}+^Ctj+g(qSMA) zU5be>SIGC1QqH*9P0LcQz&jbequZSVtI)M3rYSY^v&NyD&XGSA)z*z@ye_%q`FIc9 zd)dUo-YC#E8I-enzde~VPb>YLl~6W1_t=zaCn8B~u-J=nLY>Vb+Ef4(DVzU#rX!Z&F{xe>Vwn;cN-U>2+G9#|%4`7&9a z%w{f@UvjzYRGyHnAvpWwyGK8{&mc`caZ0Z{cm|yijD2&YEi`PMHnLjPUV{#K*^ hOZ5Kcm)6cN0oB)E#jZ`sg^q(=7J~c-_yGWbpp~Vm z1Lymh^B&^k0RXrH`4W z@+2o0nhV|*<3}N@`TX=zW01o*XaGRph!N)F7fhr>caWFOiD;CExfCbWMVHgC0PN%EUQEHU%0ED`(t}X(pfzZ%^b3EYG$WWRO z10G71`^8{Nr22)E!e}H)DD)?zk1r*HW&q3RDAYho7}Ug3Q%xO;_wgfz{+#&(fyZO4La8*LP(PxTsR4|`p++M4V>ER%OtjEC zC>&DLSY6#rLkFc{Vva;3watvRO^nfIzp$nhzX&ohl=chj|6eTnU$H-%fgHw(Y)T9# zoh163hf~PVKa$3f{y~cl+6=9&VPeMN)A?sDe`5XrU5m!QYC&+sAbu|G|19;dDNg_V z9RA(79OLiSCx&wRJ)G0nIL*tIoXz&q$`t3s81~)%@x!PM3s6kv0;)n2va*C<+!_f$ z^nIW$ac6$teO)$Tut^9TZnQ@Xc)}=^{kl61yZM7~;F{2rWMG~y^nj~-@p~?Fa{?hz z)jV4t@C0hY&&*fsdt5s?3l{EBGp0)o)IP)l4>T9?)$Mrq3OP*y`B+@{7%dKH?gtF; z{X3@)vQ!=c?(*eE$*PDwHa~mSJ2TdQ7fM93g3uEURREyG3Qq-INX_!(x*-sD-I^O6 zWdu2?33bOnArNRhkLt)S#tB=fy*BWKLG=LWLY^24;vs!jCSlt9DasZebV6`1JxP%_ z&ou?BFVoo!crtf2Xo|^@ZD5?4^#rIb#mAIhK5+F@6IZ7gXlfZ-7ViX(U*OvRgK>_J zHT4ZUnvt6_j|+jGOv3Q%l1GXoX91}`gH1d-Wt;I%3(&bpKJ+3Wdt89fi-Ho_JbTRd zMrHU*dk9vEKiFaeRUNM#%}(hf1h+US=)zJU*i|__>3vhlf!is4L&jQN!sik3CA*#9 zd9?^LhDNz>&q!K$6oUC$Vh6{deB3@n;27528z?Kp3S}Lf1x^X{wnM@|B0N~7ctL;A zd(hgfRP4ZkC8pRt2p2z`Zt-nrMbY&pBCc9HMd;v4j%B_`;D`rT4sVoIsmUmg3;O$O zkAzryC#&jSU)G)UgNfEI3GTURU-atVCbqEo`C=;prG4+Qv+bnGeqqP%R1x{xUk2`r zm-Q6pTv=`ucpikd@Ug;~KNnRU0PjKZ>|5Dgw`c?lqWY{L!cYN`yQiKrmG!Z=WCy`WV@6D#!`dq?8mO~@gHyM8Q9!q zq~dKa+zj_TcRI)1idR0p{%fx1gH+c*ME-c2?ROL5SEA!uHH>4+jq~T~%7mucs9xLm ziuZOfZcWc5x6l1Peu%dV72ik?60d!*0)}s;CPyyDwJzORPys|c({hn}Oxx1HNkYcF zueelNByM3Hm~FK(-rylzB{zo8IbO<}w}iV(` zOQ9LS=*@aimqeLw>Y2$Zq!q&Anr8BXYMJ6Uhr`8ge(Mg0GF|7?9EyrFkZPq*0z_r(iL4=(d_e()aN|via zqGUj3qWiRi7cI&{ST%bHP%^R_@%8qB4P7Lj< zyycYnHkq`ze?~>JQ7L}w8%3#tJ+%Er~% zTgIv)2{i=kXF>Ja24gM|+=uc%@D> zWJ&JK)#Zdsyb)Fuqg|4$&LZ?T&T#b_R8ug{}C8-EV47+|0}F= zN0hJK;*Qrn`1&n)Y^!*^g7%0v>iGNIqz>a1kp0}7cDlfPklYbf=jwPGW%`=e-CJ2q zjfaZKintbyv4=Y!WZe+LkC>=IlfwgAJ4adMmckc1@Uh;G*zMEnrGc_9S@ak$p38fJD_00gu#@zLImSf@v%6u@@ta}I#R>T$U?tV8 z_Iw-CsROje!{%XwA`~Bvf-Z*k*=DX3Pjut^IL0+@`GUzRTm$DuRIALT{2rp99@c^b z0SB^GZDQmVvYd)b%<<><;r@C)TveCcqQzdYTh5LH=Z?K`{XKtMtxD$z#{T%2o|VK(qw@o?F2#{Ax!L=J=4>5Y5H=f zpIxdb8$EP6OYh8#T4RoaEMqe)I`oCMGa&GlwLuW(hC^Mo$WDK^4&g90G$-6ZclcwK zK$bz78^q2aZlVUb4M;?_qW)8%s}q(95<&7S$W>>V#7;+CmkTjNT6(H z5dKncQF)tY#h-wl%rIqQy)t$8Vr53-p75=29o9?!r?~O4j`Sofzk+*tQS)8Ug&VLl zJ!lqWm;Y5RFl4MN&~EqrPG(e*t2Nw%BGLGE@C&u&TijzI!2(0aFIiAoPeeWa~hi>KoG~WXKZ#nf|z^X_kYQx;Y z#eA^xyPE!*8PPZMM?1dW+l&|_1#461OUj3Wl?pq(@8;^oDRTJ@Uz12--kP?_Nnj^qCo)8^-Kr(?^fGo7(I} zwH<0e8fNZVEL+}JQX$Q6L_=uj3QF9fXxpvDV?uMLt>KyF=?va4^||HLpxGH@XgXVT z{MmyN7IipzY^U$~*t(?F4GD#~zPSpCLiU;8Kt)mE>cxlhR$e8fX75J8#OeqUCS!dc z7Po?D8&s3IN)8#=SRjU4eAZ|f?tz-TbCY#&x$QRxFk|gFJqZ$zn?+Ca9r>}>m%4;h zk#gne^1Ysl4M)u623{&xD`u`eEw@O_aKi*lPNhbENS-YF5kkmqm0AU#Ubg;XF%^}G zLc5IgPhU|@SlFzx4;9Fg-hz9^dz7^9*Ux8$9HEV! zBv1HNi|{zcvEriT(e2{}V;<*n(iQ8k*yVqG-e`g6J$8VkfKo7iq$t`Au}^<#{SFKF zr}fNOUW5URj%PWi!HlB>-wqpIY9R_o*(FyfmNKR3&N^q%1w}6{6$0Tg3&Q!Pcg{x` zJofIrGN3noxCT|f=eII56U%x&*G9e1yS|_lg)xH3&w2fi_2eaeNYHG?w|`R*-rG~9 zYv#Jlp70dOWJ}gc&n4u~MFM+I--W9*M~>dU-Tzjk9PDAFv@IOoi#!k6Dzt{^|FDUC zMGlB_ix~*m=g1%arJ4x#<4<6bl0uY`+8D|-}sI53=VKehk zD)DUcgL%T}w9_CsQeujJyYeRDP-*2k!>ubcyIJvX&1XxMuHm5Dl!JF+vw~N-$!vSf zTb$yHjgp7u*LuDpZ;3XD?2E%hOZ1~WUpM*wlb){ zez07e3)Fn$I{ewL!ygTgNeopScFi|*+;GzrNKltrkdvx4wLFGw zI=#-AdDaW&vlp7XgbEINwln#~Put(n#@zc%W&LkQgDIfh6JAxuLGQU9x{Z!qI41RG z;MFI4%+_V|BimZe5%8{5$<{Lch8rx%GhSrT$OnIc(7~SFGcg0D?t~4ePi0vQadekO+xnQ4ar&K&3ZbM-dIN&HuI2pslH2ZB^-ofUS>6P9XG@5l+a)OAy(!am zV>WTD*`6Yx?fqyZ>1<(Cv(CT}|9*OiXz)|A7ego{t<7+K$PX_q>5y?~&o+1FX9*@2 n#5wrRviL!;QXq4(d=f!6>ZL5*gzx(K%frgd&h)Oacfx-FNm{_0 literal 0 HcmV?d00001 diff --git a/pandora_console/images/splash_bg.png b/pandora_console/images/splash_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..4afed70a749ee858821f7a5311b0d93d35f354dc GIT binary patch literal 221 zcmeAS@N?(olHy`uVBq!ia0vp^AT~D#8<2F%laT;YjKx9jP7LeL$-D$|I14-?i-8J+ zL70(Y)*O%u_7YEDSN6LsLVPR&atl-51BLQET^vIsF1Jqb7GhE4aF)OLyW;Fh5fI$dnr(k*cP6)S@#J&LN%Irp;include/config.php file.

+ Probably your database, hostname, user or password values are incorrect or + the database server is not running.').'

'; + $message .= ''; + $message .= '' . __('DB ERROR') . ':
'; + $message .= db_get_last_error(); + $message .= '
'; + + if($error_code == 'error_authconfig') { + $message .= '

'; + $message .= __('If you have modified auth system, this problem could be because Pandora cannot override authorization variables from the config database. Remove them from your database by executing:

DELETE FROM tconfig WHERE token = "auth";
'); + } + break; + case 'error_emptyconfig': + $title = __('Empty configuration table'); + $message = __('Cannot load configuration variables from database. Please check your database setup in the + include/config.php file.

+ Most likely your database schema has been created but there are is no data in it, you have a problem with the database access credentials or your schema is out of date. +

Pandora FMS Console cannot find include/config.php or this file has invalid + permissions and HTTP server cannot read it. Please read documentation to fix this problem.
').'

'; + break; + case 'error_noconfig': + $title = __('No configuration file found'); + $message = __('Pandora FMS Console cannot find include/config.php or this file has invalid + permissions and HTTP server cannot read it. Please read documentation to fix this problem.').'

'; + if (file_exists('install.php')) { + $link_start = '
'; + $link_end = ''; + } + else { + $link_start = ''; + $link_end = ''; + } + + $message .= sprintf(__('You may try to run the %sinstallation wizard%s to create one.'), $link_start, $link_end); + break; + case 'error_install': + $title = __('Installer active'); + $message = __('For security reasons, normal operation is not possible until you delete installer file. + Please delete the ./install.php file before running Pandora FMS Console.'); + break; + case 'error_perms': + $title = __('Bad permission for include/config.php'); + $message = __('For security reasons, config.php must have restrictive permissions, and "other" users + should not read it or write to it. It should be written only for owner + (usually www-data or http daemon user), normal operation is not possible until you change + permissions for include/config.php file. Please do it, it is for your security.'); + break; + } + + return array('title' => $title, 'message' => $message); +} + ?> diff --git a/pandora_console/include/styles/pandora.css b/pandora_console/include/styles/pandora.css index 224afb33fc..5e44d158bd 100644 --- a/pandora_console/include/styles/pandora.css +++ b/pandora_console/include/styles/pandora.css @@ -53,6 +53,12 @@ div#page { top: 0; left: 0; z-index: -999; + + background-image: url('../../images/login_background.jpg'); + background-size: cover; + -moz-background-size: cover; + -webkit-background-size: cover; + -o-background-size: cover; } @media screen and (max-width: 1024px) { /* Specific to this particular image */ @@ -152,10 +158,23 @@ a.white { p.center { text-align: center; } -h1#log { +h1#log_title { font-size: 18px; margin-bottom: 0px; - color: #000; + color: #CCC; +} +div#log_msg { + display:none; +} +div#error_buttons { + margin-top: 20px; +} +div#error_buttons a{ + margin: 14px; +} +p.log_in { + color: #CCC; + padding: 0px 10px; } h1#log_f { color: #c00; @@ -163,9 +182,6 @@ h1#log_f { padding-bottom: 3px; } div#login { - margin: 0 auto; - padding-top: 63px; - width: 657px; border-left: solid 1px #000; border-top: solid 1px #000; border-bottom: solid 2px #000; @@ -173,8 +189,36 @@ div#login { font-size: 12px !important; } div#login_in, #login_f { - margin: 0 auto 0 140px; - width: 400px; + /*margin: 0 auto 0 140px; + width: 400px;*/ +} + +/* Style for login form */ +.databox_login, .databox_logout { + border: none !important; + background-color: #888888; + padding: 8px; + border-radius: 11px; + height: 300px; +} + +#login_inner { + background: url('../../images/splash_bg.png') #111; + width: 100%; + height: 100%; + border-radius: 11px; + overflow: hidden; +} +#login_outer { + -moz-box-shadow: 0px 0px 8px #ffffff; + -webkit-box-shadow: 0px 0px 18px #ffffff; + box-shadow: 0px 0px 18px rgba(200, 200, 200, 0.2); + padding: 3px; + border-radius: 11px; + width: 250px !important; + height: 300px; + margin: 50px auto; + background: transparent; } div#error_login { #margin: 0 auto; @@ -260,11 +304,11 @@ div#main_help { width: 100%; padding-left: 0px; padding-top: 0px; - background-color: #fefefe; - background-image: url(../../images/backgrounds/background4.jpg); + background-color: #ffffff; margin-top: 0px; margin-left: 0px; margin-right: 0px; + border-radius: 10px; } div#menu { width: 165px; @@ -300,17 +344,43 @@ div#foot { height: 70px; margin: 0 auto 0 44%; overflow: hidden; - position: fixed; + position: fixed; + display: none; +} + +IMG.login_logo { + border: 0px; + width: 150px; + margin-top: 15px; + margin-bottom: 15px; +} + +input.login:focus { + outline-width: 0; + -moz-box-shadow: 0px 0px 3px 2px #7fbe41; + -webkit-box-shadow: 0px 0px 3px 2px #7fbe41; + box-shadow: 0px 0px 3px 2px #7fbe41; +} + +DIV.login_button { + text-align:right; + width: 144px; + margin: 18px auto; +} + +DIV.login_nick { + +} + +DIV.login_pass { + margin-top: 21px; } #ver_num { - bottom: 0; - height: 20px; - right: 0; - padding-right: 20px; - overflow: hidden; - position: fixed; - color: #696969 + position: relative; + color: #696969; + font-size: xx-small; + margin-top: 32px; } label { display: block; @@ -335,11 +405,13 @@ input.datos_readonly { input.login { border: 0px none; background-color: #ebebeb !important; - margin: 0px 0 8px 20px; + margin: 0px auto; width: 135px; height: 18px; } + + /* FF hack for login inputs */ @-moz-document url-prefix() { input.login{ @@ -404,6 +476,22 @@ input.cancel, input.default, input.filter, input.pdf { } +input.login_user { + /* Browser without multibackground support */ + background: #efefef url(../../images/input_user.png) no-repeat 7px 1px !important; + padding-left: 32px; + width: 106px; + color: #222; +} + +input.login_password { + /* Browser without multibackground support */ + background: #efefef url(../../images/input_lock.png) no-repeat 7px 1px !important; + padding-left: 32px; + width: 106px; + color: #222; +} + input.next { /* Browser without multibackground support */ background: #efefef url(../../images/input_go.png) no-repeat 90% 3px !important; @@ -1395,26 +1483,15 @@ table.databox_grid td { table.alternate tr:nth-child(odd) td{ background-color: #e4e5e4; } -/* Style for login form */ -.databox_login { - #margin-top: 100px !important; - width: 657px !important; - height: 400px; - #margin-bottom: 5px; - #margin-top: 5px; - #margin-left: 0px; - border: none !important; - background-color: #fafafa; - background: url(../../images/splash_pandora.png) no-repeat; -} -/* Style for login form */ + +/* Style for login form .databox_logout { width: 657px !important; height: 400px; border: none !important; background-color: #fafafa; background: url(../../images/splash_logout.png) no-repeat; -} +}*/ .databox_error { width: 657px !important; @@ -2376,6 +2453,7 @@ a.tip { a.tip>img { vertical-align: top !important; margin-left: 2px; + margin-right: 2px; } input.search_input { diff --git a/pandora_console/index.php b/pandora_console/index.php index a4a2f83328..9a5493b04d 100644 --- a/pandora_console/index.php +++ b/pandora_console/index.php @@ -27,7 +27,8 @@ if ($develop_bypass != 1) { // If no config file, automatically try to install if (! file_exists ("include/config.php")) { if (! file_exists ("install.php")) { - include ("general/error_noconfig.php"); + $login_screen = 'error_noconfig'; + require('general/error_screen.php'); exit; } else { @@ -35,26 +36,30 @@ if ($develop_bypass != 1) { exit; } } + if (filesize("include/config.php") == 0) { include ("install.php"); exit; } // Check for installer presence if (file_exists ("install.php")) { - include "general/error_install.php"; + $login_screen = 'error_install'; + require('general/error_screen.php'); exit; } // Check perms for config.php if ((substr (sprintf ('%o', fileperms('include/config.php')), -4) != "0600") && (substr (sprintf ('%o', fileperms('include/config.php')), -4) != "0660") && (substr (sprintf ('%o', fileperms('include/config.php')), -4) != "0640")) { - include "general/error_perms.php"; + $login_screen = 'error_perms'; + require('general/error_screen.php'); exit; } } if ((! file_exists ("include/config.php")) || (! is_readable ("include/config.php"))) { - include ("general/error_noconfig.php"); + $login_screen = 'error_noconfig'; + require('general/error_screen.php'); exit; } diff --git a/pandora_console/operation/users/user_edit.php b/pandora_console/operation/users/user_edit.php index e25a9f67c6..2fb87f59d9 100644 --- a/pandora_console/operation/users/user_edit.php +++ b/pandora_console/operation/users/user_edit.php @@ -24,6 +24,11 @@ include_once($config['homedir'] . '/include/functions_users.php'); include_once ($config['homedir'] . '/include/functions_groups.php'); include_once ($config['homedir'] . '/include/functions_visual_map.php'); +$meta = false; +if(enterprise_installed() && defined("METACONSOLE")) { + $meta = true; +} + $id = get_parameter_get ("id", $config["id_user"]); // ID given as parameter $status = get_parameter ("status", -1); // Flag to print action status message @@ -69,7 +74,7 @@ if (is_ajax ()){ } // Header -if(enterprise_installed() && defined("METACONSOLE")) { +if($meta) { user_meta_print_header(); $url = 'index.php?sec=advanced&sec2=advanced/users_setup&tab=user_edit'; } @@ -278,36 +283,37 @@ else $usr_groups = (users_get_groups($config['id_user'], 'AR', $display_all_group)); $id_usr = $config['id_user']; -$data = array(); -$data[0] = __('Shortcut bar') . ui_print_help_tip(__('This will activate a shortcut bar with alerts, events, messages... information'), true); -$data[1] = __('Home screen'). ui_print_help_tip(__('User can customize the home page. By default, will display \'Agent Detail\'. Example: Select \'Other\' and type sec=estado&sec2=operation/agentes/estado_agente to show agent detail view'), true); -// User only can change skins if has more than one group -if (count($usr_groups) > 1) { - $data[2] = __('Skin'); -} -else { - $data[2] = ''; -} -$table->rowclass[] = ''; -$table->rowstyle[] = 'font-weight: bold;'; -$table->data[] = $data; +if(!$meta) { + $data = array(); + $data[0] = __('Shortcut bar') . ui_print_help_tip(__('This will activate a shortcut bar with alerts, events, messages... information'), true); + $data[1] = __('Home screen'). ui_print_help_tip(__('User can customize the home page. By default, will display \'Agent Detail\'. Example: Select \'Other\' and type sec=estado&sec2=operation/agentes/estado_agente to show agent detail view'), true); + // User only can change skins if has more than one group + if (count($usr_groups) > 1) { + $data[2] = __('Skin'); + } + else { + $data[2] = ''; + } + $table->rowclass[] = ''; + $table->rowstyle[] = 'font-weight: bold;'; + $table->data[] = $data; -$data = array(); -$data[0] = html_print_checkbox('shortcut_bar', 1, $user_info["shortcut"], true); -$values = array ('Default' =>__('Default'), 'Dashboard'=>__('Dashboard'), 'Visual console'=>__('Visual console'), 'Event list'=>__('Event list'), - 'Group view'=>__('Group view'), 'Tactical view'=>__('Tactical view'), 'Alert detail' => __('Alert detail'), 'Other'=>__('Other')); -$data[1] = html_print_select($values, 'section', io_safe_output($user_info["section"]), 'show_data_section();', '', -1, true, false, false); -// User only can change skins if has more than one group -if (count($usr_groups) > 1) { - $data[2] = skins_print_select($id_usr,'skin', $user_info['id_skin'], '', __('None'), 0, true); + $data = array(); + $data[0] = html_print_checkbox('shortcut_bar', 1, $user_info["shortcut"], true); + $values = array ('Default' =>__('Default'), 'Dashboard'=>__('Dashboard'), 'Visual console'=>__('Visual console'), 'Event list'=>__('Event list'), + 'Group view'=>__('Group view'), 'Tactical view'=>__('Tactical view'), 'Alert detail' => __('Alert detail'), 'Other'=>__('Other')); + $data[1] = html_print_select($values, 'section', io_safe_output($user_info["section"]), 'show_data_section();', '', -1, true, false, false); + // User only can change skins if has more than one group + if (count($usr_groups) > 1) { + $data[2] = skins_print_select($id_usr,'skin', $user_info['id_skin'], '', __('None'), 0, true); + } + else { + $data[2] = ''; + } + $table->rowclass[] = ''; + $table->rowstyle[] = ''; + $table->data[] = $data; } -else { - $data[2] = ''; -} -$table->rowclass[] = ''; -$table->rowstyle[] = ''; -$table->data[] = $data; - $data = array(); $data[0] = __('Comments'); diff --git a/pandora_console/pandoradb.oracle.sql b/pandora_console/pandoradb.oracle.sql index 891f0e41e0..6d806f9449 100644 --- a/pandora_console/pandoradb.oracle.sql +++ b/pandora_console/pandoradb.oracle.sql @@ -242,6 +242,9 @@ CREATE TABLE tagente_modulo ( warning_instructions CLOB default '', unknown_instructions CLOB default '', quiet NUMBER(5, 0) default 0 NOT NULL, + critical_instructions VARCHAR2(255) default '', + warning_instructions VARCHAR2(255) default '', + unknown_instructions VARCHAR2(255) default '', critical_inverse NUMBER(1, 0) default 0 NOT NULL, warning_inverse NUMBER(1, 0) default 0 NOT NULL, id_category NUMBER(10, 0) default 0 NOT NULL, @@ -939,6 +942,9 @@ CREATE TABLE tusuario ( login_blocked NUMBER(5,0) default 0 NOT NULL, metaconsole_access VARCHAR2(100) default 'basic' NOT NULL, not_login NUMBER(5,0) default 0 NOT NULL, + metaconsole_agents_manager NUMBER(10, 0) default 0 NOT NULL, + metaconsole_assigned_server NUMBER(10, 0) default 0 NOT NULL, + metaconsole_access_node NUMBER(10, 0) default 0 NOT NULL, CONSTRAINT t_usuario_metaconsole_access_cons CHECK (metaconsole_access IN ('basic','advanced')) ); diff --git a/pandora_console/pandoradb.postgreSQL.sql b/pandora_console/pandoradb.postgreSQL.sql index 0dfdc8b95e..f92a02eadd 100644 --- a/pandora_console/pandoradb.postgreSQL.sql +++ b/pandora_console/pandoradb.postgreSQL.sql @@ -831,6 +831,9 @@ CREATE TABLE "tusuario" ( "failed_attempt" INTEGER NOT NULL DEFAULT 0, "login_blocked" SMALLINT NOT NULL default 0, "not_login" SMALLINT NOT NULL default 0, + "metaconsole_agents_manager" SMALLINT DEFAULT 0, + "metaconsole_assigned_server" INTEGER NOT NULL default 0, + "metaconsole_access_node" SMALLINT DEFAULT 0, "metaconsole_access" type_tusuario_metaconsole_access default 'basic' ); diff --git a/pandora_console/pandoradb.sql b/pandora_console/pandoradb.sql index 7618f7c2b6..40035d816e 100644 --- a/pandora_console/pandoradb.sql +++ b/pandora_console/pandoradb.sql @@ -900,6 +900,9 @@ CREATE TABLE IF NOT EXISTS `tusuario` ( `login_blocked` tinyint(1) unsigned NOT NULL default 0, `metaconsole_access` enum('basic','advanced') default 'basic', `not_login` tinyint(1) unsigned NOT NULL DEFAULT 0, + `metaconsole_agents_manager` tinyint(1) unsigned NOT NULL default 0, + `metaconsole_assigned_server` int(10) unsigned NOT NULL default 0, + `metaconsole_access_node` tinyint(1) unsigned NOT NULL default 0, UNIQUE KEY `id_user` (`id_user`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;