Merge branch 'develop' into ent-12424-aviso-en-thresholds-de-tipo-percentage-que-no-deberia-aparecer
This commit is contained in:
commit
2dec31485a
|
@ -184,14 +184,14 @@ if [[ $OS_RELEASE =~ 'rhel' ]] || [[ $OS_RELEASE =~ 'fedora' ]]; then
|
|||
echo -e "${cyan}Installing agent dependencies...${reset}" ${green}OK${reset}
|
||||
|
||||
# Insatall pandora agent
|
||||
[ "$PANDORA_AGENT_PACKAGE_EL" ] || PANDORA_AGENT_PACKAGE_EL="https://firefly.pandorafms.com/pandorafms/latest/RHEL_CentOS/pandorafms_agent_linux_bin-7.0NG.x86_64.rpm "
|
||||
[ "$PANDORA_AGENT_PACKAGE_EL" ] || PANDORA_AGENT_PACKAGE_EL="https://firefly.pandorafms.com/pandorafms/latest/RHEL_CentOS/pandorafms_agent_linux_bin-7.0NG.x86_64.rpm"
|
||||
execute_cmd "$package_manager_cmd install -y ${PANDORA_AGENT_PACKAGE_EL}" 'Installing Pandora FMS agent package'
|
||||
#[[ $PANDORA_AGENT_SSL ]] && execute_cmd "$package_manager_cmd install -y perl-IO-Socket-SSL" "Installing SSL libraries for encrypted connection"
|
||||
|
||||
fi
|
||||
|
||||
if [[ $OS_RELEASE == 'debian' ]]; then
|
||||
[ "$PANDORA_AGENT_PACKAGE_UBUNTU" ] || PANDORA_AGENT_PACKAGE_UBUNTU='https://firefly.pandorafms.com/pandorafms/latest/Tarball/pandorafms_agent_linux-7.0NG_x86_64.tar.gz'
|
||||
[ "$PANDORA_AGENT_PACKAGE_UBUNTU" ] || PANDORA_AGENT_PACKAGE_UBUNTU='https://firefly.pandorafms.com/pandorafms/latest/Tarball/pandorafms_agent_linux-7.0NG.x86_64.tar.gz'
|
||||
execute_cmd "apt update" 'Updating repos'
|
||||
execute_cmd "apt install -y perl wget curl unzip procps python3 python3-pip" 'Installing agent dependencies'
|
||||
execute_cmd "curl --output pandorafms_agent_linux-7.0NG.tar.gz ${PANDORA_AGENT_PACKAGE_UBUNTU}" 'Downloading Pandora FMS agent package'
|
||||
|
|
|
@ -11,7 +11,7 @@ PANDORA_SERVER_CONF=/etc/pandora/pandora_server.conf
|
|||
PANDORA_AGENT_CONF=/etc/pandora/pandora_agent.conf
|
||||
|
||||
|
||||
S_VERSION='2023062901'
|
||||
S_VERSION='2023101101'
|
||||
LOGFILE="/tmp/pandora-deploy-community-$(date +%F).log"
|
||||
|
||||
# define default variables
|
||||
|
@ -185,7 +185,7 @@ extra_repos=" \
|
|||
tar \
|
||||
yum-utils \
|
||||
https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm \
|
||||
http://rpms.remirepo.net/enterprise/remi-release-7.rpm \
|
||||
https://rpms.remirepo.net/enterprise/remi-release-7.rpm \
|
||||
https://repo.percona.com/yum/percona-release-latest.noarch.rpm"
|
||||
|
||||
execute_cmd "yum install -y $extra_repos" "Installing extra repositories"
|
||||
|
@ -285,6 +285,7 @@ console_dependencies=" \
|
|||
mod_ssl \
|
||||
libzstd \
|
||||
openldap-clients \
|
||||
https://firefly.pandorafms.com/centos8/pandora_gotty-1.0-1.el8.x86_64.rpm \
|
||||
chromium"
|
||||
execute_cmd "yum install -y $console_dependencies" "Installing Pandora FMS Console dependencies"
|
||||
|
||||
|
@ -312,7 +313,7 @@ server_dependencies=" \
|
|||
bind-utils \
|
||||
whois \
|
||||
cpanminus \
|
||||
http://firefly.pandorafms.com/centos7/wmic-1.4-1.el7.x86_64.rpm \
|
||||
https://firefly.pandorafms.com/centos7/wmic-1.4-1.el7.x86_64.rpm \
|
||||
https://firefly.pandorafms.com/centos7/pandorawmic-1.0.0-1.x86_64.rpm"
|
||||
execute_cmd "yum install -y $server_dependencies" "Installing Pandora FMS Server dependencies"
|
||||
|
||||
|
@ -322,13 +323,13 @@ execute_cmd "cpanm -i Thread::Semaphore" "Installing Thread::Semaphore"
|
|||
|
||||
# SDK VMware perl dependencies
|
||||
vmware_dependencies=" \
|
||||
http://firefly.pandorafms.com/centos8/VMware-vSphere-Perl-SDK-6.5.0-4566394.x86_64.rpm \
|
||||
https://firefly.pandorafms.com/centos8/VMware-vSphere-Perl-SDK-6.5.0-4566394.x86_64.rpm \
|
||||
perl-JSON \
|
||||
perl-Archive-Zip \
|
||||
openssl-devel \
|
||||
perl-Crypt-CBC \
|
||||
perl-Digest-SHA \
|
||||
http://firefly.pandorafms.com/centos7/perl-Crypt-OpenSSL-AES-0.02-1.el7.x86_64.rpm"
|
||||
https://firefly.pandorafms.com/centos7/perl-Crypt-OpenSSL-AES-0.02-1.el7.x86_64.rpm"
|
||||
execute_cmd "yum install -y $vmware_dependencies" "Installing SDK VMware perl dependencies"
|
||||
|
||||
# Instant client Oracle
|
||||
|
@ -410,7 +411,7 @@ skip-character-set-client-handshake
|
|||
# Disabling symbolic-links is recommended to prevent assorted security risks
|
||||
symbolic-links=0
|
||||
# Mysql optimizations for Pandora FMS
|
||||
# Please check the documentation in http://pandorafms.com for better results
|
||||
# Please check the documentation in https://pandorafms.com for better results
|
||||
|
||||
max_allowed_packet = 64M
|
||||
innodb_buffer_pool_size = $POOL_SIZE
|
||||
|
@ -461,20 +462,20 @@ export MYSQL_PWD=$DBPASS
|
|||
#Define packages
|
||||
#Define packages
|
||||
if [ "$PANDORA_LTS" -eq '1' ] ; then
|
||||
[ "$PANDORA_SERVER_PACKAGE" ] || PANDORA_SERVER_PACKAGE="http://firefly.pandorafms.com/pandorafms/latest/RHEL_CentOS/LTS/pandorafms_server-7.0NG.noarch.rpm"
|
||||
[ "$PANDORA_CONSOLE_PACKAGE" ] || PANDORA_CONSOLE_PACKAGE="http://firefly.pandorafms.com/pandorafms/latest/RHEL_CentOS/LTS/pandorafms_console-7.0NG.noarch.rpm"
|
||||
[ "$PANDORA_AGENT_PACKAGE" ] || PANDORA_AGENT_PACKAGE="http://firefly.pandorafms.com/pandorafms/latest/RHEL_CentOS/LTS/pandorafms_agent_linux-7.0NG.noarch.rpm"
|
||||
[ "$PANDORA_SERVER_PACKAGE" ] || PANDORA_SERVER_PACKAGE="https://firefly.pandorafms.com/pandorafms/latest/RHEL_CentOS/LTS/pandorafms_server-7.0NG.noarch.rpm"
|
||||
[ "$PANDORA_CONSOLE_PACKAGE" ] || PANDORA_CONSOLE_PACKAGE="https://firefly.pandorafms.com/pandorafms/latest/RHEL_CentOS/LTS/pandorafms_console-7.0NG.noarch.rpm"
|
||||
[ "$PANDORA_AGENT_PACKAGE" ] || PANDORA_AGENT_PACKAGE="https://firefly.pandorafms.com/pandorafms/latest/RHEL_CentOS/LTS/pandorafms_agent_linux-7.0NG.noarch.rpm"
|
||||
elif [ "$PANDORA_LTS" -ne '1' ] ; then
|
||||
[ "$PANDORA_SERVER_PACKAGE" ] || PANDORA_SERVER_PACKAGE="http://firefly.pandorafms.com/pandorafms/latest/RHEL_CentOS/pandorafms_server-7.0NG.noarch.rpm"
|
||||
[ "$PANDORA_CONSOLE_PACKAGE" ] || PANDORA_CONSOLE_PACKAGE="http://firefly.pandorafms.com/pandorafms/latest/RHEL_CentOS/pandorafms_console-7.0NG.noarch.rpm"
|
||||
[ "$PANDORA_AGENT_PACKAGE" ] || PANDORA_AGENT_PACKAGE="http://firefly.pandorafms.com/pandorafms/latest/RHEL_CentOS/pandorafms_agent_linux-7.0NG.noarch.rpm"
|
||||
[ "$PANDORA_SERVER_PACKAGE" ] || PANDORA_SERVER_PACKAGE="https://firefly.pandorafms.com/pandorafms/latest/RHEL_CentOS/pandorafms_server-7.0NG.x86_64.rpm"
|
||||
[ "$PANDORA_CONSOLE_PACKAGE" ] || PANDORA_CONSOLE_PACKAGE="https://firefly.pandorafms.com/pandorafms/latest/RHEL_CentOS/pandorafms_console-7.0NG.x86_64.rpm"
|
||||
[ "$PANDORA_AGENT_PACKAGE" ] || PANDORA_AGENT_PACKAGE="https://firefly.pandorafms.com/pandorafms/latest/RHEL_CentOS/pandorafms_agent_linux-7.0NG.noarch.rpm"
|
||||
fi
|
||||
|
||||
# if beta is enable
|
||||
if [ "$PANDORA_BETA" -eq '1' ] ; then
|
||||
PANDORA_SERVER_PACKAGE="http://firefly.pandorafms.com/pandora_enterprise_nightlies/pandorafms_server-latest.x86_64.rpm"
|
||||
PANDORA_CONSOLE_PACKAGE="http://firefly.pandorafms.com/pandora_enterprise_nightlies/pandorafms_console-latest.noarch.rpm"
|
||||
PANDORA_AGENT_PACKAGE="http://firefly.pandorafms.com/pandorafms/latest/RHEL_CentOS/pandorafms_agent_linux-7.0NG.noarch.rpm"
|
||||
PANDORA_SERVER_PACKAGE="https://firefly.pandorafms.com/pandora_enterprise_nightlies/pandorafms_server-latest.x86_64.rpm"
|
||||
PANDORA_CONSOLE_PACKAGE="https://firefly.pandorafms.com/pandora_enterprise_nightlies/pandorafms_console-latest.x86_64.rpm"
|
||||
PANDORA_AGENT_PACKAGE="https://firefly.pandorafms.com/pandorafms/latest/RHEL_CentOS/pandorafms_agent_linux-7.0NG.noarch.rpm"
|
||||
fi
|
||||
|
||||
# Downloading Pandora Packages
|
||||
|
@ -710,8 +711,8 @@ systemctl enable tentacle_serverd &>> $LOGFILE
|
|||
execute_cmd "service tentacle_serverd start" "Starting Tentacle Server"
|
||||
|
||||
# Enabling condole cron
|
||||
execute_cmd "echo \"* * * * * root wget -q -O - --no-check-certificate --load-cookies /tmp/cron-session-cookies --save-cookies /tmp/cron-session-cookies --keep-session-cookies http://127.0.0.1/pandora_console/enterprise/cron.php >> $PANDORA_CONSOLE/log/cron.log\" >> /etc/crontab" "Enabling Pandora FMS Console cron"
|
||||
echo "* * * * * root wget -q -O - --no-check-certificate --load-cookies /tmp/cron-session-cookies --save-cookies /tmp/cron-session-cookies --keep-session-cookies http://127.0.0.1/pandora_console/enterprise/cron.php >> $PANDORA_CONSOLE/log/cron.log" >> /etc/crontab
|
||||
execute_cmd "echo \"* * * * * root wget -q -O - --no-check-certificate --load-cookies /tmp/cron-session-cookies --save-cookies /tmp/cron-session-cookies --keep-session-cookies http://127.0.0.1/pandora_console/cron.php >> $PANDORA_CONSOLE/log/cron.log\" >> /etc/crontab" "Enabling Pandora FMS Console cron"
|
||||
echo "* * * * * root wget -q -O - --no-check-certificate --load-cookies /tmp/cron-session-cookies --save-cookies /tmp/cron-session-cookies --keep-session-cookies http://127.0.0.1/pandora_console/cron.php >> $PANDORA_CONSOLE/log/cron.log" >> /etc/crontab
|
||||
## Enabling agent
|
||||
systemctl enable pandora_agent_daemon &>> $LOGFILE
|
||||
execute_cmd "systemctl start pandora_agent_daemon" "Starting Pandora FMS Agent"
|
||||
|
@ -729,7 +730,7 @@ Welcome to Pandora FMS appliance on CentOS
|
|||
Go to Public http://$ipplublic/pandora_console to login web console
|
||||
$(ip addr | grep -w "inet" | grep -v "127.0.0.1" | grep -v "172.17.0.1" | awk '{print $2}' | awk -F '/' '{print "Go to Local http://"$1"/pandora_console to login web console"}')
|
||||
|
||||
You can find more information at http://pandorafms.com
|
||||
You can find more information at https://pandorafms.com
|
||||
|
||||
EOF_banner
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@ PANDORA_SERVER_CONF=/etc/pandora/pandora_server.conf
|
|||
PANDORA_AGENT_CONF=/etc/pandora/pandora_agent.conf
|
||||
|
||||
|
||||
S_VERSION='2023062901'
|
||||
S_VERSION='2023101101'
|
||||
LOGFILE="/tmp/pandora-deploy-community-$(date +%F).log"
|
||||
|
||||
# define default variables
|
||||
|
@ -264,7 +264,7 @@ if [ "$(grep -Ei 'Red Hat Enterprise' /etc/redhat-release)" ]; then
|
|||
tar \
|
||||
dnf-utils \
|
||||
https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm \
|
||||
http://rpms.remirepo.net/enterprise/remi-release-8.rpm \
|
||||
https://rpms.remirepo.net/enterprise/remi-release-8.rpm \
|
||||
https://repo.percona.com/yum/percona-release-latest.noarch.rpm"
|
||||
|
||||
execute_cmd "dnf install -y $extra_repos" "Installing extra repositories"
|
||||
|
@ -275,7 +275,7 @@ else
|
|||
tar \
|
||||
dnf-utils \
|
||||
epel-release \
|
||||
http://rpms.remirepo.net/enterprise/remi-release-8.rpm \
|
||||
https://rpms.remirepo.net/enterprise/remi-release-8.rpm \
|
||||
https://repo.percona.com/yum/percona-release-latest.noarch.rpm"
|
||||
|
||||
execute_cmd "dnf install -y $extra_repos" "Installing extra repositories"
|
||||
|
@ -391,10 +391,12 @@ console_dependencies=" \
|
|||
mod_ssl \
|
||||
libzstd \
|
||||
openldap-clients \
|
||||
http://firefly.pandorafms.com/centos8/chromium-110.0.5481.177-1.el7.x86_64.rpm \
|
||||
http://firefly.pandorafms.com/centos8/chromium-common-110.0.5481.177-1.el7.x86_64.rpm \
|
||||
http://firefly.pandorafms.com/centos8/perl-Net-Telnet-3.04-1.el8.noarch.rpm \
|
||||
http://firefly.pandorafms.com/centos7/wmic-1.4-1.el7.x86_64.rpm"
|
||||
https://firefly.pandorafms.com/centos8/chromium-110.0.5481.177-1.el7.x86_64.rpm \
|
||||
https://firefly.pandorafms.com/centos8/chromium-common-110.0.5481.177-1.el7.x86_64.rpm \
|
||||
https://firefly.pandorafms.com/centos8/perl-Net-Telnet-3.04-1.el8.noarch.rpm \
|
||||
https://firefly.pandorafms.com/centos8/pandora_gotty-1.0-1.el8.x86_64.rpm \
|
||||
https://firefly.pandorafms.com/centos8/pandorafms_made-0.1.0-1.el8.x86_64.rpm \
|
||||
https://firefly.pandorafms.com/centos7/wmic-1.4-1.el7.x86_64.rpm"
|
||||
execute_cmd "dnf install -y $console_dependencies" "Installing Pandora FMS Console dependencies"
|
||||
|
||||
# Server dependencies
|
||||
|
@ -421,7 +423,7 @@ server_dependencies=" \
|
|||
bind-utils \
|
||||
whois \
|
||||
libnsl \
|
||||
http://firefly.pandorafms.com/centos7/wmic-1.4-1.el7.x86_64.rpm \
|
||||
https://firefly.pandorafms.com/centos7/wmic-1.4-1.el7.x86_64.rpm \
|
||||
https://firefly.pandorafms.com/centos8/pandorawmic-1.0.0-1.x86_64.rpm"
|
||||
execute_cmd "dnf install -y $server_dependencies" "Installing Pandora FMS Server dependencies"
|
||||
|
||||
|
@ -436,8 +438,8 @@ vmware_dependencies=" \
|
|||
perl-Math-Random-ISAAC \
|
||||
perl-JSON \
|
||||
perl-Crypt-SSLeay \
|
||||
http://firefly.pandorafms.com/centos8/perl-Crypt-OpenSSL-AES-0.02-1.el8.x86_64.rpm \
|
||||
http://firefly.pandorafms.com/centos8/VMware-vSphere-Perl-SDK-6.5.0-4566394.x86_64.rpm"
|
||||
https://firefly.pandorafms.com/centos8/perl-Crypt-OpenSSL-AES-0.02-1.el8.x86_64.rpm \
|
||||
https://firefly.pandorafms.com/centos8/VMware-vSphere-Perl-SDK-6.5.0-4566394.x86_64.rpm"
|
||||
execute_cmd "dnf install -y $vmware_dependencies" "Installing SDK VMware perl dependencies"
|
||||
|
||||
# Instant client Oracle
|
||||
|
@ -518,7 +520,7 @@ skip-character-set-client-handshake
|
|||
# Disabling symbolic-links is recommended to prevent assorted security risks
|
||||
symbolic-links=0
|
||||
# Mysql optimizations for Pandora FMS
|
||||
# Please check the documentation in http://pandorafms.com for better results
|
||||
# Please check the documentation in https://pandorafms.com for better results
|
||||
|
||||
max_allowed_packet = 64M
|
||||
innodb_buffer_pool_size = $POOL_SIZE
|
||||
|
@ -567,20 +569,20 @@ export MYSQL_PWD=$DBPASS
|
|||
|
||||
#Define packages
|
||||
if [ "$PANDORA_LTS" -eq '1' ] ; then
|
||||
[ "$PANDORA_SERVER_PACKAGE" ] || PANDORA_SERVER_PACKAGE="http://firefly.pandorafms.com/pandorafms/latest/RHEL_CentOS/LTS/pandorafms_server-7.0NG.noarch.rpm"
|
||||
[ "$PANDORA_CONSOLE_PACKAGE" ] || PANDORA_CONSOLE_PACKAGE="http://firefly.pandorafms.com/pandorafms/latest/RHEL_CentOS/LTS/pandorafms_console-7.0NG.noarch.rpm"
|
||||
[ "$PANDORA_AGENT_PACKAGE" ] || PANDORA_AGENT_PACKAGE="http://firefly.pandorafms.com/pandorafms/latest/RHEL_CentOS/LTS/pandorafms_agent_linux-7.0NG.noarch.rpm"
|
||||
[ "$PANDORA_SERVER_PACKAGE" ] || PANDORA_SERVER_PACKAGE="https://firefly.pandorafms.com/pandorafms/latest/RHEL_CentOS/LTS/pandorafms_server-7.0NG.noarch.rpm"
|
||||
[ "$PANDORA_CONSOLE_PACKAGE" ] || PANDORA_CONSOLE_PACKAGE="https://firefly.pandorafms.com/pandorafms/latest/RHEL_CentOS/LTS/pandorafms_console-7.0NG.noarch.rpm"
|
||||
[ "$PANDORA_AGENT_PACKAGE" ] || PANDORA_AGENT_PACKAGE="https://firefly.pandorafms.com/pandorafms/latest/RHEL_CentOS/pandorafms_agent_linux_bin-7.0NG.x86_64.rpm"
|
||||
elif [ "$PANDORA_LTS" -ne '1' ] ; then
|
||||
[ "$PANDORA_SERVER_PACKAGE" ] || PANDORA_SERVER_PACKAGE="http://firefly.pandorafms.com/pandorafms/latest/RHEL_CentOS/pandorafms_server-7.0NG.noarch.rpm"
|
||||
[ "$PANDORA_CONSOLE_PACKAGE" ] || PANDORA_CONSOLE_PACKAGE="http://firefly.pandorafms.com/pandorafms/latest/RHEL_CentOS/pandorafms_console-7.0NG.noarch.rpm"
|
||||
[ "$PANDORA_AGENT_PACKAGE" ] || PANDORA_AGENT_PACKAGE="http://firefly.pandorafms.com/pandorafms/latest/RHEL_CentOS/pandorafms_agent_linux-7.0NG.noarch.rpm"
|
||||
[ "$PANDORA_SERVER_PACKAGE" ] || PANDORA_SERVER_PACKAGE="https://firefly.pandorafms.com/pandorafms/latest/RHEL_CentOS/pandorafms_server-7.0NG.x86_64.rpm"
|
||||
[ "$PANDORA_CONSOLE_PACKAGE" ] || PANDORA_CONSOLE_PACKAGE="https://firefly.pandorafms.com/pandorafms/latest/RHEL_CentOS/pandorafms_console-7.0NG.x86_64.rpm"
|
||||
[ "$PANDORA_AGENT_PACKAGE" ] || PANDORA_AGENT_PACKAGE="https://firefly.pandorafms.com/pandorafms/latest/RHEL_CentOS/pandorafms_agent_linux_bin-7.0NG.x86_64.rpm"
|
||||
fi
|
||||
|
||||
# if beta is enable
|
||||
if [ "$PANDORA_BETA" -eq '1' ] ; then
|
||||
PANDORA_SERVER_PACKAGE="http://firefly.pandorafms.com/pandora_enterprise_nightlies/pandorafms_server-latest.x86_64.rpm"
|
||||
PANDORA_CONSOLE_PACKAGE="http://firefly.pandorafms.com/pandora_enterprise_nightlies/pandorafms_console-latest.noarch.rpm"
|
||||
PANDORA_AGENT_PACKAGE="http://firefly.pandorafms.com/pandorafms/latest/RHEL_CentOS/pandorafms_agent_linux-7.0NG.noarch.rpm"
|
||||
PANDORA_SERVER_PACKAGE="https://firefly.pandorafms.com/pandora_enterprise_nightlies/pandorafms_server-latest.x86_64.rpm"
|
||||
PANDORA_CONSOLE_PACKAGE="https://firefly.pandorafms.com/pandora_enterprise_nightlies/pandorafms_console-latest.x86_64.rpm"
|
||||
PANDORA_AGENT_PACKAGE="https://firefly.pandorafms.com/pandorafms/latest/RHEL_CentOS/pandorafms_agent_linux_bin-7.0NG.x86_64.rpm"
|
||||
fi
|
||||
|
||||
# Downloading Pandora Packages
|
||||
|
@ -828,8 +830,8 @@ systemctl enable tentacle_serverd &>> "$LOGFILE"
|
|||
execute_cmd "service tentacle_serverd start" "Starting Tentacle Server"
|
||||
|
||||
# Enabling condole cron
|
||||
execute_cmd "echo \"* * * * * root wget -q -O - --no-check-certificate --load-cookies /tmp/cron-session-cookies --save-cookies /tmp/cron-session-cookies --keep-session-cookies http://127.0.0.1/pandora_console/enterprise/cron.php >> $PANDORA_CONSOLE/log/cron.log\" >> /etc/crontab" "Enabling Pandora FMS Console cron"
|
||||
echo "* * * * * root wget -q -O - --no-check-certificate --load-cookies /tmp/cron-session-cookies --save-cookies /tmp/cron-session-cookies --keep-session-cookies http://127.0.0.1/pandora_console/enterprise/cron.php >> $PANDORA_CONSOLE/log/cron.log" >> /etc/crontab
|
||||
execute_cmd "echo \"* * * * * root wget -q -O - --no-check-certificate --load-cookies /tmp/cron-session-cookies --save-cookies /tmp/cron-session-cookies --keep-session-cookies http://127.0.0.1/pandora_console/cron.php >> $PANDORA_CONSOLE/log/cron.log\" >> /etc/crontab" "Enabling Pandora FMS Console cron"
|
||||
echo "* * * * * root wget -q -O - --no-check-certificate --load-cookies /tmp/cron-session-cookies --save-cookies /tmp/cron-session-cookies --keep-session-cookies http://127.0.0.1/pandora_console/cron.php >> $PANDORA_CONSOLE/log/cron.log" >> /etc/crontab
|
||||
## Enabling agent
|
||||
systemctl enable pandora_agent_daemon &>> "$LOGFILE"
|
||||
execute_cmd "systemctl start pandora_agent_daemon" "Starting Pandora FMS Agent"
|
||||
|
|
|
@ -344,6 +344,14 @@ execute_cmd "apt install -y $server_dependencies" "Installing Pandora FMS Server
|
|||
|
||||
execute_cmd "installing_docker" "Installing Docker for debug"
|
||||
|
||||
# Installing pandora_gotty
|
||||
execute_cmd "curl --output pandora_gotty.deb https://firefly.pandorafms.com/ubuntu/pandora_gotty_1.0.0.deb" "Downloading pandora_gotty"
|
||||
execute_cmd "apt install -y ./pandora_gotty.deb" "Intalling pandora_gotty"
|
||||
|
||||
# Installing MADE
|
||||
execute_cmd "curl --output pandora_made.deb https://firefly.pandorafms.com/ubuntu/pandorafms-made_0.1.0-2_amd64.deb" "Downloading pandora MADE"
|
||||
execute_cmd "apt install -y ./pandora_made.deb" "Intalling pandora MADE"
|
||||
|
||||
# wmic and pandorawmic
|
||||
execute_cmd "curl -O https://firefly.pandorafms.com/pandorafms/utils/bin/wmic" "Downloading wmic"
|
||||
execute_cmd "curl -O https://firefly.pandorafms.com/pandorafms/utils/bin/pandorawmic" "Downloading pandorawmic"
|
||||
|
@ -514,17 +522,17 @@ execute_cmd "systemctl restart mysql" "Configuring and restarting database engin
|
|||
if [ "$PANDORA_LTS" -eq '1' ] ; then
|
||||
[ "$PANDORA_SERVER_PACKAGE" ] || PANDORA_SERVER_PACKAGE="http://firefly.pandorafms.com/pandorafms/latest/Tarball/LTS/pandorafms_server-7.0NG.tar.gz"
|
||||
[ "$PANDORA_CONSOLE_PACKAGE" ] || PANDORA_CONSOLE_PACKAGE="http://firefly.pandorafms.com/pandorafms/latest/Tarball/LTS/pandorafms_console-7.0NG.tar.gz"
|
||||
[ "$PANDORA_AGENT_PACKAGE" ] || PANDORA_AGENT_PACKAGE="http://firefly.pandorafms.com/pandorafms/latest/Tarball/LTS/pandorafms_agent_linux-7.0NG.tar.gz"
|
||||
[ "$PANDORA_AGENT_PACKAGE" ] || PANDORA_AGENT_PACKAGE="https://firefly.pandorafms.com/pandorafms/latest/Tarball/pandorafms_agent_linux-7.0NG.x86_64.tar.gz"
|
||||
elif [ "$PANDORA_LTS" -ne '1' ] ; then
|
||||
[ "$PANDORA_SERVER_PACKAGE" ] || PANDORA_SERVER_PACKAGE="http://firefly.pandorafms.com/pandorafms/latest/Tarball/pandorafms_server-7.0NG.tar.gz"
|
||||
[ "$PANDORA_CONSOLE_PACKAGE" ] || PANDORA_CONSOLE_PACKAGE="http://firefly.pandorafms.com/pandorafms/latest/Tarball/pandorafms_console-7.0NG.tar.gz"
|
||||
[ "$PANDORA_AGENT_PACKAGE" ] || PANDORA_AGENT_PACKAGE="http://firefly.pandorafms.com/pandorafms/latest/Tarball/pandorafms_agent_linux-7.0NG.tar.gz"
|
||||
[ "$PANDORA_AGENT_PACKAGE" ] || PANDORA_AGENT_PACKAGE=" https://firefly.pandorafms.com/pandorafms/latest/Tarball/pandorafms_agent_linux-7.0NG.x86_64.tar.gz"
|
||||
fi
|
||||
|
||||
if [ "$PANDORA_BETA" -eq '1' ] ; then
|
||||
PANDORA_SERVER_PACKAGE="http://firefly.pandorafms.com/pandora_enterprise_nightlies/pandorafms_server-latest_x86_64.tar.gz"
|
||||
PANDORA_SERVER_PACKAGE="http://firefly.pandorafms.com/pandora_enterprise_nightlies/pandorafms_server-latest.tar.gz"
|
||||
PANDORA_CONSOLE_PACKAGE="http://firefly.pandorafms.com/pandora_enterprise_nightlies/pandorafms_console-latest.tar.gz"
|
||||
PANDORA_AGENT_PACKAGE="http://firefly.pandorafms.com/pandorafms/latest/Tarball/pandorafms_agent_linux-7.0NG.tar.gz"
|
||||
PANDORA_AGENT_PACKAGE="https://firefly.pandorafms.com/pandorafms/latest/Tarball/pandorafms_agent_linux-7.0NG.x86_64.tar.gz"
|
||||
fi
|
||||
|
||||
# Downloading Pandora Packages
|
||||
|
@ -819,8 +827,8 @@ execute_cmd "service tentacle_serverd start" "Starting Tentacle Server"
|
|||
systemctl enable tentacle_serverd &>> "$LOGFILE"
|
||||
|
||||
# Enabling console cron
|
||||
execute_cmd "echo \"* * * * * root wget -q -O - --no-check-certificate --load-cookies /tmp/cron-session-cookies --save-cookies /tmp/cron-session-cookies --keep-session-cookies http://127.0.0.1/pandora_console/enterprise/cron.php >> $PANDORA_CONSOLE/log/cron.log\" >> /etc/crontab" "Enabling Pandora FMS Console cron"
|
||||
echo "* * * * * root wget -q -O - --no-check-certificate --load-cookies /tmp/cron-session-cookies --save-cookies /tmp/cron-session-cookies --keep-session-cookies http://127.0.0.1/pandora_console/enterprise/cron.php >> $PANDORA_CONSOLE/log/cron.log" >> /etc/crontab
|
||||
execute_cmd "echo \"* * * * * root wget -q -O - --no-check-certificate --load-cookies /tmp/cron-session-cookies --save-cookies /tmp/cron-session-cookies --keep-session-cookies http://127.0.0.1/pandora_console/cron.php >> $PANDORA_CONSOLE/log/cron.log\" >> /etc/crontab" "Enabling Pandora FMS Console cron"
|
||||
echo "* * * * * root wget -q -O - --no-check-certificate --load-cookies /tmp/cron-session-cookies --save-cookies /tmp/cron-session-cookies --keep-session-cookies http://127.0.0.1/pandora_console/cron.php >> $PANDORA_CONSOLE/log/cron.log" >> /etc/crontab
|
||||
|
||||
# Enabling pandoradb cron
|
||||
execute_cmd "echo 'enabling pandoradb cron' >> $PANDORA_CONSOLE/log/cron.log\" >> /etc/crontab" "Enabling Pandora FMS pandoradb cron"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
package: pandorafms-agent-unix
|
||||
Version: 7.0NG.774-231113
|
||||
Version: 7.0NG.774-231128
|
||||
Architecture: all
|
||||
Priority: optional
|
||||
Section: admin
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
pandora_version="7.0NG.774-231113"
|
||||
pandora_version="7.0NG.774-231128"
|
||||
|
||||
echo "Test if you has the tools for to make the packages."
|
||||
whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null
|
||||
|
|
|
@ -271,7 +271,7 @@ module_plugin pandora_netusage
|
|||
module_plugin autodiscover --default
|
||||
|
||||
# Plugin for inventory on the agent.
|
||||
#module_plugin inventory 1 cpu ram video nic hd cdrom software init_services filesystem users route vulnerabilities
|
||||
#module_plugin inventory 1 cpu ram video nic hd cdrom software init_services filesystem users route
|
||||
|
||||
# Log collection modules. This will collect log files for forensic analysis and store everything
|
||||
# This is for LOG monitoring. Different than log monitoring.
|
||||
|
|
|
@ -1039,7 +1039,7 @@ my $Sem = undef;
|
|||
my $ThreadSem = undef;
|
||||
|
||||
use constant AGENT_VERSION => '7.0NG.774';
|
||||
use constant AGENT_BUILD => '231113';
|
||||
use constant AGENT_BUILD => '231128';
|
||||
|
||||
# Agent log default file size maximum and instances
|
||||
use constant DEFAULT_MAX_LOG_SIZE => 600000;
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
%global __os_install_post %{nil}
|
||||
%define name pandorafms_agent_linux
|
||||
%define version 7.0NG.774
|
||||
%define release 231113
|
||||
%define release 231128
|
||||
|
||||
Summary: Pandora FMS Linux agent, PERL version
|
||||
Name: %{name}
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
%define name pandorafms_agent_linux_bin
|
||||
%define source_name pandorafms_agent_linux
|
||||
%define version 7.0NG.774
|
||||
%define release 231113
|
||||
%define release 231128
|
||||
%define debug_package %{nil}
|
||||
|
||||
Summary: Pandora FMS Linux agent, binary version
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
%define name pandorafms_agent_linux_bin
|
||||
%define source_name pandorafms_agent_linux
|
||||
%define version 7.0NG.774
|
||||
%define release 231113
|
||||
%define release 231128
|
||||
%define debug_package %{nil}
|
||||
|
||||
Summary: Pandora FMS Linux agent, binary version
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
%define name pandorafms_agent_linux_bin
|
||||
%define source_name pandorafms_agent_linux
|
||||
%define version 7.0NG.774
|
||||
%define release 231113
|
||||
%define release 231128
|
||||
|
||||
Summary: Pandora FMS Linux agent, binary version
|
||||
Name: %{name}
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
%global __os_install_post %{nil}
|
||||
%define name pandorafms_agent_linux
|
||||
%define version 7.0NG.774
|
||||
%define release 231113
|
||||
%define release 231128
|
||||
|
||||
Summary: Pandora FMS Linux agent, PERL version
|
||||
Name: %{name}
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
# **********************************************************************
|
||||
|
||||
PI_VERSION="7.0NG.774"
|
||||
PI_BUILD="231113"
|
||||
PI_BUILD="231128"
|
||||
OS_NAME=`uname -s`
|
||||
|
||||
FORCE=0
|
||||
|
|
|
@ -186,7 +186,7 @@ UpgradeApplicationID
|
|||
{}
|
||||
|
||||
Version
|
||||
{231113}
|
||||
{231128}
|
||||
|
||||
ViewReadme
|
||||
{Yes}
|
||||
|
|
|
@ -30,7 +30,7 @@ using namespace Pandora;
|
|||
using namespace Pandora_Strutils;
|
||||
|
||||
#define PATH_SIZE _MAX_PATH+1
|
||||
#define PANDORA_VERSION ("7.0NG.774 Build 231113")
|
||||
#define PANDORA_VERSION ("7.0NG.774 Build 231128")
|
||||
|
||||
string pandora_path;
|
||||
string pandora_dir;
|
||||
|
|
|
@ -11,7 +11,7 @@ BEGIN
|
|||
VALUE "LegalCopyright", "Pandora FMS"
|
||||
VALUE "OriginalFilename", "PandoraAgent.exe"
|
||||
VALUE "ProductName", "Pandora FMS Windows Agent"
|
||||
VALUE "ProductVersion", "(7.0NG.774(Build 231113))"
|
||||
VALUE "ProductVersion", "(7.0NG.774(Build 231128))"
|
||||
VALUE "FileVersion", "1.0.0.0"
|
||||
END
|
||||
END
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
package: pandorafms-console
|
||||
Version: 7.0NG.774-231113
|
||||
Version: 7.0NG.774-231128
|
||||
Architecture: all
|
||||
Priority: optional
|
||||
Section: admin
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
pandora_version="7.0NG.774-231113"
|
||||
pandora_version="7.0NG.774-231128"
|
||||
|
||||
package_pear=0
|
||||
package_pandora=1
|
||||
|
|
|
@ -27,17 +27,18 @@
|
|||
*/
|
||||
|
||||
global $config;
|
||||
if (true) {
|
||||
include_once '../include/config.php';
|
||||
include_once '../include/functions_agents.php';
|
||||
include_once '../include/functions_reporting.php';
|
||||
include_once '../include/functions_modules.php';
|
||||
include_once '../include/functions_users.php';
|
||||
if ((bool) $config['metaconsole']) {
|
||||
include_once $config['homedir'].'/include/config.php';
|
||||
include_once $config['homedir'].'/include/functions_agents.php';
|
||||
include_once $config['homedir'].'/include/functions_reporting.php';
|
||||
include_once $config['homedir'].'/include/functions_modules.php';
|
||||
include_once $config['homedir'].'/include/functions_users.php';
|
||||
} else {
|
||||
include_once '../include/config.php';
|
||||
include_once '../include/functions_agents.php';
|
||||
include_once '../include/functions_reporting.php';
|
||||
include_once '../include/functions_modules.php';
|
||||
include_once '../include/functions_users.php';
|
||||
}
|
||||
|
||||
|
||||
|
@ -106,7 +107,25 @@ if ($get_agents_module_csv === '1') {
|
|||
|
||||
foreach ($results as $result) {
|
||||
foreach ($result as $key => $value) {
|
||||
$out_csv .= io_safe_output($value).$divider;
|
||||
if (preg_match('/Linux/i', $_SERVER['HTTP_USER_AGENT'])) {
|
||||
$value = preg_replace(
|
||||
'/\s+/',
|
||||
' ',
|
||||
io_safe_output($value)
|
||||
);
|
||||
} else {
|
||||
$value = mb_convert_encoding(
|
||||
preg_replace(
|
||||
'/\s+/',
|
||||
'',
|
||||
io_safe_output($value)
|
||||
),
|
||||
'UTF-16LE',
|
||||
'UTF-8'
|
||||
);
|
||||
}
|
||||
|
||||
$out_csv .= $value.$divider;
|
||||
}
|
||||
|
||||
$out_csv .= "\n";
|
||||
|
|
|
@ -99,7 +99,7 @@ function api_execute(
|
|||
if (empty($token) === true) {
|
||||
$data['apipass'] = $apipass;
|
||||
$data['user'] = $user;
|
||||
$data['password'] = $password;
|
||||
$data['pass'] = $password;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -90,7 +90,7 @@ function dbmgr_extension_main()
|
|||
|
||||
// Header.
|
||||
ui_print_standard_header(
|
||||
__('Database interface'),
|
||||
__('DB interface'),
|
||||
'images/gm_db.png',
|
||||
false,
|
||||
'',
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,8 @@
|
|||
START TRANSACTION;
|
||||
|
||||
-- Delete table tagent_access
|
||||
DROP TABLE tagent_access;
|
||||
|
||||
ALTER TABLE treport_content ADD check_unknowns_graph tinyint DEFAULT 0 NULL;
|
||||
|
||||
COMMIT;
|
|
@ -418,7 +418,7 @@ switch ($login_screen) {
|
|||
}
|
||||
|
||||
if ($config['enterprise_installed']) {
|
||||
if ($config['reset_pass_option']) {
|
||||
if ($config['reset_pass_option'] && $config['auth'] === 'mysql') {
|
||||
$reset_pass_link = 'reset_pass.php';
|
||||
// Reset password link.
|
||||
echo '<div class="reset_password">';
|
||||
|
|
|
@ -217,6 +217,7 @@ foreach ($fields as $field) {
|
|||
array_push($table->data, $data);
|
||||
}
|
||||
|
||||
$tablePagination = '';
|
||||
if ($fields) {
|
||||
html_print_table($table);
|
||||
$tablePagination = ui_pagination($count_fields, false, $offset, 0, true, 'offset', false);
|
||||
|
@ -231,6 +232,9 @@ html_print_action_buttons(
|
|||
[ 'icon' => 'next' ],
|
||||
true
|
||||
),
|
||||
['type' => 'form_action']
|
||||
[
|
||||
'type' => 'form_action',
|
||||
'right_content' => $tablePagination,
|
||||
],
|
||||
);
|
||||
echo '</form>';
|
||||
|
|
|
@ -1391,7 +1391,6 @@ $table_advanced->data['made_enabled'][0] = html_print_checkbox_switch(
|
|||
false,
|
||||
'',
|
||||
false,
|
||||
false,
|
||||
'wp100 static'
|
||||
);
|
||||
|
||||
|
@ -2000,7 +1999,11 @@ ui_require_jquery_file('json');
|
|||
$('#' + thisLabel).prop('checked', true);
|
||||
$('#' + thisLabel).siblings().prop('checked', false);
|
||||
|
||||
if ($('#radius-percentage_warning').prop('checked') === true && $('#radius-percentage_critical').prop('checked') === true) {
|
||||
var type_selected = $("#id_module_type").val();
|
||||
var type_names = jQuery.parseJSON(Base64.decode($('#hidden-type_names').val()));
|
||||
var type_name_selected = type_names[type_selected];
|
||||
|
||||
if (($('#radius-percentage_warning').prop('checked') === true && $('#radius-percentage_critical').prop('checked') === true) || type_name_selected == 'generic_data_string') {
|
||||
paint_graph_values();
|
||||
$("#svg_dinamic").hide();
|
||||
} else {
|
||||
|
|
|
@ -131,9 +131,10 @@ if ($module_service_synthetic_selector !== ENTERPRISE_NOT_HOOK) {
|
|||
}
|
||||
|
||||
$data = [];
|
||||
$data[0] = __('Agent');
|
||||
$data[1] = __('Module');
|
||||
$data[2] = __('Period');
|
||||
|
||||
$data[0] = __('Module');
|
||||
$data[1] = __('Period');
|
||||
|
||||
$table_simple->cellclass['caption_prediction_module'][0] = 'w33p';
|
||||
$table_simple->cellclass['caption_prediction_module'][1] = 'w33p';
|
||||
$table_simple->cellclass['caption_prediction_module'][2] = 'w33p';
|
||||
|
@ -163,34 +164,68 @@ $params['none_module_text'] = __('Select Module');
|
|||
$params['use_hidden_input_idagent'] = true;
|
||||
$params['input_style'] = 'width: 100%;';
|
||||
$params['hidden_input_idagent_id'] = 'hidden-id_agente_module_prediction';
|
||||
$data[0] = ui_print_agent_autocomplete_input($params);
|
||||
|
||||
if ($id_agente > 0) {
|
||||
$predictionModuleInput = html_print_select_from_sql(
|
||||
'SELECT id_agente_modulo, nombre
|
||||
FROM tagente_modulo
|
||||
WHERE delete_pending = 0
|
||||
AND history_data = 1
|
||||
AND id_agente = '.$id_agente_clean.'
|
||||
AND id_agente_modulo <> '.$id_agente_modulo,
|
||||
if (strstr($page, 'policy_modules') === false) {
|
||||
$modules = agents_get_modules($id_agente);
|
||||
|
||||
$predictionModuleInput = html_print_select(
|
||||
$modules,
|
||||
'prediction_module',
|
||||
$prediction_module,
|
||||
'',
|
||||
__('Select Module'),
|
||||
'',
|
||||
0,
|
||||
true,
|
||||
false,
|
||||
true,
|
||||
'',
|
||||
false,
|
||||
'width: 100%;'
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
'',
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
true,
|
||||
false,
|
||||
false,
|
||||
'',
|
||||
false,
|
||||
'pm'
|
||||
);
|
||||
} else {
|
||||
$predictionModuleInput = '<select id="prediction_module" name="custom_integer_1" disabled="disabled"><option value="0">Select an Agent first</option></select>';
|
||||
$modules = index_array(policies_get_modules($policy_id, false, ['id', 'name']));
|
||||
|
||||
$predictionModuleInput = html_print_select(
|
||||
$modules,
|
||||
'id_module_policy',
|
||||
$module['custom_integer_1'],
|
||||
'',
|
||||
'',
|
||||
0,
|
||||
true,
|
||||
false,
|
||||
true,
|
||||
'',
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
'',
|
||||
false,
|
||||
false,
|
||||
true
|
||||
);
|
||||
}
|
||||
|
||||
$data[1] = $predictionModuleInput;
|
||||
$data[2] = html_print_select([__('Weekly'), __('Monthly'), __('Daily')], 'custom_integer_2', $custom_integer_2, '', '', 0, true, false, true, '', false, 'width: 100%;');
|
||||
$data[2] .= html_print_input_hidden('id_agente_module_prediction', $id_agente, true);
|
||||
$data[0] = $predictionModuleInput;
|
||||
$data[1] = html_print_select([__('Weekly'), __('Monthly'), __('Daily')], 'custom_integer_2', $custom_integer_2, '', '', 0, true, false, true, '', false, 'width: 100%;');
|
||||
$data[1] .= html_print_input_hidden('id_agente_module_prediction', $id_agente, true);
|
||||
|
||||
$table_simple->cellclass['prediction_module'][0] = 'w33p';
|
||||
$table_simple->cellclass['prediction_module'][1] = 'w33p';
|
||||
$table_simple->cellclass['prediction_module'][2] = 'w33p';
|
||||
|
@ -264,7 +299,7 @@ if ($selector_form !== ENTERPRISE_NOT_HOOK) {
|
|||
}
|
||||
|
||||
// Synthetic modules are an Enterprise feature.
|
||||
$synthetic_module_form = enterprise_hook('get_synthetic_module_form');
|
||||
$synthetic_module_form = enterprise_hook('get_synthetic_module_form', [$policy_id]);
|
||||
if ($synthetic_module_form !== ENTERPRISE_NOT_HOOK) {
|
||||
$data = [];
|
||||
$data[0] = $synthetic_module_form;
|
||||
|
|
|
@ -31,13 +31,14 @@ if (is_ajax()) {
|
|||
return;
|
||||
}
|
||||
|
||||
echo '<h3>'.$template['name'].'</h3>';
|
||||
echo '<h3 style="background-color: #14524f">'.$template['name'].'</h3>';
|
||||
echo html_print_image('images/info.svg', true, ['class' => 'invert_filter']);
|
||||
echo ui_print_alert_template_example($template['id'], true, true, false);
|
||||
echo '<br />';
|
||||
echo '<br />';
|
||||
echo '<strong>'.__('Type').': </strong>';
|
||||
echo alerts_get_alert_templates_type_name($template['type']);
|
||||
|
||||
echo '<br />';
|
||||
echo ui_print_alert_template_example($template['id'], true);
|
||||
|
||||
echo '<br />';
|
||||
|
||||
if ($template['description'] != '') {
|
||||
|
|
|
@ -552,6 +552,9 @@ $(document).ready (function () {
|
|||
|
||||
// If the row is empty, hide it
|
||||
if (field_row == '') {
|
||||
// Clear hidden fields.
|
||||
$("[name=field" + i + "_value]").val('');
|
||||
$("[name=field" + i + "_recovery_value]").val('')
|
||||
$table_macros_field.hide();
|
||||
continue;
|
||||
}
|
||||
|
|
|
@ -1240,7 +1240,7 @@ if ($step == 2) {
|
|||
'priority',
|
||||
$priority,
|
||||
'',
|
||||
0,
|
||||
'',
|
||||
0,
|
||||
true,
|
||||
false,
|
||||
|
|
|
@ -27,7 +27,6 @@ if (! check_acl($config['id_user'], 0, 'DM')) {
|
|||
|
||||
// Get some general DB stats (not very heavy)
|
||||
// NOTE: this is not realtime monitoring stats, are more focused on DB sanity
|
||||
$stat_access = db_get_sql('SELECT COUNT(*) FROM tagent_access WHERE id_agent != 0');
|
||||
$stat_data = db_get_sql('SELECT COUNT(*) FROM tagente_datos WHERE id_agente_modulo != 0');
|
||||
$stat_data_log4x = db_get_sql('SELECT COUNT(*) FROM tagente_datos_log4x WHERE id_agente_modulo != 0');
|
||||
$stat_data_string = db_get_sql('SELECT COUNT(*) FROM tagente_datos_string WHERE id_agente_modulo != 0');
|
||||
|
@ -149,18 +148,6 @@ echo $stat_modules;
|
|||
echo '</b></td></tr>';
|
||||
|
||||
|
||||
|
||||
echo '<tr class="rowOdd"><td>';
|
||||
echo __('Total agent access records');
|
||||
echo '<td><b>';
|
||||
if ($stat_access > $max_access) {
|
||||
echo "<font color='#ff0000'>$stat_access</font>";
|
||||
} else {
|
||||
echo $stat_access;
|
||||
}
|
||||
|
||||
echo '</b></td></tr>';
|
||||
|
||||
// Sanity
|
||||
echo '<tr><th colspan=2><i>';
|
||||
echo __('Database sanity');
|
||||
|
|
|
@ -68,7 +68,7 @@ foreach ($layer_ids as $layer_id) {
|
|||
$layer_list[] = [
|
||||
'id' => (strpos($layer_id, 'new_') === false) ? (int) $layer_id : null,
|
||||
'layer_name' => $trimmed_name,
|
||||
'layer_visible' => ((int) $layers[$layer_id]['visible'] === 1),
|
||||
'layer_visible' => ($layers[$layer_id]['visible'] === 'true'),
|
||||
'layer_group' => (int) $layers[$layer_id]['agents_from_group'],
|
||||
'layer_agent_list' => $layers[$layer_id]['agents'],
|
||||
'layer_group_list' => $layers[$layer_id]['groups'],
|
||||
|
@ -560,21 +560,23 @@ html_print_table($table);
|
|||
|
||||
$user_groups = users_get_groups($config['user'], 'AR', false);
|
||||
|
||||
echo '<h3>'.__('Layers').'</h3>';
|
||||
echo '<fieldset class="margin-bottom-10"><legend>'.__('Layers').'</legend>';
|
||||
|
||||
$table->width = '100%';
|
||||
$table->class = 'databox filters';
|
||||
$table->valign = [];
|
||||
$table->valign[0] = 'top';
|
||||
$table->valign[1] = 'top';
|
||||
$table->valign[0] = 'top; width: 50%';
|
||||
$table->valign[1] = 'top; width: 50%';
|
||||
$table->data = [];
|
||||
|
||||
$table->data[0][0] = '<h4>'.__('List of layers').'</h4>';
|
||||
$table->data[0][1] = '<div class="right">'.html_print_button(__('New layer'), 'new_layer', false, 'newLayer();', 'class="sub add "', true).'</div>';
|
||||
|
||||
$table->data[1][0] = '<table class="databox" border="0" cellpadding="4" cellspacing="4" id="list_layers"></table>';
|
||||
$table->data[1][1] = '<div id="form_layer" class="invisible">
|
||||
$table->data[1][0] = '<div id="form_layer" class="invisible">
|
||||
<table id="form_layer_table" class="" border="0" cellpadding="4" cellspacing="4">
|
||||
<tr>
|
||||
<td colspan="4"><hr/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>'.__('Layer name').':</td>
|
||||
<td>'.html_print_input_text('layer_name_form', '', '', 20, 40, true).'</td>
|
||||
|
@ -592,10 +594,6 @@ $table->data[1][1] = '<div id="form_layer" class="invisible">
|
|||
<td>'.__('Agent').':</td>
|
||||
<td colspan="3">';
|
||||
|
||||
|
||||
|
||||
$table->data[1][1] .= html_print_button(__('Add agent'), 'add_agent', true, '', ['mode' => 'secondary', 'icon' => 'next'], true);
|
||||
|
||||
$params = [];
|
||||
$params['return'] = true;
|
||||
$params['show_helptip'] = true;
|
||||
|
@ -608,12 +606,13 @@ $params['javascript_function_action_after_select'] = 'active_button_add_agent';
|
|||
$params['javascript_is_function_select'] = true;
|
||||
$params['disabled_javascript_on_blur_function'] = false;
|
||||
|
||||
$table->data[1][1] .= ui_print_agent_autocomplete_input($params);
|
||||
|
||||
|
||||
|
||||
$table->data[1][1] .= '</td>
|
||||
$table->data[1][0] .= ui_print_agent_autocomplete_input($params);
|
||||
$buttonAgent = html_print_button(__('Add agent'), 'add_agent', true, '', ['mode' => 'secondary', 'icon' => 'next'], true);
|
||||
$table->data[1][0] .= '</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="4" align="right">'.$buttonAgent.'</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="4">
|
||||
<h4>'.__('List of Agents to be shown in the layer').'</h4>
|
||||
|
@ -641,7 +640,7 @@ $params['disabled_javascript_on_blur_function'] = false;
|
|||
$agent_for_group_input = ui_print_agent_autocomplete_input($params);
|
||||
$add_group_btn = html_print_button(__('Add'), 'add_group', true, '', ['mode' => 'secondary', 'icon' => 'next'], true);
|
||||
|
||||
$table->data[1][1] .= '<tr><td colspan="4"><hr /></td></tr>
|
||||
$table->data[1][0] .= '<tr><td colspan="4"><hr /></td></tr>
|
||||
<tr>
|
||||
<td>'.__('Group').':</td>
|
||||
<td colspan="3">'.$group_select.'</td>
|
||||
|
@ -661,7 +660,7 @@ $table->data[1][1] .= '<tr><td colspan="4"><hr /></td></tr>
|
|||
</td>
|
||||
</tr>';
|
||||
|
||||
$table->data[1][1] .= '<tr>
|
||||
$table->data[1][0] .= '<tr>
|
||||
<td align="right" colspan="4">'.html_print_button(__('Save Layer'), 'save_layer', false, 'javascript:saveNewLayer();', 'class="sub wand"', true).'
|
||||
'.html_print_input_hidden('current_edit_layer_id', '', true).'
|
||||
</td>
|
||||
|
@ -669,7 +668,12 @@ $table->data[1][1] .= '<tr>
|
|||
</table>
|
||||
</div>';
|
||||
|
||||
$table->data[1][1] = '<fieldset>
|
||||
<legend>'.__('Layers list').'</legend>
|
||||
<table class="databox invisible" border="0" id="list_layers"></table>
|
||||
</fieldset>';
|
||||
html_print_table($table);
|
||||
echo '</fieldset>';
|
||||
|
||||
switch ($action) {
|
||||
case 'save_new':
|
||||
|
@ -1229,6 +1233,8 @@ function getLayerRow (layerId, layerData) {
|
|||
.append($editCol)
|
||||
.append($deleteCol);
|
||||
|
||||
$("#list_layers").removeClass('invisible');
|
||||
|
||||
return $row;
|
||||
}
|
||||
|
||||
|
|
|
@ -757,6 +757,125 @@ if ($tab == 'tree') {
|
|||
/*
|
||||
* Group tree view.
|
||||
*/
|
||||
|
||||
$table = new stdClass();
|
||||
$table->width = '100%';
|
||||
$table->class = 'databox filters filter-table-adv';
|
||||
if (is_metaconsole() === true) {
|
||||
$table->cellspacing = 0;
|
||||
$table->cellpadding = 0;
|
||||
}
|
||||
|
||||
$search_group_string = get_parameter('search_group_string', '');
|
||||
$search_agent_string = get_parameter('search_agent_string', '');
|
||||
$agent_status = get_parameter('agent_status', '');
|
||||
$show_not_init_agents = get_parameter('show_not_init_agents', 1);
|
||||
$show_not_init_modules = get_parameter('show_not_init_modules', 1);
|
||||
$show_full_hirearchy = get_parameter('show_full_hirearchy', 1);
|
||||
|
||||
|
||||
$table->data = [];
|
||||
$table->head = [];
|
||||
$table->style = [];
|
||||
|
||||
$table->style[0] = 'width: 50%;';
|
||||
$table->style[1] = 'width: 50%;';
|
||||
|
||||
$table->data[0][0] = html_print_label_input_block(
|
||||
__('Search group'),
|
||||
html_print_input_text(
|
||||
'search_group_string',
|
||||
$search_group_string,
|
||||
'',
|
||||
25,
|
||||
255,
|
||||
true,
|
||||
false,
|
||||
false,
|
||||
'',
|
||||
)
|
||||
);
|
||||
|
||||
$agents_status_list = agents_status_list();
|
||||
|
||||
$table->data[0][1] = html_print_label_input_block(
|
||||
__('Search by agent status').ui_print_help_tip(__('Shows the groups that contain an agent with the status that has been searched'), true),
|
||||
html_print_select(
|
||||
$agents_status_list,
|
||||
'agent_status',
|
||||
$agent_status,
|
||||
'',
|
||||
__('All'),
|
||||
'',
|
||||
true,
|
||||
false,
|
||||
false,
|
||||
'w200p',
|
||||
false,
|
||||
'width: 100%;'
|
||||
)
|
||||
);
|
||||
|
||||
$table->data[1][0] = html_print_label_input_block(
|
||||
__('Search by agent').ui_print_help_tip(__('Shows groups that contain an agent matching the search'), true),
|
||||
html_print_input_text(
|
||||
'search_agent_string',
|
||||
$search_agent_string,
|
||||
'',
|
||||
25,
|
||||
255,
|
||||
true,
|
||||
false,
|
||||
false,
|
||||
'',
|
||||
)
|
||||
);
|
||||
|
||||
$table->data[1][1] = html_print_label_input_block(
|
||||
__('Show full hierarchy'),
|
||||
html_print_checkbox_switch_extended(
|
||||
'show_full_hirearchy',
|
||||
1,
|
||||
$show_full_hirearchy,
|
||||
false,
|
||||
'',
|
||||
'',
|
||||
true
|
||||
)
|
||||
);
|
||||
|
||||
$table->data[3][0] = ' ';
|
||||
|
||||
$table->data[3][1] = html_print_submit_button(
|
||||
__('Filter'),
|
||||
'filter',
|
||||
false,
|
||||
[
|
||||
'class' => 'float-right',
|
||||
'icon' => 'search',
|
||||
],
|
||||
true
|
||||
);
|
||||
|
||||
$form = "<form method='post' action=''>";
|
||||
$form .= html_print_table($table, true);
|
||||
$form .= '</form>';
|
||||
|
||||
|
||||
|
||||
ui_toggle(
|
||||
$form,
|
||||
'<span class="subsection_header_title">'.__('Filters').'</span>',
|
||||
'filter_form',
|
||||
'',
|
||||
true,
|
||||
false,
|
||||
'',
|
||||
'white-box-content',
|
||||
'box-flat white_table_graph fixed_filter_bar'
|
||||
);
|
||||
|
||||
|
||||
echo "<div id='tree-controller-recipient'></div>";
|
||||
} else {
|
||||
/*
|
||||
|
@ -826,6 +945,8 @@ if ($tab == 'tree') {
|
|||
);
|
||||
$form .= '</form>';
|
||||
|
||||
|
||||
|
||||
ui_toggle(
|
||||
$form,
|
||||
'<span class="subsection_header_title">'.__('Filters').'</span>',
|
||||
|
@ -1058,87 +1179,119 @@ $tab = 'group_edition';
|
|||
<?php } ?>
|
||||
|
||||
<script type="text/javascript">
|
||||
var treeController = TreeController.getController();
|
||||
treeController.meta = <?php echo (is_metaconsole() === true) ? 1 : 0; ?>;
|
||||
|
||||
if (typeof treeController.recipient != 'undefined' && treeController.recipient.length > 0)
|
||||
treeController.recipient.empty();
|
||||
let show_full_hirearchy = "<?php echo $show_full_hirearchy; ?>";
|
||||
let show_not_init_agents = "<?php echo $show_not_init_agents; ?>";
|
||||
let show_not_init_modules = "<?php echo $show_not_init_modules; ?>";
|
||||
|
||||
showSpinner();
|
||||
$('#checkbox-show_full_hirearchy').on("change", function() {
|
||||
if (show_full_hirearchy == 1) {
|
||||
show_full_hirearchy = 0;
|
||||
} else {
|
||||
show_full_hirearchy = 1;
|
||||
}
|
||||
});
|
||||
|
||||
var parameters = {};
|
||||
parameters['page'] = "include/ajax/tree.ajax";
|
||||
parameters['getChildren'] = 1;
|
||||
parameters['type'] = "<?php echo $tab; ?>";
|
||||
parameters['filter'] = {};
|
||||
parameters['filter']['searchGroup'] = '';
|
||||
parameters['filter']['searchAgent'] = '';
|
||||
parameters['filter']['statusAgent'] = '';
|
||||
parameters['filter']['searchModule'] = '';
|
||||
parameters['filter']['statusModule'] = '';
|
||||
parameters['filter']['groupID'] = '';
|
||||
parameters['filter']['tagID'] = '';
|
||||
parameters['filter']['searchHirearchy'] = 1;
|
||||
parameters['filter']['show_not_init_agents'] = 1;
|
||||
parameters['filter']['show_not_init_modules'] = 1;
|
||||
$('#button-filter').on('click', function(event) {
|
||||
console.log('here');
|
||||
event.preventDefault();
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "<?php echo ui_get_full_url('ajax.php', false, false, false); ?>",
|
||||
data: parameters,
|
||||
success: function(data) {
|
||||
if (data.success) {
|
||||
hideSpinner();
|
||||
load_tree(show_full_hirearchy, show_not_init_agents, show_not_init_modules);
|
||||
});
|
||||
|
||||
treeController.init({
|
||||
recipient: $("div#tree-controller-recipient"),
|
||||
page: parameters['page'],
|
||||
emptyMessage: "<?php echo __('No data found'); ?>",
|
||||
foundMessage: "<?php echo __('Found groups'); ?>",
|
||||
tree: data.tree,
|
||||
baseURL: "<?php echo ui_get_full_url(false, false, false, is_metaconsole()); ?>",
|
||||
ajaxURL: "<?php echo ui_get_full_url('ajax.php', false, false, false); ?>",
|
||||
filter: parameters['filter'],
|
||||
counterTitles: {
|
||||
total: {
|
||||
agents: "<?php echo __('Total agents'); ?>",
|
||||
modules: "<?php echo __('Total modules'); ?>",
|
||||
none: "<?php echo __('Total'); ?>"
|
||||
},
|
||||
alerts: {
|
||||
agents: "<?php echo __('Fired alerts'); ?>",
|
||||
modules: "<?php echo __('Fired alerts'); ?>",
|
||||
none: "<?php echo __('Fired alerts'); ?>"
|
||||
},
|
||||
critical: {
|
||||
agents: "<?php echo __('Critical agents'); ?>",
|
||||
modules: "<?php echo __('Critical modules'); ?>",
|
||||
none: "<?php echo __('Critical'); ?>"
|
||||
},
|
||||
warning: {
|
||||
agents: "<?php echo __('Warning agents'); ?>",
|
||||
modules: "<?php echo __('Warning modules'); ?>",
|
||||
none: "<?php echo __('Warning'); ?>"
|
||||
},
|
||||
unknown: {
|
||||
agents: "<?php echo __('Unknown agents'); ?>",
|
||||
modules: "<?php echo __('Unknown modules'); ?>",
|
||||
none: "<?php echo __('Unknown'); ?>"
|
||||
},
|
||||
not_init: {
|
||||
agents: "<?php echo __('Not init agents'); ?>",
|
||||
modules: "<?php echo __('Not init modules'); ?>",
|
||||
none: "<?php echo __('Not init'); ?>"
|
||||
},
|
||||
ok: {
|
||||
agents: "<?php echo __('Normal agents'); ?>",
|
||||
modules: "<?php echo __('Normal modules'); ?>",
|
||||
none: "<?php echo __('Normal'); ?>"
|
||||
window.addEventListener('load', function() {
|
||||
load_tree(show_full_hirearchy, show_not_init_agents, show_not_init_modules);
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
function load_tree(show_full_hirearchy, show_not_init_agents, show_not_init_modules) {
|
||||
var treeController = TreeController.getController();
|
||||
treeController.meta = <?php echo (is_metaconsole() === true) ? 1 : 0; ?>;
|
||||
|
||||
if (typeof treeController.recipient != 'undefined' && treeController.recipient.length > 0)
|
||||
treeController.recipient.empty();
|
||||
|
||||
showSpinner();
|
||||
|
||||
var parameters = {};
|
||||
parameters['page'] = "include/ajax/tree.ajax";
|
||||
parameters['getChildren'] = 1;
|
||||
parameters['type'] = "<?php echo $tab; ?>";
|
||||
parameters['filter'] = {};
|
||||
parameters['filter']['searchGroup'] = $('#text-search_group_string').val();
|
||||
parameters['filter']['searchAgent'] = $('#text-search_agent_string').val();
|
||||
parameters['filter']['statusAgent'] = $('#agent_status option:selected').val();
|
||||
parameters['filter']['searchModule'] = '';
|
||||
parameters['filter']['statusModule'] = '';
|
||||
parameters['filter']['groupID'] = '';
|
||||
parameters['filter']['tagID'] = '';
|
||||
parameters['filter']['searchHirearchy'] = 1;
|
||||
parameters['filter']['show_full_hirearchy'] = show_full_hirearchy;
|
||||
parameters['filter']['show_not_init_agents'] = show_not_init_agents;
|
||||
parameters['filter']['show_not_init_modules'] = show_not_init_modules;
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "<?php echo ui_get_full_url('ajax.php', false, false, false); ?>",
|
||||
data: parameters,
|
||||
success: function(data) {
|
||||
if (data.success) {
|
||||
hideSpinner();
|
||||
|
||||
treeController.init({
|
||||
recipient: $("div#tree-controller-recipient"),
|
||||
page: parameters['page'],
|
||||
emptyMessage: "<?php echo __('No data found'); ?>",
|
||||
foundMessage: "<?php echo __('Found groups'); ?>",
|
||||
tree: data.tree,
|
||||
baseURL: "<?php echo ui_get_full_url(false, false, false, is_metaconsole()); ?>",
|
||||
ajaxURL: "<?php echo ui_get_full_url('ajax.php', false, false, false); ?>",
|
||||
filter: parameters['filter'],
|
||||
counterTitles: {
|
||||
total: {
|
||||
agents: "<?php echo __('Total agents'); ?>",
|
||||
modules: "<?php echo __('Total modules'); ?>",
|
||||
none: "<?php echo __('Total'); ?>"
|
||||
},
|
||||
alerts: {
|
||||
agents: "<?php echo __('Fired alerts'); ?>",
|
||||
modules: "<?php echo __('Fired alerts'); ?>",
|
||||
none: "<?php echo __('Fired alerts'); ?>"
|
||||
},
|
||||
critical: {
|
||||
agents: "<?php echo __('Critical agents'); ?>",
|
||||
modules: "<?php echo __('Critical modules'); ?>",
|
||||
none: "<?php echo __('Critical'); ?>"
|
||||
},
|
||||
warning: {
|
||||
agents: "<?php echo __('Warning agents'); ?>",
|
||||
modules: "<?php echo __('Warning modules'); ?>",
|
||||
none: "<?php echo __('Warning'); ?>"
|
||||
},
|
||||
unknown: {
|
||||
agents: "<?php echo __('Unknown agents'); ?>",
|
||||
modules: "<?php echo __('Unknown modules'); ?>",
|
||||
none: "<?php echo __('Unknown'); ?>"
|
||||
},
|
||||
not_init: {
|
||||
agents: "<?php echo __('Not init agents'); ?>",
|
||||
modules: "<?php echo __('Not init modules'); ?>",
|
||||
none: "<?php echo __('Not init'); ?>"
|
||||
},
|
||||
ok: {
|
||||
agents: "<?php echo __('Normal agents'); ?>",
|
||||
modules: "<?php echo __('Normal modules'); ?>",
|
||||
none: "<?php echo __('Normal'); ?>"
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
dataType: "json"
|
||||
});
|
||||
});
|
||||
}
|
||||
},
|
||||
dataType: "json"
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
</script>
|
||||
|
|
|
@ -255,7 +255,18 @@ $table->data[1][1] = html_print_select(
|
|||
true,
|
||||
'',
|
||||
false,
|
||||
'width:180px;'
|
||||
'width:180px;',
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
'',
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
true,
|
||||
true,
|
||||
true
|
||||
);
|
||||
$table->data[1][2] = __('When select agents');
|
||||
$table->data[1][2] .= '<br>';
|
||||
|
@ -271,7 +282,31 @@ $table->data[1][2] .= html_print_select(
|
|||
'',
|
||||
true
|
||||
);
|
||||
$table->data[1][3] = html_print_select([], 'module[]', '', false, '', '', true, true, false, '', false, 'width:180px;');
|
||||
$table->data[1][3] = html_print_select(
|
||||
[],
|
||||
'module[]',
|
||||
'',
|
||||
false,
|
||||
'',
|
||||
'',
|
||||
true,
|
||||
true,
|
||||
false,
|
||||
'',
|
||||
false,
|
||||
'width:180px;',
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
'',
|
||||
true,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
true,
|
||||
true,
|
||||
false
|
||||
);
|
||||
|
||||
$usr_groups = users_get_groups($config['id_user'], 'LW', true);
|
||||
$filter_groups = '';
|
||||
|
|
|
@ -269,15 +269,14 @@ $size_pagination .= '</div>';
|
|||
// Home screen.
|
||||
$home_screen = '<div class="label_select"><p class="edit_user_labels">'.__('Home screen').ui_print_help_tip(__('User can customize the home page. By default, will display \'Agent Detail\'. Example: Select \'Other\' and type index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente=1 to show agent detail view'), true).'</p>';
|
||||
$values = [
|
||||
'-1' => __('No change'),
|
||||
'Default' => __('Default'),
|
||||
'Visual console' => __('Visual console'),
|
||||
'Event list' => __('Event list'),
|
||||
'Group view' => __('Group view'),
|
||||
'Tactical view' => __('Tactical view'),
|
||||
'Alert detail' => __('Alert detail'),
|
||||
'Other' => __('Other'),
|
||||
'Dashboard' => __('Dashboard'),
|
||||
HOME_SCREEN_DEFAULT => __('Default'),
|
||||
HOME_SCREEN_VISUAL_CONSOLE => __('Visual console'),
|
||||
HOME_SCREEN_EVENT_LIST => __('Event list'),
|
||||
HOME_SCREEN_GROUP_VIEW => __('Group view'),
|
||||
HOME_SCREEN_TACTICAL_VIEW => __('Tactical view'),
|
||||
HOME_SCREEN_ALERT_DETAIL => __('Alert detail'),
|
||||
HOME_SCREEN_OTHER => __('Other'),
|
||||
HOME_SCREEN_DASHBOARD => __('Dashboard'),
|
||||
];
|
||||
|
||||
$home_screen .= html_print_select(
|
||||
|
|
|
@ -80,12 +80,17 @@ $options_agents = [
|
|||
];
|
||||
|
||||
if (check_acl($config['id_user'], 0, 'UM')) {
|
||||
$options_users['edit_users'] = __('Edit users in bulk');
|
||||
$options_users = [
|
||||
'edit_users' => __('Edit users in bulk'),
|
||||
];
|
||||
|
||||
if (is_metaconsole() === false) {
|
||||
$options_users = [
|
||||
$options_profiles = [
|
||||
'add_profiles' => __('Bulk profile add'),
|
||||
'delete_profiles' => __('Bulk profile delete'),
|
||||
];
|
||||
|
||||
$options_users = array_merge(array_slice($options_users, 0, count($options_users)), $options_profiles, array_slice($options_users, count($options_users)));
|
||||
}
|
||||
} else {
|
||||
$options_users = [];
|
||||
|
|
|
@ -367,6 +367,8 @@ if ($access_console_node === true) {
|
|||
$sub['godmode/alerts/alert_list']['text'] = __('List of Alerts');
|
||||
$sub['godmode/alerts/alert_list']['id'] = 'List_of_Alerts';
|
||||
$sub['godmode/alerts/alert_list']['pages'] = ['godmode/alerts/alert_view'];
|
||||
$sub['godmode/agentes/planned_downtime.list']['text'] = __('Scheduled downtime');
|
||||
$sub['godmode/agentes/planned_downtime.list']['id'] = 'scheduled_downtime';
|
||||
|
||||
if ((bool) check_acl($config['id_user'], 0, 'LM') === true) {
|
||||
$sub['godmode/alerts/alert_templates']['text'] = __('Templates');
|
||||
|
@ -708,6 +710,17 @@ if ($access_console_node === true) {
|
|||
}
|
||||
|
||||
if ($access_console_node === true) {
|
||||
// Tools
|
||||
$menu_godmode['tools']['text'] = __('Tools');
|
||||
$menu_godmode['tools']['sec2'] = 'operation/extensions';
|
||||
$menu_godmode['tools']['id'] = 'oper-extensions';
|
||||
$sub = [];
|
||||
$sub['operation/agentes/exportdata']['text'] = __('Export data');
|
||||
$sub['operation/agentes/exportdata']['id'] = 'export_data';
|
||||
$sub['extensions/files_repo']['text'] = __('File repository');
|
||||
$sub['extensions/files_repo']['id'] = 'file_repository';
|
||||
$menu_godmode['tools']['sub'] = $sub;
|
||||
|
||||
// About.
|
||||
$menu_godmode['about']['text'] = __('About');
|
||||
$menu_godmode['about']['id'] = 'about';
|
||||
|
|
|
@ -95,7 +95,7 @@ $subsection = reporting_enterprise_add_graph_template_subsection('', $buttons);
|
|||
$buttons['graph_container'] = [
|
||||
'active' => true,
|
||||
'text' => '<a href="index.php?sec=reporting&sec2=godmode/reporting/graph_container">'.html_print_image(
|
||||
'images/graph-container.svg@svg',
|
||||
'images/graph-container@svg.svg',
|
||||
true,
|
||||
[
|
||||
'title' => __('Graph container'),
|
||||
|
|
|
@ -519,9 +519,9 @@ if (!$maps && is_metaconsole() === false) {
|
|||
$data = [];
|
||||
|
||||
if (is_metaconsole() === false) {
|
||||
$data[0] = '<a href="index.php?sec=network&sec2=operation/visual_console/render_view&id='.$map['id'].'&refr='.$refr.'">'.$map['name'].'</a>';
|
||||
$data[0] = '<a href="index.php?sec=network&sec2=operation/visual_console/render_view&id='.$map['id'].'&refr='.$refr.'">'.io_safe_output($map['name']).'</a>';
|
||||
} else {
|
||||
$data[0] = '<a href="index.php?sec=screen&sec2=screens/screens&action=visualmap&pure='.$pure.'&id='.$map['id'].'&refr='.$refr.'">'.$map['name'].'</a>';
|
||||
$data[0] = '<a href="index.php?sec=screen&sec2=screens/screens&action=visualmap&pure='.$pure.'&id='.$map['id'].'&refr='.$refr.'">'.io_safe_output($map['name']).'</a>';
|
||||
}
|
||||
|
||||
$data[1] = ui_print_group_icon($map['id_group'], true);
|
||||
|
@ -541,7 +541,7 @@ if (!$maps && is_metaconsole() === false) {
|
|||
true,
|
||||
['class' => 'main_menu_icon invert_filter']
|
||||
).'</a>';
|
||||
$data[4] = '<a class="delete_visualmap" href="index.php?sec=network&sec2=godmode/reporting/map_builder&id_layout='.$map['id'].'&delete_layout=1" onclick="javascript: if (!confirm(\''.__('Are you sure?').'\n'.__('Delete').': '.$map['name'].'\')) return false;">'.html_print_image(
|
||||
$data[4] = '<a class="delete_visualmap" href="index.php?sec=network&sec2=godmode/reporting/map_builder&id_layout='.$map['id'].'&delete_layout=1" onclick="javascript: if (!confirm(\''.__('Are you sure?').'\n'.__('Delete').': '.io_safe_output($map['name']).'\')) return false;">'.html_print_image(
|
||||
'images/delete.svg',
|
||||
true,
|
||||
['class' => 'main_menu_icon invert_filter']
|
||||
|
@ -552,7 +552,7 @@ if (!$maps && is_metaconsole() === false) {
|
|||
true,
|
||||
['class' => 'main_menu_icon invert_filter']
|
||||
).'</a>';
|
||||
$data[4] = '<a class="delete_visualmap" href="index.php?sec=screen&sec2=screens/screens&action=visualmap&pure='.$pure.'&id_layout='.$map['id'].'&delete_layout=1" onclick="javascript: if (!confirm(\''.__('Are you sure?').'\n'.__('Delete').': '.$map['name'].'\')) return false;">'.html_print_image(
|
||||
$data[4] = '<a class="delete_visualmap" href="index.php?sec=screen&sec2=screens/screens&action=visualmap&pure='.$pure.'&id_layout='.$map['id'].'&delete_layout=1" onclick="javascript: if (!confirm(\''.__('Are you sure?').'\n'.__('Delete').': '.io_safe_output($map['name']).'\')) return false;">'.html_print_image(
|
||||
'images/delete.svg',
|
||||
true,
|
||||
['class' => 'main_menu_icon invert_filter']
|
||||
|
|
|
@ -150,6 +150,7 @@ $fullscale = false;
|
|||
$percentil = false;
|
||||
$image_threshold = false;
|
||||
$time_compare_overlapped = false;
|
||||
$unknowns_graph = false;
|
||||
|
||||
// Added for events items.
|
||||
$server_multiple = [0];
|
||||
|
@ -354,6 +355,7 @@ switch ($action) {
|
|||
$percentil = isset($style['percentil']) ? (bool) $style['percentil'] : 0;
|
||||
$image_threshold = (isset($style['image_threshold']) === true) ? (bool) $style['image_threshold'] : false;
|
||||
$graph_render = $item['graph_render'];
|
||||
$unknowns_graph = $item['check_unknowns_graph'];
|
||||
// The break hasn't be forgotten.
|
||||
case 'simple_baseline_graph':
|
||||
case 'projection_graph':
|
||||
|
@ -1589,7 +1591,7 @@ if (is_metaconsole() === true) {
|
|||
<?php
|
||||
html_print_extended_select_for_time(
|
||||
'period',
|
||||
$period,
|
||||
(string) $period,
|
||||
'check_period_warning(this, \''.__('Warning').'\', \''.__('Displaying items with extended historical data can have an impact on system performance. We do not recommend that you use intervals longer than 30 days, especially if you combine several of them in a report, dashboard or visual console.').'\')',
|
||||
'',
|
||||
'0',
|
||||
|
@ -1697,6 +1699,39 @@ if (is_metaconsole() === true) {
|
|||
?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="row_period2" class="datos">
|
||||
<td class="bolder">
|
||||
<?php
|
||||
echo __('Time lapse');
|
||||
ui_print_help_tip(
|
||||
__('This is the range, or period of time over which the report renders the information for this report type. For example, a week means data from a week ago from now. ')
|
||||
);
|
||||
?>
|
||||
</td>
|
||||
<td >
|
||||
<?php
|
||||
html_print_extended_select_for_time(
|
||||
'period',
|
||||
(string) $period,
|
||||
'onselect=loadLogAgents();',
|
||||
'',
|
||||
'0',
|
||||
10,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
'',
|
||||
false,
|
||||
false,
|
||||
'',
|
||||
false,
|
||||
0,
|
||||
null,
|
||||
'check_period_warning_manual(\'period\', \''.__('Warning').'\', \''.__('Displaying items with extended historical data can have an impact on system performance. We do not recommend that you use intervals longer than 30 days, especially if you combine several of them in a report, dashboard or visual console.').'\')'
|
||||
);
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="row_estimate" class="datos">
|
||||
<td class="bolder">
|
||||
<?php
|
||||
|
@ -2921,6 +2956,23 @@ if (is_metaconsole() === true) {
|
|||
</td>
|
||||
</tr>
|
||||
|
||||
<tr id="row_unknowns_graph" class="datos">
|
||||
<td class="bolder">
|
||||
<?php
|
||||
echo __('Show unknowns in graph');
|
||||
?>
|
||||
</td>
|
||||
<td>
|
||||
<?php
|
||||
html_print_checkbox_switch(
|
||||
'unknowns_graph',
|
||||
1,
|
||||
$unknowns_graph
|
||||
);
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr id="row_time_compare_overlapped" class="datos">
|
||||
<td class="bolder">
|
||||
<?php
|
||||
|
@ -6685,7 +6737,7 @@ function loadLogAgents() {
|
|||
params["get_agent_source"] = 1;
|
||||
params["log_alert"] = 1;
|
||||
params["page"] = "enterprise/include/ajax/log_viewer.ajax";
|
||||
|
||||
params["date"] = $('#period_select').val();
|
||||
jQuery.ajax({
|
||||
data: params,
|
||||
dataType: "json",
|
||||
|
@ -6693,9 +6745,9 @@ function loadLogAgents() {
|
|||
url: "ajax.php",
|
||||
async: true,
|
||||
success: function(data) {
|
||||
$('#id_agents3')
|
||||
.find('option')
|
||||
.remove();
|
||||
$('#id_agents3').find('option').remove();
|
||||
$('#source option[value!=""]').remove();
|
||||
|
||||
$.each(data['source'],function(key,value) {
|
||||
if (value === source) {
|
||||
$('#source').append( `<option selected='selected' value='${key}'>${value}</option>`);
|
||||
|
@ -6725,10 +6777,10 @@ function chooseType() {
|
|||
$("#row_period_range").hide();
|
||||
$("#row_agent").hide();
|
||||
$("#row_module").hide();
|
||||
$("#row_period").hide();
|
||||
$("#row_search").hide();
|
||||
$("#row_log_number").hide();
|
||||
$("#row_period1").hide();
|
||||
$("#row_period2").hide();
|
||||
$("#row_estimate").hide();
|
||||
$("#row_interval").hide();
|
||||
$("#row_custom_graph").hide();
|
||||
|
@ -6844,6 +6896,7 @@ function chooseType() {
|
|||
$("#row_group_by").hide();
|
||||
$("#row_type_show").hide();
|
||||
$("#row_use_prefix_notation").hide();
|
||||
$("#row_unknowns_graph").hide();
|
||||
$("#row_os_selector").hide();
|
||||
$("#row_os_version_regexp").hide();
|
||||
$("#row_os_end_of_life").hide();
|
||||
|
@ -6895,7 +6948,7 @@ function chooseType() {
|
|||
case 'event_report_log':
|
||||
$("#log_help_tip").css("visibility", "visible");
|
||||
$("#row_description").show();
|
||||
$("#row_period").show();
|
||||
$("#row_period2").show();
|
||||
$("#row_search").show();
|
||||
$("#row_log_number").show();
|
||||
$("#agents_row").show();
|
||||
|
@ -6909,7 +6962,7 @@ function chooseType() {
|
|||
case 'event_report_log_table':
|
||||
$("#log_help_tip").css("visibility", "visible");
|
||||
$("#row_description").show();
|
||||
$("#row_period").show();
|
||||
$("#row_period2").show();
|
||||
$("#row_period_range").show();
|
||||
$("#row_search").show();
|
||||
$("#row_log_number").show();
|
||||
|
@ -6936,6 +6989,7 @@ function chooseType() {
|
|||
$("#row_image_threshold").show();
|
||||
$("#row_graph_render").show();
|
||||
$("#row_percentil").show();
|
||||
$("#row_unknowns_graph").show();
|
||||
|
||||
// Force type.
|
||||
if('<?php echo $action; ?>' === 'new'){
|
||||
|
@ -7904,8 +7958,10 @@ function source_change_agents() {
|
|||
$("#id_agents3 option").attr("style","display:none");
|
||||
|
||||
var params = {};
|
||||
params["get_agent_source"] = 1;
|
||||
params["get_agents_by_source"] = 1;
|
||||
params["page"] = "enterprise/include/ajax/log_viewer.ajax";
|
||||
params["date"] = '<?php echo SECONDS_1MONTH; ?>';
|
||||
params["sources"] = JSON.stringify(source);
|
||||
|
||||
jQuery.ajax({
|
||||
data: params,
|
||||
|
@ -7914,19 +7970,8 @@ function source_change_agents() {
|
|||
url: "ajax.php",
|
||||
async: true,
|
||||
success: function(data) {
|
||||
let source_array = [];
|
||||
$.each(data['source'],function(key,value) {
|
||||
if (value === source) {
|
||||
const split = key.split('-');
|
||||
source_array.push(split[1]);
|
||||
}
|
||||
});
|
||||
|
||||
$.each(data['agent'],function(key,value) {
|
||||
const result = source_array.includes(key);
|
||||
if (result === true) {
|
||||
$(`#id_agents3 option[value*='${key}']`).attr("style","display:");
|
||||
}
|
||||
$.each(data,function(key,value) {
|
||||
$(`#id_agents3 option[value*='${value}']`).attr("style","display:");
|
||||
});
|
||||
|
||||
$("#spinner_hack").hide();
|
||||
|
@ -7955,7 +8000,7 @@ function dialog_message(message_id) {
|
|||
}
|
||||
function control_period_range() {
|
||||
let value_period_range = $('#row_period_range #hidden-period_range').val();
|
||||
let current_value = $('#row_period #hidden-period').val();
|
||||
let current_value = $('#row_period2 #hidden-period').val();
|
||||
let min_range = (current_value/12);
|
||||
if(min_range > value_period_range) {
|
||||
$('#row_period_range div:nth-child(2) select option').removeAttr("selected");
|
||||
|
@ -8003,10 +8048,10 @@ function control_period_range() {
|
|||
$(document).ready(function () {
|
||||
$('[id^=period], #combo_graph_options, #combo_sla_sort_options').next().css('z-index', 0);
|
||||
|
||||
$('#row_period input').change(function(e){
|
||||
$('#row_period2 input').change(function(e){
|
||||
control_period_range();
|
||||
});
|
||||
$('#row_period select').change(function(e){
|
||||
$('#row_period2 select').change(function(e){
|
||||
control_period_range();
|
||||
});
|
||||
$('#row_period_range input').change(function(e){
|
||||
|
|
|
@ -777,7 +777,7 @@ $table->data[0][0] = html_print_label_input_block(
|
|||
)
|
||||
);
|
||||
$table->data[0][1] = html_print_label_input_block(
|
||||
__('Poisition'),
|
||||
__('Position'),
|
||||
html_print_input_text_extended(
|
||||
'position_to_delete',
|
||||
1,
|
||||
|
|
|
@ -1928,6 +1928,7 @@ switch ($action) {
|
|||
$values['graph_render'] = (int) get_parameter(
|
||||
'graph_render'
|
||||
);
|
||||
$values['check_unknowns_graph'] = get_parameter_switch('unknowns_graph', 0);
|
||||
case 'simple_baseline_graph':
|
||||
// HACK it is saved in show_graph field.
|
||||
$values['show_graph'] = (int) get_parameter(
|
||||
|
@ -2867,6 +2868,7 @@ switch ($action) {
|
|||
$values['graph_render'] = (int) get_parameter(
|
||||
'graph_render'
|
||||
);
|
||||
$values['check_unknowns_graph'] = get_parameter_switch('unknowns_graph', 0);
|
||||
case 'simple_baseline_graph':
|
||||
// HACK it is saved in show_graph field.
|
||||
$values['show_graph'] = (int) get_parameter(
|
||||
|
|
|
@ -151,7 +151,7 @@ $table->data[0][] = html_print_label_input_block(
|
|||
__('Name'),
|
||||
html_print_input_text(
|
||||
'name',
|
||||
$visualConsoleName,
|
||||
io_safe_output($visualConsoleName),
|
||||
'',
|
||||
80,
|
||||
100,
|
||||
|
|
|
@ -163,7 +163,7 @@ switch ($activeTab) {
|
|||
$background_color = (string) get_parameter('background_color');
|
||||
$width = (int) get_parameter('width');
|
||||
$height = (int) get_parameter('height');
|
||||
$visualConsoleName = (string) get_parameter('name');
|
||||
$visualConsoleName = (string) io_safe_input(get_parameter('name'));
|
||||
$is_favourite = (int) get_parameter('is_favourite_sent');
|
||||
$auto_adjust = (int) get_parameter('auto_adjust_sent');
|
||||
|
||||
|
@ -239,7 +239,7 @@ switch ($activeTab) {
|
|||
if ($uploadOK == 1) {
|
||||
if (move_uploaded_file($_FILES['background_image']['tmp_name'], $target_file)) {
|
||||
$background = $nameImage;
|
||||
$values['background'] = $background;
|
||||
$values['background'] = io_safe_input($background);
|
||||
$error2 = chmod($target_file, 0644);
|
||||
$uploadOK = $error2;
|
||||
} else {
|
||||
|
@ -872,7 +872,7 @@ $buttons[$activeTab]['active'] = true;
|
|||
|
||||
$tab_builder = ($activeTab === 'editor') ? 'visual_console_editor_editor_tab' : '';
|
||||
ui_print_standard_header(
|
||||
($visualConsoleName ?? ''),
|
||||
(io_safe_output($visualConsoleName) ?? ''),
|
||||
'images/visual_console.png',
|
||||
false,
|
||||
$tab_builder,
|
||||
|
|
|
@ -64,32 +64,33 @@ $table->style = [];
|
|||
// $table->style[0] = 'font-weight: bold';
|
||||
$table->align = [];
|
||||
$table->align[1] = 'center';
|
||||
$table->align[3] = 'center';
|
||||
$table->align[8] = 'right';
|
||||
$table->align[4] = 'center';
|
||||
$table->align[9] = 'right';
|
||||
|
||||
$table->headstyle[1] = 'text-align:center';
|
||||
$table->headstyle[3] = 'text-align:center';
|
||||
$table->headstyle[8] = 'text-align:right;width: 120px;';
|
||||
$table->headstyle[4] = 'text-align:center';
|
||||
$table->headstyle[9] = 'text-align:right;width: 120px;';
|
||||
|
||||
$table->titleclass = 'tabletitle';
|
||||
$table->titlestyle = 'text-transform:uppercase;';
|
||||
|
||||
$table->style[6] = 'display: flex;align-items: center;';
|
||||
$table->style[7] = 'display: flex;align-items: center;';
|
||||
|
||||
$table->head = [];
|
||||
$table->head[0] = __('Name');
|
||||
$table->head[1] = __('Status');
|
||||
$table->head[2] = __('Type');
|
||||
$table->head[3] = __('Version');
|
||||
$table->head[4] = __('Modules');
|
||||
$table->head[5] = __('Lag').ui_print_help_tip(__('Avg. Delay(sec)/Modules delayed'), true);
|
||||
$table->head[6] = __('T/Q').ui_print_help_tip(__('Threads / Queued modules currently'), true);
|
||||
$table->head[3] = __('Master');
|
||||
$table->head[4] = __('Version');
|
||||
$table->head[5] = __('Modules');
|
||||
$table->head[6] = __('Lag').ui_print_help_tip(__('Avg. Delay(sec)/Modules delayed'), true);
|
||||
$table->head[7] = __('T/Q').ui_print_help_tip(__('Threads / Queued modules currently'), true);
|
||||
// This will have a column of data such as "6 hours".
|
||||
$table->head[7] = __('Updated');
|
||||
$table->head[8] = __('Updated');
|
||||
|
||||
// Only Pandora Administrator can delete servers.
|
||||
if ((bool) check_acl($config['id_user'], 0, 'PM') === true) {
|
||||
$table->head[8] = '<span title="Operations">'.__('Op.').'</span>';
|
||||
$table->head[9] = '<span title="Operations">'.__('Op.').'</span>';
|
||||
}
|
||||
|
||||
$table->data = [];
|
||||
|
@ -143,9 +144,11 @@ foreach ($servers as $server) {
|
|||
}
|
||||
|
||||
// Type.
|
||||
$data[2] = '<span class="nowrap">'.$server['img'];
|
||||
$data[2] = '<span class="nowrap">'.$server['img'].' '.$server['name'];
|
||||
if ($server['master'] == $master) {
|
||||
$data[2] .= ui_print_help_tip(__('This is a master server'), true);
|
||||
$data[3] .= __('Yes', true);
|
||||
} else {
|
||||
$data[3] .= __('-');
|
||||
}
|
||||
|
||||
if ((int) $server['exec_proxy'] === 1) {
|
||||
|
@ -157,27 +160,27 @@ foreach ($servers as $server) {
|
|||
case 'event':
|
||||
case 'autoprovision':
|
||||
case 'migration':
|
||||
$data[3] = $server['version'];
|
||||
$data[4] = __('N/A');
|
||||
$data[4] = $server['version'];
|
||||
$data[5] = __('N/A');
|
||||
$data[6] = __('N/A');
|
||||
break;
|
||||
|
||||
case 'export':
|
||||
$data[3] = $server['version'];
|
||||
$data[4] = $server['modules'].' '.__('of').' '.$server['modules_total'];
|
||||
$data[5] = __('N/A');
|
||||
$data[4] = $server['version'];
|
||||
$data[5] = $server['modules'].' '.__('of').' '.$server['modules_total'];
|
||||
$data[6] = __('N/A');
|
||||
break;
|
||||
|
||||
default:
|
||||
$data[3] = $server['version'];
|
||||
$data[4] = $server['modules'].' '.__('of').' '.$server['modules_total'];
|
||||
$data[5] = '<span class="nowrap">'.$server['lag_txt'].'</span>';
|
||||
$data[4] = $server['version'];
|
||||
$data[5] = $server['modules'].' '.__('of').' '.$server['modules_total'];
|
||||
$data[6] = '<span class="nowrap">'.$server['lag_txt'].'</span>';
|
||||
break;
|
||||
}
|
||||
|
||||
$data[6] = '';
|
||||
$data[7] = '';
|
||||
if ($server['queued_modules'] > 500) {
|
||||
$data[6] .= '<div class="inline"><a onclick="show_dialog();" >'.html_print_image(
|
||||
$data[7] .= '<div class="inline"><a onclick="show_dialog();" >'.html_print_image(
|
||||
'images/info-warning.svg',
|
||||
true,
|
||||
[
|
||||
|
@ -189,9 +192,9 @@ foreach ($servers as $server) {
|
|||
).'</a></div> ';
|
||||
}
|
||||
|
||||
$data[6] .= $server['threads'].' : '.$server['queued_modules'];
|
||||
$data[7] .= $server['threads'].' : '.$server['queued_modules'];
|
||||
|
||||
$data[7] = ui_print_timestamp($server['keepalive'], true);
|
||||
$data[8] = ui_print_timestamp($server['keepalive'], true);
|
||||
|
||||
if ($server['type'] === 'data') {
|
||||
$ext = '_server';
|
||||
|
@ -208,11 +211,11 @@ foreach ($servers as $server) {
|
|||
|
||||
// Only Pandora Administrator can delete servers.
|
||||
if ((bool) check_acl($config['id_user'], 0, 'PM') === true) {
|
||||
$data[8] = '';
|
||||
$data[9] = '';
|
||||
|
||||
if ($server['type'] === 'recon') {
|
||||
$data[8] .= '<a href="'.ui_get_full_url('index.php?sec=gservers&sec2=godmode/servers/discovery&wiz=tasklist').'">';
|
||||
$data[8] .= html_print_image(
|
||||
$data[9] .= '<a href="'.ui_get_full_url('index.php?sec=gservers&sec2=godmode/servers/discovery&wiz=tasklist').'">';
|
||||
$data[9] .= html_print_image(
|
||||
'images/snmp-trap@svg.svg',
|
||||
true,
|
||||
[
|
||||
|
@ -221,12 +224,12 @@ foreach ($servers as $server) {
|
|||
|
||||
]
|
||||
);
|
||||
$data[8] .= '</a>';
|
||||
$data[9] .= '</a>';
|
||||
}
|
||||
|
||||
if ($server['type'] === 'data') {
|
||||
$data[8] .= '<a href="'.ui_get_full_url('index.php?sec=gservers&sec2=godmode/servers/modificar_server&refr=0&server_reset_counts='.$server['id_server']).'">';
|
||||
$data[8] .= html_print_image(
|
||||
$data[9] .= '<a href="'.ui_get_full_url('index.php?sec=gservers&sec2=godmode/servers/modificar_server&refr=0&server_reset_counts='.$server['id_server']).'">';
|
||||
$data[9] .= html_print_image(
|
||||
'images/force@svg.svg',
|
||||
true,
|
||||
[
|
||||
|
@ -234,10 +237,10 @@ foreach ($servers as $server) {
|
|||
'class' => 'main_menu_icon invert_filter',
|
||||
]
|
||||
);
|
||||
$data[8] .= '</a>';
|
||||
$data[9] .= '</a>';
|
||||
} else if ($server['type'] === 'enterprise snmp') {
|
||||
$data[8] .= '<a href="'.ui_get_full_url('index.php?sec=gservers&sec2=godmode/servers/modificar_server&refr=0&server_reset_snmp_enterprise='.$server['id_server']).'">';
|
||||
$data[8] .= html_print_image(
|
||||
$data[9] .= '<a href="'.ui_get_full_url('index.php?sec=gservers&sec2=godmode/servers/modificar_server&refr=0&server_reset_snmp_enterprise='.$server['id_server']).'">';
|
||||
$data[9] .= html_print_image(
|
||||
'images/force@svg.svg',
|
||||
true,
|
||||
[
|
||||
|
@ -245,12 +248,12 @@ foreach ($servers as $server) {
|
|||
'class' => 'main_menu_icon invert_filter',
|
||||
]
|
||||
);
|
||||
$data[8] .= '</a>';
|
||||
$data[9] .= '</a>';
|
||||
}
|
||||
|
||||
if ($server['type'] === 'event' && (bool) check_acl($config['id_user'], 0, 'LM') === true) {
|
||||
$data[8] .= '<a class="open-alerts-list-modal" href="">';
|
||||
$data[8] .= html_print_image(
|
||||
$data[9] .= '<a class="open-alerts-list-modal" href="">';
|
||||
$data[9] .= html_print_image(
|
||||
'images/alert@svg.svg',
|
||||
true,
|
||||
[
|
||||
|
@ -258,11 +261,11 @@ foreach ($servers as $server) {
|
|||
'class' => 'main_menu_icon invert_filter',
|
||||
]
|
||||
);
|
||||
$data[8] .= '</a>';
|
||||
$data[9] .= '</a>';
|
||||
}
|
||||
|
||||
$data[8] .= '<a href="'.ui_get_full_url('index.php?sec=gservers&sec2=godmode/servers/modificar_server&server='.$server['id_server']).'">';
|
||||
$data[8] .= html_print_image(
|
||||
$data[9] .= '<a href="'.ui_get_full_url('index.php?sec=gservers&sec2=godmode/servers/modificar_server&server='.$server['id_server']).'">';
|
||||
$data[9] .= html_print_image(
|
||||
'images/edit.svg',
|
||||
true,
|
||||
[
|
||||
|
@ -270,11 +273,11 @@ foreach ($servers as $server) {
|
|||
'class' => 'main_menu_icon invert_filter',
|
||||
]
|
||||
);
|
||||
$data[8] .= '</a>';
|
||||
$data[9] .= '</a>';
|
||||
|
||||
if (($names_servers[$safe_server_name] === true) && ($ext === '_server' || $server['type'] === 'enterprise satellite')) {
|
||||
$data[8] .= '<a href="'.ui_get_full_url('index.php?sec=gservers&sec2=godmode/servers/modificar_server&server_remote='.$server['id_server'].'&ext='.$ext.'&tab=agent_editor').'">';
|
||||
$data[8] .= html_print_image(
|
||||
$data[9] .= '<a href="'.ui_get_full_url('index.php?sec=gservers&sec2=godmode/servers/modificar_server&server_remote='.$server['id_server'].'&ext='.$ext.'&tab=agent_editor').'">';
|
||||
$data[9] .= html_print_image(
|
||||
'images/agents@svg.svg',
|
||||
true,
|
||||
[
|
||||
|
@ -282,10 +285,10 @@ foreach ($servers as $server) {
|
|||
'class' => 'main_menu_icon invert_filter',
|
||||
]
|
||||
);
|
||||
$data[8] .= '</a>';
|
||||
$data[9] .= '</a>';
|
||||
|
||||
$data[8] .= '<a href="'.ui_get_full_url('index.php?sec=gservers&sec2=godmode/servers/modificar_server&server_remote='.$server['id_server'].'&ext='.$ext).'">';
|
||||
$data[8] .= html_print_image(
|
||||
$data[9] .= '<a href="'.ui_get_full_url('index.php?sec=gservers&sec2=godmode/servers/modificar_server&server_remote='.$server['id_server'].'&ext='.$ext).'">';
|
||||
$data[9] .= html_print_image(
|
||||
'images/remote-configuration@svg.svg',
|
||||
true,
|
||||
[
|
||||
|
@ -293,12 +296,12 @@ foreach ($servers as $server) {
|
|||
'class' => 'main_menu_icon invert_filter',
|
||||
]
|
||||
);
|
||||
$data[8] .= '</a>';
|
||||
$data[9] .= '</a>';
|
||||
$names_servers[$safe_server_name] = false;
|
||||
}
|
||||
|
||||
$data[8] .= '<a href="'.ui_get_full_url('index.php?sec=gservers&sec2=godmode/servers/modificar_server&server_del='.$server['id_server'].'&delete=1').'">';
|
||||
$data[8] .= html_print_image(
|
||||
$data[9] .= '<a href="'.ui_get_full_url('index.php?sec=gservers&sec2=godmode/servers/modificar_server&server_del='.$server['id_server'].'&delete=1').'">';
|
||||
$data[9] .= html_print_image(
|
||||
'images/delete.svg',
|
||||
true,
|
||||
[
|
||||
|
@ -307,14 +310,14 @@ foreach ($servers as $server) {
|
|||
'class' => 'main_menu_icon invert_filter',
|
||||
]
|
||||
);
|
||||
$data[8] .= '</a>';
|
||||
$data[9] .= '</a>';
|
||||
}
|
||||
|
||||
if ($tiny) {
|
||||
unset($data[4]);
|
||||
unset($data[6]);
|
||||
unset($data[5]);
|
||||
unset($data[7]);
|
||||
unset($data[8]);
|
||||
unset($data[9]);
|
||||
}
|
||||
|
||||
$ext = '';
|
||||
|
@ -323,10 +326,10 @@ foreach ($servers as $server) {
|
|||
}
|
||||
|
||||
if ($tiny) {
|
||||
unset($table->head[4]);
|
||||
unset($table->head[6]);
|
||||
unset($table->head[5]);
|
||||
unset($table->head[7]);
|
||||
unset($table->head[8]);
|
||||
unset($table->head[9]);
|
||||
}
|
||||
|
||||
if ($tiny) {
|
||||
|
|
|
@ -71,6 +71,8 @@ if (isset($config['filemanager']['message']) === true) {
|
|||
$fallback_directory = 'images';
|
||||
// Get directory.
|
||||
$directory = (string) get_parameter('directory');
|
||||
$directory = str_replace('<', '', $text);
|
||||
$directory = str_replace('>', '', $text);
|
||||
if (empty($directory) === true) {
|
||||
$directory = $fallback_directory;
|
||||
} else {
|
||||
|
|
|
@ -46,7 +46,7 @@ if ($idOS > 0) {
|
|||
$description = $os['description'];
|
||||
$icon = $os['icon_name'];
|
||||
} else {
|
||||
$name = io_safe_input(strip_tags(io_safe_output((string) get_parameter('name'))));
|
||||
$name = io_safe_input(strip_tags(trim(io_safe_output((string) get_parameter('name')))));
|
||||
$description = io_safe_input(strip_tags(io_safe_output((string) get_parameter('description'))));
|
||||
$icon = get_parameter('icon', 0);
|
||||
}
|
||||
|
@ -87,9 +87,16 @@ if ($is_management_allowed === true) {
|
|||
|
||||
if (in_array($file_ext, $allowed_extensions) === false) {
|
||||
$message = 9;
|
||||
} else if (exif_imagetype($file_tmp) === false && $file_ext !== 'svg') {
|
||||
$message = 10;
|
||||
} else {
|
||||
$message = 8;
|
||||
move_uploaded_file($file_tmp, $config['homedir'].'/images/os_icons/'.$file_name);
|
||||
|
||||
$file_uploaded = move_uploaded_file($file_tmp, $config['homedir'].'/images/os_icons/'.$file_name);
|
||||
|
||||
if ($file_uploaded !== true) {
|
||||
$message = 10;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
@ -108,7 +115,7 @@ if ($is_management_allowed === true) {
|
|||
|
||||
if ($resultOrId === false) {
|
||||
$message = 2;
|
||||
$tab = 'builder';
|
||||
$tab = 'manage_os';
|
||||
$actionHidden = 'save';
|
||||
$textButton = __('Create');
|
||||
$classButton = ['icon' => 'wand'];
|
||||
|
@ -144,13 +151,19 @@ if ($is_management_allowed === true) {
|
|||
|
||||
if (in_array($file_ext, $allowed_extensions) === false) {
|
||||
$message = 9;
|
||||
} else if (exif_imagetype($file_tmp) === false) {
|
||||
$message = 10;
|
||||
} else {
|
||||
$message = 8;
|
||||
move_uploaded_file($file_tmp, $config['homedir'].'/images/os_icons/'.$file_name);
|
||||
$file_uploaded = move_uploaded_file($file_tmp, $config['homedir'].'/images/os_icons/'.$file_name);
|
||||
|
||||
if ($file_uploaded !== true) {
|
||||
$message = 10;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$name = io_safe_input(strip_tags(io_safe_output((string) get_parameter('name'))));
|
||||
$name = io_safe_input(strip_tags(trim(io_safe_output((string) get_parameter('name')))));
|
||||
$description = io_safe_input(strip_tags(io_safe_output((string) get_parameter('description'))));
|
||||
$icon = get_parameter('icon', 0);
|
||||
|
||||
|
@ -254,7 +267,7 @@ $table->class = 'databox filter-table-adv';
|
|||
|
||||
$table->data[0][] = html_print_label_input_block(
|
||||
__('Name'),
|
||||
html_print_input_text('name', $name, __('Name'), 20, 30, true, false, false, '', 'w250px')
|
||||
html_print_input_text('name', $name, __('Name'), 20, 30, true, false, true, '', 'w250px')
|
||||
);
|
||||
|
||||
$table->data[0][] = html_print_label_input_block(
|
||||
|
@ -290,6 +303,28 @@ html_print_action_buttons(
|
|||
|
||||
echo '</form>';
|
||||
|
||||
$id_message = get_parameter('id_message', 0);
|
||||
|
||||
if ($id_message !== 0) {
|
||||
switch ($id_message) {
|
||||
case 8:
|
||||
echo ui_print_success_message(__('Icon successfuly uploaded'), '', true);
|
||||
break;
|
||||
|
||||
case 9:
|
||||
echo ui_print_error_message(__('File must be of type JPG, JPEG, PNG or SVG'), '', true);
|
||||
break;
|
||||
|
||||
case 10:
|
||||
echo ui_print_error_message(__('An error ocurrered to upload icon'), '', true);
|
||||
break;
|
||||
|
||||
default:
|
||||
// Nothing to do.
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function get_list_os_icons_dir()
|
||||
{
|
||||
|
|
|
@ -162,11 +162,15 @@ if (empty($id_message) === false) {
|
|||
break;
|
||||
|
||||
case 8:
|
||||
echo ui_print_success_message(__('Icon successfuly uploaded'), '', true);
|
||||
header('Location: index.php?sec=gagente&sec2=godmode/setup/os&tab=manage_os&action=edit&id_message=8');
|
||||
break;
|
||||
|
||||
case 9:
|
||||
echo ui_print_error_message(__('File must be of type JPG, JPEG, PNG or SVG'), '', true);
|
||||
header('Location: index.php?sec=gagente&sec2=godmode/setup/os&tab=manage_os&action=edit&id_message=9');
|
||||
break;
|
||||
|
||||
case 10:
|
||||
header('Location: index.php?sec=gagente&sec2=godmode/setup/os&tab=manage_os&action=edit&id_message=10');
|
||||
break;
|
||||
|
||||
default:
|
||||
|
|
|
@ -154,8 +154,7 @@ if ($update_config == 1 && $config['history_db_enabled'] == 1) {
|
|||
$performance_variables_control = (array) json_decode(io_safe_output($config['performance_variables_control']));
|
||||
|
||||
$total_agents = db_get_value('count(*)', 'tagente');
|
||||
$disable_agentaccess = ($total_agents >= 200 && $config['agentaccess'] == 0) ? true : false;
|
||||
|
||||
// $disable_agentaccess = ($total_agents >= 200 && $config['agentaccess'] == 0) ? true : false;
|
||||
$table_status = new StdClass();
|
||||
$table_status->width = '100%';
|
||||
$table_status->class = 'databox filters';
|
||||
|
@ -666,8 +665,8 @@ $table_other->data[2][1] = html_print_label_input_block(
|
|||
true
|
||||
)
|
||||
);
|
||||
|
||||
$table_other->data[3][0] = html_print_label_input_block(
|
||||
/*
|
||||
$table_other->data[3][0] = html_print_label_input_block(
|
||||
__('Use agent access graph'),
|
||||
html_print_checkbox_switch(
|
||||
'agentaccess',
|
||||
|
@ -676,9 +675,9 @@ $table_other->data[3][0] = html_print_label_input_block(
|
|||
true,
|
||||
$disable_agentaccess
|
||||
)
|
||||
);
|
||||
|
||||
$table_other->data[3][1] = html_print_label_input_block(
|
||||
);
|
||||
*/
|
||||
$table_other->data[3][0] = html_print_label_input_block(
|
||||
__('Max. recommended number of files in attachment directory'),
|
||||
html_print_input_text(
|
||||
'num_files_attachment',
|
||||
|
|
|
@ -93,7 +93,7 @@ $buttons['general'] = [
|
|||
'images/setup.png',
|
||||
true,
|
||||
[
|
||||
'title' => __('General'),
|
||||
'title' => __('General setup'),
|
||||
'class' => 'invert_filter',
|
||||
|
||||
]
|
||||
|
@ -265,7 +265,7 @@ if (enterprise_installed()) {
|
|||
switch ($section) {
|
||||
case 'general':
|
||||
$buttons['general']['active'] = true;
|
||||
$subpage = __('General');
|
||||
$subpage = __('General setup');
|
||||
$help_header = 'setup_general_tab';
|
||||
break;
|
||||
|
||||
|
@ -370,14 +370,14 @@ switch ($section) {
|
|||
break;
|
||||
|
||||
default:
|
||||
$subpage = 'seccion: '.$section;
|
||||
$subpage = 'seccion: ';
|
||||
// Default.
|
||||
break;
|
||||
}
|
||||
|
||||
// Header.
|
||||
ui_print_standard_header(
|
||||
$subpage,
|
||||
__('Setup').' » '.$subpage,
|
||||
'',
|
||||
false,
|
||||
$help_header,
|
||||
|
@ -388,6 +388,10 @@ ui_print_standard_header(
|
|||
'link' => '',
|
||||
'label' => __('Setup'),
|
||||
],
|
||||
[
|
||||
'link' => '',
|
||||
'label' => $subpage,
|
||||
],
|
||||
]
|
||||
);
|
||||
|
||||
|
|
|
@ -535,16 +535,47 @@ html_print_action_buttons(
|
|||
__('Update'),
|
||||
'update_button',
|
||||
false,
|
||||
[ 'icon' => 'update' ],
|
||||
[
|
||||
'icon' => 'update',
|
||||
'onclick' => 'onFormSubmit()',
|
||||
],
|
||||
true
|
||||
)
|
||||
);
|
||||
|
||||
echo '</form>';
|
||||
echo ui_print_warning_message(
|
||||
[
|
||||
'message' => __('Session timeout must be a number'),
|
||||
'force_class' => 'invisible js_warning_msg',
|
||||
],
|
||||
'',
|
||||
true
|
||||
);
|
||||
?>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
function onFormSubmit() {
|
||||
const isNumber = n => $.isNumeric(n);
|
||||
|
||||
let session_timeout = $('#text-session_timeout').val()
|
||||
if(isNumber(session_timeout)) {
|
||||
if (session_timeout < 0) {
|
||||
|
||||
session_timeout = -1;
|
||||
}
|
||||
if (session_timeout > 604800) {
|
||||
session_timeout = 604800;
|
||||
}
|
||||
$('#text-session_timeout').val(session_timeout);
|
||||
} else {
|
||||
$('.js_warning_msg').removeClass('invisible');
|
||||
event.preventDefault();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
function showAndHide() {
|
||||
if ($('input[type=checkbox][name=double_auth_enabled]:checked').val() == 1) {
|
||||
$('#table1-2FA_all_users').removeClass('invisible');
|
||||
|
|
|
@ -1952,6 +1952,7 @@ if ($create_alert || $update_alert) {
|
|||
[
|
||||
'border' => '0',
|
||||
'alt' => __('Delete'),
|
||||
'class' => 'invert_filter main_menu_icon',
|
||||
]
|
||||
).'</a> </td>';
|
||||
$data[1] .= '</tr>';
|
||||
|
|
|
@ -53,12 +53,30 @@ try {
|
|||
echo 'current historyDB MR: '.Config::get('MR', 'unknown', true)."\n";
|
||||
}
|
||||
|
||||
global $pandora_version;
|
||||
if (isset($pandora_version) === true
|
||||
&& empty($pandora_version) === false
|
||||
) {
|
||||
$version_array = explode('.', $pandora_version);
|
||||
if (is_array($version_array) === true) {
|
||||
$current_package = $version_array[2];
|
||||
if (count($version_array) > 2) {
|
||||
foreach ($version_array as $key => $value) {
|
||||
if ($key > 2) {
|
||||
$current_package .= '.'.$value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$umc = new UpdateManager\Client(
|
||||
[
|
||||
'homedir' => $config['homedir'],
|
||||
'dbconnection' => $config['dbconnection'],
|
||||
'historydb' => $historical_dbh,
|
||||
'MR' => (int) $current_mr,
|
||||
'homedir' => $config['homedir'],
|
||||
'dbconnection' => $config['dbconnection'],
|
||||
'historydb' => $historical_dbh,
|
||||
'MR' => (int) $current_mr,
|
||||
'current_package' => ($current_package ?? ''),
|
||||
]
|
||||
);
|
||||
|
||||
|
|
|
@ -155,14 +155,92 @@ if (is_ajax() === true) {
|
|||
|
||||
return;
|
||||
}
|
||||
|
||||
if ($delete_profile === true) {
|
||||
// Get parameters.
|
||||
$result = false;
|
||||
$id_user = (string) get_parameter('id_user');
|
||||
$id_up = (int) get_parameter('id_user_profile');
|
||||
$delete_user = (bool) get_parameter('delete_user', false);
|
||||
$user_is_global_admin = users_is_admin($id_user);
|
||||
|
||||
$perfilUser = db_get_row('tusuario_perfil', 'id_up', $id_up);
|
||||
$id_perfil = $perfilUser['id_perfil'];
|
||||
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_USER_MANAGEMENT,
|
||||
'Deleted profile for user '.io_safe_output($id_user),
|
||||
false,
|
||||
false,
|
||||
'The profile with id '.$id_perfil.' in the group '.$perfilUser['id_grupo']
|
||||
);
|
||||
// Delete profile.
|
||||
$profile_deleted = profile_delete_user_profile($id_user, $id_up);
|
||||
// Check if exists more profiles.
|
||||
$has_profile = db_get_row('tusuario_perfil', 'id_usuario', $id_user);
|
||||
if ($profile_deleted === true) {
|
||||
if ($has_profile === false && $user_is_global_admin === false && $delete_user === true) {
|
||||
if (is_metaconsole() === true) {
|
||||
$servers = metaconsole_get_servers();
|
||||
foreach ($servers as $server) {
|
||||
// Connect to the remote console.
|
||||
metaconsole_connect($server);
|
||||
|
||||
// Delete the user.
|
||||
$result = delete_user($id_user);
|
||||
if ($result === true) {
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_USER_MANAGEMENT,
|
||||
__('Deleted user %s from metaconsole', io_safe_output($id_user))
|
||||
);
|
||||
}
|
||||
|
||||
// Restore the db connection.
|
||||
metaconsole_restore_db();
|
||||
|
||||
// Log to the metaconsole too.
|
||||
if ($result === true) {
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_USER_MANAGEMENT,
|
||||
__(
|
||||
'Deleted user %s from %s',
|
||||
io_safe_input($id_user),
|
||||
io_safe_input($server['server_name'])
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
$result = delete_user((string) $id_user);
|
||||
|
||||
if ($result === true) {
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_USER_MANAGEMENT,
|
||||
__('Deleted user %s', io_safe_output($id_user))
|
||||
);
|
||||
}
|
||||
} else {
|
||||
$result = delete_user((string) $id_user);
|
||||
if ($result === true) {
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_USER_MANAGEMENT,
|
||||
__('Deleted user %s', io_safe_output($id_user))
|
||||
);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$result = $profile_deleted;
|
||||
}
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
|
||||
$tab = get_parameter('tab', 'user');
|
||||
|
||||
// Save autorefresh list.
|
||||
$autorefresh_list = (array) get_parameter_post('autorefresh_list');
|
||||
$autorefresh_white_list = (($autorefresh_list[0] === '') || ($autorefresh_list[0] === '0')) ? '' : json_encode($autorefresh_list);
|
||||
|
||||
// Header.
|
||||
if (is_metaconsole() === true) {
|
||||
user_meta_print_header();
|
||||
|
@ -195,11 +273,11 @@ if (is_metaconsole() === true) {
|
|||
).'</a>',
|
||||
],
|
||||
];
|
||||
|
||||
$buttons[$tab]['active'] = true;
|
||||
}
|
||||
|
||||
$edit_user = get_parameter('edit_user');
|
||||
|
||||
ui_print_standard_header(
|
||||
($edit_user) ? sprintf('%s [ %s ]', __('Update User'), $id) : __('Create User'),
|
||||
'images/gm_users.png',
|
||||
|
@ -222,11 +300,9 @@ if (is_metaconsole() === true) {
|
|||
],
|
||||
]
|
||||
);
|
||||
|
||||
$sec = 'gusuarios';
|
||||
}
|
||||
|
||||
|
||||
if ((bool) $config['user_can_update_info'] === true) {
|
||||
$view_mode = false;
|
||||
} else {
|
||||
|
@ -686,23 +762,55 @@ if ($update_user) {
|
|||
$id_user = (string) get_parameter('id_user', '');
|
||||
|
||||
if ($password_new != '') {
|
||||
$correct_password = false;
|
||||
if ($config['auth'] !== 'mysql') {
|
||||
ui_print_error_message(__('It is not possible to change the password because external authentication is being used'));
|
||||
} else {
|
||||
$correct_password = false;
|
||||
|
||||
$user_credentials_check = process_user_login($id_user, $own_password_confirm, true);
|
||||
$user_credentials_check = process_user_login($id_user, $own_password_confirm, true);
|
||||
|
||||
if ($user_credentials_check !== false) {
|
||||
$correct_password = true;
|
||||
}
|
||||
if ($user_credentials_check !== false) {
|
||||
$correct_password = true;
|
||||
}
|
||||
|
||||
if ((string) $password_confirm === (string) $password_new) {
|
||||
if ($correct_password === true || is_user_admin($config['id_user'])) {
|
||||
if ((is_user_admin($config['id_user']) === false || $config['enable_pass_policy_admin']) && $config['enable_pass_policy']) {
|
||||
$pass_ok = login_validate_pass($password_new, $id, true);
|
||||
if ($pass_ok != 1) {
|
||||
ui_print_error_message($pass_ok);
|
||||
if ((string) $password_confirm === (string) $password_new) {
|
||||
if ($correct_password === true || is_user_admin($config['id_user'])) {
|
||||
if ((is_user_admin($config['id_user']) === false || $config['enable_pass_policy_admin']) && $config['enable_pass_policy']) {
|
||||
$pass_ok = login_validate_pass($password_new, $id, true);
|
||||
if ($pass_ok != 1) {
|
||||
ui_print_error_message($pass_ok);
|
||||
} else {
|
||||
$res2 = update_user_password($id, $password_new);
|
||||
if ($res2) {
|
||||
db_process_sql_insert(
|
||||
'tsesion',
|
||||
[
|
||||
'id_sesion' => '',
|
||||
'id_usuario' => $id,
|
||||
'ip_origen' => $_SERVER['REMOTE_ADDR'],
|
||||
'accion' => 'Password change',
|
||||
'descripcion' => 'Access password updated',
|
||||
'fecha' => date('Y-m-d H:i:s'),
|
||||
'utimestamp' => time(),
|
||||
]
|
||||
);
|
||||
$res3 = save_pass_history($id, $password_new);
|
||||
|
||||
// Generate new API token.
|
||||
$newToken = api_token_generate();
|
||||
$res4 = update_user($id, ['api_token' => $newToken]);
|
||||
}
|
||||
|
||||
ui_print_result_message(
|
||||
$res1 || $res2,
|
||||
__('User info successfully updated'),
|
||||
__('Error updating user info (no change?)')
|
||||
);
|
||||
}
|
||||
} else {
|
||||
$res2 = update_user_password($id, $password_new);
|
||||
if ($res2) {
|
||||
$res3 = save_pass_history($id, $password_new);
|
||||
db_process_sql_insert(
|
||||
'tsesion',
|
||||
[
|
||||
|
@ -715,7 +823,6 @@ if ($update_user) {
|
|||
'utimestamp' => time(),
|
||||
]
|
||||
);
|
||||
$res3 = save_pass_history($id, $password_new);
|
||||
|
||||
// Generate new API token.
|
||||
$newToken = api_token_generate();
|
||||
|
@ -729,54 +836,27 @@ if ($update_user) {
|
|||
);
|
||||
}
|
||||
} else {
|
||||
$res2 = update_user_password($id, $password_new);
|
||||
if ($res2) {
|
||||
$res3 = save_pass_history($id, $password_new);
|
||||
db_process_sql_insert(
|
||||
'tsesion',
|
||||
[
|
||||
'id_sesion' => '',
|
||||
'id_usuario' => $id,
|
||||
'ip_origen' => $_SERVER['REMOTE_ADDR'],
|
||||
'accion' => 'Password change',
|
||||
'descripcion' => 'Access password updated',
|
||||
'fecha' => date('Y-m-d H:i:s'),
|
||||
'utimestamp' => time(),
|
||||
]
|
||||
);
|
||||
|
||||
// Generate new API token.
|
||||
$newToken = api_token_generate();
|
||||
$res4 = update_user($id, ['api_token' => $newToken]);
|
||||
if ($own_password_confirm === '') {
|
||||
ui_print_error_message(__('Password of the active user is required to perform password change'));
|
||||
} else {
|
||||
ui_print_error_message(__('Password of active user is not correct'));
|
||||
}
|
||||
|
||||
ui_print_result_message(
|
||||
$res1 || $res2,
|
||||
__('User info successfully updated'),
|
||||
__('Error updating user info (no change?)')
|
||||
);
|
||||
}
|
||||
} else {
|
||||
if ($own_password_confirm === '') {
|
||||
ui_print_error_message(__('Password of the active user is required to perform password change'));
|
||||
} else {
|
||||
ui_print_error_message(__('Password of active user is not correct'));
|
||||
}
|
||||
db_process_sql_insert(
|
||||
'tsesion',
|
||||
[
|
||||
'id_sesion' => '',
|
||||
'id_usuario' => $id,
|
||||
'ip_origen' => $_SERVER['REMOTE_ADDR'],
|
||||
'accion' => 'Password change',
|
||||
'descripcion' => 'Access password update failed',
|
||||
'fecha' => date('Y-m-d H:i:s'),
|
||||
'utimestamp' => time(),
|
||||
]
|
||||
);
|
||||
ui_print_error_message(__('Passwords does not match'));
|
||||
}
|
||||
} else {
|
||||
db_process_sql_insert(
|
||||
'tsesion',
|
||||
[
|
||||
'id_sesion' => '',
|
||||
'id_usuario' => $id,
|
||||
'ip_origen' => $_SERVER['REMOTE_ADDR'],
|
||||
'accion' => 'Password change',
|
||||
'descripcion' => 'Access password update failed',
|
||||
'fecha' => date('Y-m-d H:i:s'),
|
||||
'utimestamp' => time(),
|
||||
]
|
||||
);
|
||||
ui_print_error_message(__('Passwords does not match'));
|
||||
}
|
||||
} else {
|
||||
$has_skin = false;
|
||||
|
@ -862,89 +942,6 @@ if ($update_user) {
|
|||
$user_info = $values;
|
||||
}
|
||||
|
||||
if ($delete_profile) {
|
||||
$id2 = (string) get_parameter('id_user');
|
||||
$id_up = (int) get_parameter('id_user_profile');
|
||||
$perfilUser = db_get_row('tusuario_perfil', 'id_up', $id_up);
|
||||
$id_perfil = $perfilUser['id_perfil'];
|
||||
$perfil = db_get_row('tperfil', 'id_perfil', $id_perfil);
|
||||
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_USER_MANAGEMENT,
|
||||
'Deleted profile for user '.io_safe_output($id2),
|
||||
false,
|
||||
false,
|
||||
'The profile with id '.$id_perfil.' in the group '.$perfilUser['id_grupo']
|
||||
);
|
||||
|
||||
$return = profile_delete_user_profile($id2, $id_up);
|
||||
ui_print_result_message(
|
||||
$return,
|
||||
__('Successfully deleted'),
|
||||
__('Could not be deleted')
|
||||
);
|
||||
|
||||
|
||||
$has_profile = db_get_row('tusuario_perfil', 'id_usuario', $id2);
|
||||
$user_is_global_admin = users_is_admin($id2);
|
||||
|
||||
if ($has_profile === false && $user_is_global_admin === false) {
|
||||
$result = delete_user($id2);
|
||||
|
||||
if ($result === true) {
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_USER_MANAGEMENT,
|
||||
__('Deleted user %s', io_safe_output($id_user))
|
||||
);
|
||||
}
|
||||
|
||||
ui_print_result_message(
|
||||
$result,
|
||||
__('Successfully deleted'),
|
||||
__('There was a problem deleting the user')
|
||||
);
|
||||
|
||||
// Delete the user in all the consoles.
|
||||
if (is_metaconsole() === true) {
|
||||
$servers = metaconsole_get_servers();
|
||||
foreach ($servers as $server) {
|
||||
// Connect to the remote console.
|
||||
metaconsole_connect($server);
|
||||
|
||||
// Delete the user.
|
||||
$result = delete_user($id_user);
|
||||
if ($result === true) {
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_USER_MANAGEMENT,
|
||||
__('Deleted user %s from metaconsole', io_safe_output($id_user))
|
||||
);
|
||||
}
|
||||
|
||||
// Restore the db connection.
|
||||
metaconsole_restore_db();
|
||||
|
||||
// Log to the metaconsole too.
|
||||
if ($result === true) {
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_USER_MANAGEMENT,
|
||||
__(
|
||||
'Deleted user %s from %s',
|
||||
io_safe_input($id_user),
|
||||
io_safe_input($server['server_name'])
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
ui_print_result_message(
|
||||
$result,
|
||||
__('Successfully deleted from %s', io_safe_input($server['server_name'])),
|
||||
__('There was a problem deleting the user from %s', io_safe_input($server['server_name']))
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ((int) $status !== -1) {
|
||||
ui_print_result_message(
|
||||
$status,
|
||||
|
@ -1155,6 +1152,13 @@ if (is_user_admin($id) === true) {
|
|||
);
|
||||
}
|
||||
|
||||
html_print_div(
|
||||
[
|
||||
'id' => 'delete_profile_modal',
|
||||
'content' => '',
|
||||
]
|
||||
);
|
||||
|
||||
$full_name = ' <div class="label_select_simple">'.html_print_input_text_extended(
|
||||
'fullname',
|
||||
$user_info['fullname'],
|
||||
|
@ -1929,22 +1933,85 @@ if (is_metaconsole() === false) {
|
|||
});
|
||||
|
||||
$('input:image[name="del"]').click(function(e) {
|
||||
if ($(json_profile).length > 0) return;
|
||||
if (!confirm('Are you sure?')) return;
|
||||
e.preventDefault();
|
||||
var rows = $("#table_profiles tr").length;
|
||||
if (((is_metaconsole === '1' && rows <= 4) || (is_metaconsole === '' && rows <= 3)) && user_is_global_admin !== '1') {
|
||||
if (!confirm('<?php echo __('Deleting last profile will delete this user'); ?>' + '. ' + '<?php echo __('Are you sure?'); ?>')) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
var rows = $("#table_profiles tr").length;
|
||||
let deleteuser = 0;
|
||||
e.preventDefault();
|
||||
var id_user_profile = $(this).siblings();
|
||||
id_user_profile = id_user_profile[1].value;
|
||||
var row = $(this).closest('tr');
|
||||
|
||||
if (((is_metaconsole === '1' && rows <= 3) || (is_metaconsole !== '1' && rows <= 3)) && user_is_global_admin !== '1') {
|
||||
$("#delete_profile_modal")
|
||||
.empty()
|
||||
.html("<?php echo __('Deleting this profile will leave your user without a profile or group. You can continue by deleting the user or preserving it.'); ?>");
|
||||
// Set the title.
|
||||
$("#delete_profile_modal").prop("title", "<?php echo __('Are you sure?'); ?>");
|
||||
// Build the dialog for show the mesage.
|
||||
$("#delete_profile_modal").dialog({
|
||||
resizable: true,
|
||||
draggable: true,
|
||||
modal: true,
|
||||
width: 500,
|
||||
buttons: [
|
||||
{
|
||||
text: "Cancel",
|
||||
click: function() {
|
||||
$(this).dialog("close");
|
||||
return false;
|
||||
}
|
||||
},
|
||||
{
|
||||
text: "Delete",
|
||||
click: function() {
|
||||
$(this).dialog("close");
|
||||
deleteuser = 1;
|
||||
delete_user_profile(id_user_profile, row, id_user, deleteuser);
|
||||
}
|
||||
},
|
||||
{
|
||||
text: "Preserve",
|
||||
click: function() {
|
||||
$(this).dialog("close");
|
||||
deleteuser = 0;
|
||||
delete_user_profile(id_user_profile, row, id_user, deleteuser)
|
||||
}
|
||||
}
|
||||
],
|
||||
overlay: {
|
||||
opacity: 0.5,
|
||||
background: "black"
|
||||
},
|
||||
closeOnEscape: false,
|
||||
open: function(event, ui) {
|
||||
$(".ui-dialog-titlebar-close").hide();
|
||||
}
|
||||
});
|
||||
} else {
|
||||
if (((is_metaconsole === '1' && rows <= 3) || (is_metaconsole === '' && rows <= 3)) && user_is_global_admin !== '1') {
|
||||
if (!confirm('<?php echo __('Deleting last profile will delete this user'); ?>' + '. ' + '<?php echo __('Are you sure?'); ?>')) {
|
||||
return false;
|
||||
} else {
|
||||
delete_user_profile(id_user_profile, row, id_user, deleteuser);
|
||||
}
|
||||
} else {
|
||||
if (!confirm('Are you sure?')) {
|
||||
return false;
|
||||
} else {
|
||||
delete_user_profile(id_user_profile, row, id_user, deleteuser);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($(json_profile).length > 0) return;
|
||||
});
|
||||
|
||||
function delete_user_profile(id_user_profile, row, id_user, deleteuser){
|
||||
var params = [];
|
||||
params.push("delete_profile=1");
|
||||
params.push("edit_user=1");
|
||||
params.push("delete_user=" + deleteuser);
|
||||
params.push("id_user=" + id_user);
|
||||
params.push("id_user_profile=" + id_user_profile);
|
||||
params.push("page=godmode/users/configure_user");
|
||||
|
@ -1955,15 +2022,14 @@ if (is_metaconsole() === false) {
|
|||
success: function(data) {
|
||||
row.remove();
|
||||
var rows = $("#table_profiles tr").length;
|
||||
|
||||
if (is_metaconsole === '' && rows <= 2 && user_is_global_admin !== '1') {
|
||||
if (is_metaconsole === '' && rows <= 2 && user_is_global_admin !== '1' && deleteuser == '1') {
|
||||
window.location.replace("<?php echo ui_get_full_url('index.php?sec=gusuarios&sec2=godmode/users/user_list&tab=user&pure=0', false, false, false); ?>");
|
||||
} else if (is_metaconsole === '1' && rows <= 3 && user_is_global_admin !== '1') {
|
||||
} else if (is_metaconsole === '1' && rows <= 2 && user_is_global_admin !== '1' && deleteuser == '1') {
|
||||
window.location.replace("<?php echo ui_get_full_url('index.php?sec=advanced&sec2=advanced/users_setup', false, false, true); ?>");
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function checkProfiles(e) {
|
||||
e.preventDefault();
|
||||
|
|
|
@ -327,7 +327,7 @@ $passwordManageTable->data = [];
|
|||
|
||||
$passwordManageTable->data['captions_newpassword'][0] = __('New password');
|
||||
$passwordManageTable->rowclass['fields_newpassword'] = 'w540px';
|
||||
$passwordManageTable->data['fields_newpassword'][0] = html_print_input_text_extended(
|
||||
$passwordManageTable->data['fields_newpassword'][0] = '<div class="relative container-div-input-password ">'.html_print_input_text_extended(
|
||||
'password_new',
|
||||
'',
|
||||
'password_new',
|
||||
|
@ -337,16 +337,17 @@ $passwordManageTable->data['fields_newpassword'][0] = html_print_input_text_exte
|
|||
$view_mode,
|
||||
'',
|
||||
[
|
||||
'class' => 'input w100p',
|
||||
'class' => 'input',
|
||||
'placeholder' => __('Password'),
|
||||
'style' => 'width: 540px',
|
||||
],
|
||||
true,
|
||||
true
|
||||
);
|
||||
).'</div>';
|
||||
|
||||
$passwordManageTable->data['captions_repeatpassword'][0] = __('Repeat new password');
|
||||
$passwordManageTable->rowclass['fields_repeatpassword'] = 'w540px';
|
||||
$passwordManageTable->data['fields_repeatpassword'][0] = html_print_input_text_extended(
|
||||
$passwordManageTable->data['fields_repeatpassword'][0] = '<div class="relative container-div-input-password ">'.html_print_input_text_extended(
|
||||
'password_confirm',
|
||||
'',
|
||||
'password_conf',
|
||||
|
@ -358,10 +359,11 @@ $passwordManageTable->data['fields_repeatpassword'][0] = html_print_input_text_e
|
|||
[
|
||||
'class' => 'input w100p',
|
||||
'placeholder' => __('Password confirmation'),
|
||||
'style' => 'width: 540px',
|
||||
],
|
||||
true,
|
||||
true
|
||||
);
|
||||
).'</div>';
|
||||
|
||||
if ($new_user === false && users_is_admin() === false) {
|
||||
$passwordManageTable->data['captions_currentpassword'][0] = __('Current password');
|
||||
|
|
|
@ -0,0 +1,235 @@
|
|||
<?php
|
||||
/**
|
||||
* Update manager client historical updates backend.
|
||||
*
|
||||
* @category Update Manager
|
||||
* @package Pandora FMS
|
||||
* @subpackage Community
|
||||
* @version 1.0.0
|
||||
* @license See below
|
||||
*
|
||||
* ______ ___ _______ _______ ________
|
||||
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
|
||||
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
|
||||
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
|
||||
*
|
||||
* ============================================================================
|
||||
* Copyright (c) 2005-2023 Pandora FMS
|
||||
* Please see https://pandorafms.com/community/ 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 for 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.
|
||||
* ============================================================================
|
||||
*/
|
||||
|
||||
// Begin.
|
||||
global $config;
|
||||
|
||||
$method = get_parameter('method', null);
|
||||
$filter = get_parameter('filter', '');
|
||||
$urlDashboard = get_parameter('urlDashboard', '');
|
||||
$manageDashboards = get_parameter('manageDashboards', 1);
|
||||
|
||||
if ($method === 'draw') {
|
||||
// Datatables offset, limit and order.
|
||||
$filter = get_parameter('filter', []);
|
||||
$start = get_parameter('start', 0);
|
||||
$length = get_parameter('length', $config['block_size']);
|
||||
$orderBy = get_datatable_order(true);
|
||||
|
||||
$sort_field = $orderBy['field'];
|
||||
$order = $orderBy['direction'];
|
||||
|
||||
$pagination = '';
|
||||
$pagination = sprintf(
|
||||
' LIMIT %d OFFSET %d ',
|
||||
$length,
|
||||
$start,
|
||||
);
|
||||
|
||||
try {
|
||||
$table = new stdClass();
|
||||
$table->width = '100%';
|
||||
$table->class = 'info_table';
|
||||
$table->headstyle['name'] = 'text-align: left;';
|
||||
$table->headstyle['cells'] = 'text-align: center;';
|
||||
$table->headstyle['groups'] = 'text-align: center;';
|
||||
$table->headstyle['favorite'] = 'text-align: center;';
|
||||
$table->headstyle['full_screen'] = 'text-align: center;';
|
||||
|
||||
$table->style = [];
|
||||
$table->style['name'] = 'text-align: left;';
|
||||
$table->style['cells'] = 'text-align: center;';
|
||||
$table->style['groups'] = 'text-align: center;';
|
||||
$table->style['favorite'] = 'text-align: center;';
|
||||
$table->style['full_screen'] = 'text-align: center;';
|
||||
|
||||
$table->size = [];
|
||||
$table->size['name'] = '40%';
|
||||
$table->size['full_screen'] = '30px';
|
||||
|
||||
$table->head = [];
|
||||
$table->head['name'] = __('Name');
|
||||
$table->head['cells'] = __('Cells');
|
||||
$table->head['groups'] = __('Group');
|
||||
$table->head['favorite'] = __('Favorite');
|
||||
$table->head['full_screen'] = __('Full screen');
|
||||
|
||||
if ($manageDashboards === 1) {
|
||||
$table->head['copy'] = __('Copy');
|
||||
$table->head['delete'] = __('Delete');
|
||||
$table->headstyle['copy'] = 'text-align: center;';
|
||||
$table->headstyle['delete'] = 'text-align: center;';
|
||||
$table->style['copy'] = 'text-align: center;';
|
||||
$table->style['delete'] = 'text-align: center;';
|
||||
$table->size['cells'] = '30px';
|
||||
$table->size['groups'] = '30px';
|
||||
$table->size['favorite'] = '30px';
|
||||
$table->size['copy'] = '30px';
|
||||
$table->size['delete'] = '30px';
|
||||
} else {
|
||||
$table->size['cells'] = '60px';
|
||||
$table->size['groups'] = '60px';
|
||||
$table->size['favorite'] = '60px';
|
||||
}
|
||||
|
||||
$table->data = [];
|
||||
|
||||
$where_name = '';
|
||||
if (strlen($filter['free_search']) > 0) {
|
||||
$where_name = 'name LIKE "%'.$filter['free_search'].'%"';
|
||||
}
|
||||
|
||||
$where_group = '';
|
||||
if (empty($filter['group']) === false && $filter['group'] !== '0') {
|
||||
$where_group = sprintf('id_group = %s', $filter['group']);
|
||||
if (empty($where_name) === false) {
|
||||
$where_group = 'AND '.$where_group;
|
||||
}
|
||||
}
|
||||
|
||||
$where = '';
|
||||
if (empty($where_name) === false || empty($where_group) === false) {
|
||||
$where = sprintf(
|
||||
'WHERE %s %s',
|
||||
$where_name,
|
||||
$where_group
|
||||
);
|
||||
}
|
||||
|
||||
$sql = 'SELECT * FROM tdashboard '.$where.' ORDER BY id '.$pagination;
|
||||
$dashboards = db_get_all_rows_sql($sql);
|
||||
$count = db_get_value_sql('SELECT COUNT(*) FROM tdashboard '.$where);
|
||||
foreach ($dashboards as $dashboard) {
|
||||
$data = [];
|
||||
|
||||
$dataQuery = ['dashboardId' => $dashboard['id']];
|
||||
|
||||
$url = $urlDashboard.'&'.http_build_query($dataQuery);
|
||||
$data['name'] = '<a href="'.$url.'">';
|
||||
$data['name'] .= $dashboard['name'];
|
||||
$data['name'] .= '</a>';
|
||||
|
||||
$data['cells'] = $dashboard['cells'];
|
||||
|
||||
if (empty($dashboard['id_user']) === false) {
|
||||
$data['groups'] = __(
|
||||
'Private for (%s)',
|
||||
$dashboard['id_user']
|
||||
);
|
||||
} else {
|
||||
$data['groups'] = ui_print_group_icon(
|
||||
$dashboard['id_group'],
|
||||
true
|
||||
);
|
||||
}
|
||||
|
||||
$data['favorite'] = $dashboard['active'];
|
||||
|
||||
$dataQueryFull = [
|
||||
'dashboardId' => $dashboard['id'],
|
||||
'pure' => 1,
|
||||
];
|
||||
|
||||
$urlFull = $urlDashboard;
|
||||
$urlFull .= '&'.\http_build_query($dataQueryFull);
|
||||
$data['full_screen'] = '<a href="'.$urlFull.'">';
|
||||
$data['full_screen'] .= \html_print_image(
|
||||
'images/fullscreen@svg.svg',
|
||||
true,
|
||||
['class' => 'main_menu_icon invert_filter']
|
||||
);
|
||||
$data['full_screen'] .= '</a>';
|
||||
|
||||
if ($manageDashboards === 1) {
|
||||
$data['copy'] = '';
|
||||
$data['delete'] = '';
|
||||
}
|
||||
|
||||
if (check_acl_restricted_all($config['id_user'], $dashboard['id_group'], 'RM')) {
|
||||
$dataQueryCopy = [
|
||||
'dashboardId' => $dashboard['id'],
|
||||
'copyDashboard' => 1,
|
||||
];
|
||||
$urlCopy = $urlDashboard.'&'.\http_build_query($dataQueryCopy);
|
||||
$data['copy'] = '<a href="'.$urlCopy.'">';
|
||||
$data['copy'] .= html_print_image('images/copy.svg', true, ['class' => 'main_menu_icon invert_filter']);
|
||||
$data['copy'] .= '</a>';
|
||||
|
||||
$dataQueryDelete = [
|
||||
'dashboardId' => $dashboard['id'],
|
||||
'deleteDashboard' => 1,
|
||||
];
|
||||
$urlDelete = $urlDashboard;
|
||||
$urlDelete .= '&'.\http_build_query($dataQueryDelete);
|
||||
$data['delete'] = '<a href="'.$urlDelete;
|
||||
$data['delete'] .= '" onclick="javascript: if (!confirm(\''.__('Are you sure?').'\')) return false;">';
|
||||
$data['delete'] .= \html_print_image(
|
||||
'images/delete.svg',
|
||||
true,
|
||||
['class' => 'main_menu_icon invert_filter']
|
||||
);
|
||||
$data['delete'] .= '</a>';
|
||||
}
|
||||
|
||||
$table->cellclass[] = [
|
||||
'full_screen' => 'table_action_buttons',
|
||||
'copy' => 'table_action_buttons',
|
||||
'delete' => 'table_action_buttons',
|
||||
];
|
||||
|
||||
$table->data[] = $data;
|
||||
}
|
||||
|
||||
// Datatables format: RecordsTotal && recordsfiltered.
|
||||
echo json_encode(
|
||||
[
|
||||
'data' => $table->data,
|
||||
'recordsTotal' => $count,
|
||||
'recordsFiltered' => $count,
|
||||
]
|
||||
);
|
||||
// Capture output.
|
||||
$response = ob_get_clean();
|
||||
} catch (Exception $e) {
|
||||
echo json_encode(['error' => $e->getMessage()]);
|
||||
exit;
|
||||
}
|
||||
|
||||
// If not valid, show error with issue.
|
||||
json_decode($response);
|
||||
if (json_last_error() == JSON_ERROR_NONE) {
|
||||
// If valid dump.
|
||||
echo $response;
|
||||
} else {
|
||||
echo json_encode(
|
||||
['error' => $response]
|
||||
);
|
||||
}
|
||||
|
||||
exit;
|
||||
}
|
|
@ -92,6 +92,8 @@ $get_id_source_event = get_parameter('get_id_source_event');
|
|||
$node_id = (int) get_parameter('node_id', 0);
|
||||
$settings_modal = get_parameter('settings', 0);
|
||||
$parameters_modal = get_parameter('parameters', 0);
|
||||
$draw_events_graph = get_parameter('drawEventsGraph', false);
|
||||
|
||||
// User private filter.
|
||||
$current_filter = get_parameter('current_filter', 0);
|
||||
$private_filter_event = get_parameter('private_filter_event', 0);
|
||||
|
@ -2751,3 +2753,10 @@ if ($draw_row_response_info === true) {
|
|||
echo $output;
|
||||
return;
|
||||
}
|
||||
|
||||
if ((bool) $draw_events_graph === true) {
|
||||
$filter = get_parameter('filter');
|
||||
$output = event_print_graph($filter);
|
||||
echo $output;
|
||||
return;
|
||||
}
|
|
@ -1168,7 +1168,9 @@ if (check_login()) {
|
|||
);
|
||||
}
|
||||
|
||||
$data[2] .= '<a href ="index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&id_agente='.$id_agente.'&tab=module&id_agent_module='.$module['id_agente_modulo'].'&edit_module='.$module['id_modulo'].'">';
|
||||
$data[2] .= ui_print_truncate_text($module['nombre'], 'module_medium', false, true, true, '…', 'font-size: 9pt;');
|
||||
$data[2] .= '</a>';
|
||||
if (empty($module['extended_info']) === false) {
|
||||
$data[2] .= ui_print_help_tip($module['extended_info'], true, '/images/default_list.png');
|
||||
}
|
||||
|
@ -1361,10 +1363,12 @@ if (check_login()) {
|
|||
$additionalLinkAction = '&flag=1';
|
||||
$linkCaption = __('Force checks');
|
||||
$imgaction = 'images/force@svg.svg';
|
||||
$visibility = '';
|
||||
} else {
|
||||
$additionalLinkAction = '';
|
||||
$linkCaption = __('Refresh');
|
||||
$imgaction = 'images/go-back@svg.svg';
|
||||
$visibility = 'visibility: initial;';
|
||||
}
|
||||
|
||||
$moduleActionButtons[] = html_print_anchor(
|
||||
|
@ -1376,6 +1380,7 @@ if (check_login()) {
|
|||
[
|
||||
'title' => __('Force remote check'),
|
||||
'class' => 'main_menu_icon forced_title',
|
||||
'style' => $visibility,
|
||||
]
|
||||
),
|
||||
],
|
||||
|
|
|
@ -38,6 +38,10 @@ if ($change_label === '1') {
|
|||
$source = get_parameter('source', 0);
|
||||
$user = get_parameter('user', '');
|
||||
$value = get_parameter('value', 0) ? 1 : 0;
|
||||
$user_info = get_user_info($config['id_user']);
|
||||
if ((bool) $user_info['is_admin'] === false && $config['id_user'] !== $user) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Update the label value.
|
||||
ob_clean();
|
||||
|
|
|
@ -59,6 +59,7 @@ if (is_ajax() === true) {
|
|||
$metaID = (int) get_parameter('metaID', 0);
|
||||
$childrenMethod = get_parameter('childrenMethod', 'on_demand');
|
||||
|
||||
|
||||
$default_filters = [
|
||||
'searchAgent' => '',
|
||||
'statusAgent' => AGENT_STATUS_ALL,
|
||||
|
@ -69,6 +70,7 @@ if (is_ajax() === true) {
|
|||
];
|
||||
$filter = get_parameter('filter', $default_filters);
|
||||
|
||||
|
||||
$agent_a = check_acl($config['id_user'], 0, 'AR');
|
||||
$agent_w = check_acl($config['id_user'], 0, 'AW');
|
||||
$access = ($agent_a === true) ? 'AR' : (($agent_w === true) ? 'AW' : 'AR');
|
||||
|
|
|
@ -70,8 +70,7 @@ $otherSerialize = get_parameter('other');
|
|||
$otherMode = get_parameter('other_mode', 'url_encode');
|
||||
$returnType = get_parameter('return_type', 'string');
|
||||
$info = get_parameter('info', '');
|
||||
$raw_decode = (bool) get_parameter('raw_decode', false);
|
||||
|
||||
$raw_decode = (bool) get_parameter('raw_decode', true);
|
||||
$other = parseOtherParameter($otherSerialize, $otherMode, $raw_decode);
|
||||
$apiPassword = io_output_password(
|
||||
db_get_value_filter(
|
||||
|
|
|
@ -829,17 +829,47 @@ class AgentWizard extends HTML
|
|||
];
|
||||
}
|
||||
|
||||
html_print_action_buttons(
|
||||
html_print_submit_button(
|
||||
$this->actionLabel,
|
||||
'sub-protocol',
|
||||
$create_modules_button = '';
|
||||
if ($this->actionType === 'snmp' && $this->version !== null && $this->message['type'][0] !== 'error') {
|
||||
$create_modules_button = html_print_submit_button(
|
||||
__('Create modules'),
|
||||
'create-modules-action',
|
||||
false,
|
||||
[
|
||||
'icon' => 'cog',
|
||||
'onclick' => '$("#form-main-wizard").submit();',
|
||||
'icon' => 'next',
|
||||
'onclick' => 'processListModules()',
|
||||
],
|
||||
true
|
||||
)
|
||||
);
|
||||
} else if ($this->actionType === 'wmi' && $this->protocol === 'wmi' && $this->message['type'][0] !== 'error') {
|
||||
$create_modules_button = html_print_submit_button(
|
||||
__('Create modules'),
|
||||
'create-modules-action',
|
||||
false,
|
||||
[
|
||||
'icon' => 'next',
|
||||
'onclick' => 'processListModules()',
|
||||
],
|
||||
true
|
||||
);
|
||||
} else {
|
||||
$create_modules_button = '';
|
||||
}
|
||||
|
||||
html_print_action_buttons(
|
||||
[
|
||||
html_print_submit_button(
|
||||
$this->actionLabel,
|
||||
'sub-protocol',
|
||||
false,
|
||||
[
|
||||
'icon' => 'cog',
|
||||
'onclick' => '$("#form-main-wizard").submit();',
|
||||
],
|
||||
true
|
||||
),
|
||||
$create_modules_button,
|
||||
]
|
||||
);
|
||||
|
||||
// Prints main form.
|
||||
|
@ -3765,7 +3795,10 @@ class AgentWizard extends HTML
|
|||
'label' => __('Create modules'),
|
||||
'name' => 'create-modules-action',
|
||||
'type' => 'button',
|
||||
'attributes' => [ 'icon' => 'next' ],
|
||||
'attributes' => [
|
||||
'icon' => 'next',
|
||||
'style' => 'display: none;',
|
||||
],
|
||||
'script' => 'processListModules();',
|
||||
'return' => true,
|
||||
],
|
||||
|
|
|
@ -457,9 +457,7 @@ class AgentsAlerts extends HTML
|
|||
$template2 = get_parameter('template');
|
||||
$module_action_threshold = get_parameter('module_action_threshold');
|
||||
$action_select = get_parameter('action_select', 0);
|
||||
|
||||
$id_alert = alerts_create_alert_agent_module($this->create_alert, $template2);
|
||||
|
||||
$id_alert = alerts_create_alert_agent_module($this->createAlert, $template2);
|
||||
if ($id_alert !== false) {
|
||||
if ($action_select != 0) {
|
||||
$values = [];
|
||||
|
|
|
@ -269,13 +269,6 @@ class ConsoleSupervisor
|
|||
$this->checkSyncQueueStatus();
|
||||
}
|
||||
|
||||
/*
|
||||
* Check number of agents is equals and more than 200.
|
||||
* NOTIF.ACCESSSTASTICS.PERFORMANCE
|
||||
*/
|
||||
|
||||
$this->checkAccessStatisticsPerformance();
|
||||
|
||||
/*
|
||||
* Checkc agent missing libraries.
|
||||
* NOTIF.AGENT.LIBRARY
|
||||
|
@ -573,13 +566,6 @@ class ConsoleSupervisor
|
|||
$this->checkSyncQueueStatus();
|
||||
}
|
||||
|
||||
/*
|
||||
* Check number of agents is equals and more than 200.
|
||||
* NOTIF.ACCESSSTASTICS.PERFORMANCE
|
||||
*/
|
||||
|
||||
$this->checkAccessStatisticsPerformance();
|
||||
|
||||
/*
|
||||
* Checkc agent missing libraries.
|
||||
* NOTIF.AGENT.LIBRARY
|
||||
|
@ -732,6 +718,8 @@ class ConsoleSupervisor
|
|||
'url' => '__url__/index.php?sec=general&sec2=godmode/setup/setup§ion=perf',
|
||||
]
|
||||
);
|
||||
} else {
|
||||
$this->cleanNotifications('NOTIF.ACCESSSTASTICS.PERFORMANCE');
|
||||
}
|
||||
} else {
|
||||
$this->cleanNotifications('NOTIF.ACCESSSTASTICS.PERFORMANCE');
|
||||
|
@ -2390,17 +2378,19 @@ class ConsoleSupervisor
|
|||
include_once $config['homedir'].'/include/functions_update_manager.php';
|
||||
$login = get_parameter('login', false);
|
||||
|
||||
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 here to start the registration process'),
|
||||
'url' => '__url__/index.php?sec=messages&sec2=godmode/update_manager/update_manager&tab=online',
|
||||
]
|
||||
);
|
||||
} else {
|
||||
$this->cleanNotifications('NOTIF.UPDATEMANAGER.REGISTRATION');
|
||||
if ($config['autoupdate'] === '1' || $_GET['sec2'] === 'godmode/update_manager/update_manager') {
|
||||
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 here to start the registration process'),
|
||||
'url' => '__url__/index.php?sec=messages&sec2=godmode/update_manager/update_manager&tab=online',
|
||||
]
|
||||
);
|
||||
} else {
|
||||
$this->cleanNotifications('NOTIF.UPDATEMANAGER.REGISTRATION');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -580,9 +580,6 @@ class Diagnostics extends Wizard
|
|||
$countModuleData = db_get_value_sql(
|
||||
'SELECT COUNT(*) FROM tagente_datos'
|
||||
);
|
||||
$countAgentAccess = db_get_value_sql(
|
||||
'SELECT COUNT(*) FROM tagent_access'
|
||||
);
|
||||
$countEvents = db_get_value_sql('SELECT COUNT(*) FROM tevento');
|
||||
|
||||
if (enterprise_installed() === true) {
|
||||
|
@ -595,39 +592,35 @@ class Diagnostics extends Wizard
|
|||
$result = [
|
||||
'error' => false,
|
||||
'data' => [
|
||||
'countAgents' => [
|
||||
'countAgents' => [
|
||||
'name' => __('Total agents'),
|
||||
'value' => $countAgents,
|
||||
],
|
||||
'countModules' => [
|
||||
'countModules' => [
|
||||
'name' => __('Total modules'),
|
||||
'value' => $countModules,
|
||||
],
|
||||
'countGroups' => [
|
||||
'countGroups' => [
|
||||
'name' => __('Total groups'),
|
||||
'value' => $countGroups,
|
||||
],
|
||||
'countModuleData' => [
|
||||
'countModuleData' => [
|
||||
'name' => __('Total module data records'),
|
||||
'value' => $countModuleData,
|
||||
],
|
||||
'countAgentAccess' => [
|
||||
'name' => __('Total agent access record'),
|
||||
'value' => $countAgentAccess,
|
||||
],
|
||||
'countEvents' => [
|
||||
'countEvents' => [
|
||||
'name' => __('Total events'),
|
||||
'value' => $countEvents,
|
||||
],
|
||||
'countTraps' => [
|
||||
'countTraps' => [
|
||||
'name' => __('Total traps'),
|
||||
'value' => $countTraps,
|
||||
],
|
||||
'countUsers' => [
|
||||
'countUsers' => [
|
||||
'name' => __('Total users'),
|
||||
'value' => $countUsers,
|
||||
],
|
||||
'countSessions' => [
|
||||
'countSessions' => [
|
||||
'name' => __('Total sessions'),
|
||||
'value' => $countSessions,
|
||||
],
|
||||
|
|
|
@ -47,6 +47,7 @@ class TipsWindow
|
|||
'renderPreview',
|
||||
'setShowTipsAtStartup',
|
||||
'getTips',
|
||||
'getTipById',
|
||||
];
|
||||
|
||||
/**
|
||||
|
@ -221,8 +222,13 @@ class TipsWindow
|
|||
*
|
||||
* @return array $tip
|
||||
*/
|
||||
public function getTipById($idTip)
|
||||
public function getTipById($idTip=false, $return=false)
|
||||
{
|
||||
if ($idTip === false) {
|
||||
$idTip = get_parameter('idTip');
|
||||
}
|
||||
|
||||
$return = get_parameter('return', false);
|
||||
$tip = db_get_row(
|
||||
'twelcome_tip',
|
||||
'id',
|
||||
|
@ -232,9 +238,20 @@ class TipsWindow
|
|||
$tip['title'] = io_safe_output($tip['title']);
|
||||
$tip['text'] = io_safe_output($tip['text']);
|
||||
$tip['url'] = io_safe_output($tip['url']);
|
||||
$tip['files'] = $this->getFilesFromTip($tip['id']);
|
||||
}
|
||||
|
||||
return $tip;
|
||||
if ($return !== false) {
|
||||
if (empty($tip) === false) {
|
||||
echo json_encode(['success' => true, 'data' => $tip]);
|
||||
return;
|
||||
} else {
|
||||
echo json_encode(['success' => false]);
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
return $tip;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -106,20 +106,24 @@ class TreeGroupEdition extends TreeGroup
|
|||
}
|
||||
|
||||
// Build the group hierarchy.
|
||||
foreach ($groups as $id => $group) {
|
||||
if (isset($groups[$id]['parent']) === true
|
||||
&& ($groups[$id]['parent'] != 0)
|
||||
) {
|
||||
$parent = $groups[$id]['parent'];
|
||||
// Parent exists.
|
||||
if (isset($groups[$parent]['children']) === false) {
|
||||
$groups[$parent]['children'] = [];
|
||||
}
|
||||
if (isset($this->filter['show_full_hirearchy']) === false
|
||||
|| (isset($this->filter['show_full_hirearchy']) === true && (bool) $this->filter['show_full_hirearchy'] === true)
|
||||
) {
|
||||
foreach ($groups as $id => $group) {
|
||||
if (isset($groups[$id]['parent']) === true
|
||||
&& ($groups[$id]['parent'] != 0)
|
||||
) {
|
||||
$parent = $groups[$id]['parent'];
|
||||
// Parent exists.
|
||||
if (isset($groups[$parent]['children']) === false) {
|
||||
$groups[$parent]['children'] = [];
|
||||
}
|
||||
|
||||
// Store a reference to the group into the parent.
|
||||
$groups[$parent]['children'][] = &$groups[$id];
|
||||
// This group was introduced into a parent.
|
||||
$groups[$id]['have_parent'] = true;
|
||||
// Store a reference to the group into the parent.
|
||||
$groups[$parent]['children'][] = &$groups[$id];
|
||||
// This group was introduced into a parent.
|
||||
$groups[$id]['have_parent'] = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -167,24 +171,112 @@ class TreeGroupEdition extends TreeGroup
|
|||
];
|
||||
|
||||
$group_acl = '';
|
||||
if (users_can_manage_group_all('AR') === false) {
|
||||
$user_groups_str = implode(',', $this->userGroupsArray);
|
||||
$group_acl = sprintf(
|
||||
'AND id_grupo IN (%s)',
|
||||
$user_groups_str
|
||||
$search_agent = '';
|
||||
$status_agent = '';
|
||||
$inner_agent = '';
|
||||
|
||||
if ((bool) is_metaconsole() === true) {
|
||||
if (users_can_manage_group_all('AR') === false) {
|
||||
$user_groups_str = implode(',', $this->userGroupsArray);
|
||||
$group_acl = sprintf(
|
||||
' AND tgrupo.id_grupo IN (%s) ',
|
||||
$user_groups_str
|
||||
);
|
||||
}
|
||||
|
||||
if (isset($this->filter['searchAgent']) === true && empty($this->filter['searchAgent']) === false
|
||||
|| isset($this->filter['statusAgent']) === true && strlen($this->filter['statusAgent']) > 0
|
||||
) {
|
||||
$inner_agent = 'INNER JOIN tmetaconsole_agent ON tgrupo.id_grupo = tmetaconsole_agent.id_grupo';
|
||||
}
|
||||
|
||||
if (isset($this->filter['searchAgent']) === true && empty($this->filter['searchAgent']) === false) {
|
||||
$search_agent = ' AND tmetaconsole_agent.alias LIKE "%'.$this->filter['searchAgent'].'%" ';
|
||||
}
|
||||
|
||||
if (isset($this->filter['statusAgent']) === true && strlen($this->filter['statusAgent']) > 0) {
|
||||
switch ($this->filter['statusAgent']) {
|
||||
case AGENT_STATUS_NORMAL:
|
||||
$status_agent = ' AND (
|
||||
tmetaconsole_agent.critical_count = 0
|
||||
AND tmetaconsole_agent.warning_count = 0
|
||||
AND tmetaconsole_agent.unknown_count = 0
|
||||
AND tmetaconsole_agent.normal_count > 0)';
|
||||
break;
|
||||
|
||||
case AGENT_STATUS_WARNING:
|
||||
$status_agent = ' AND (
|
||||
tmetaconsole_agent.critical_count = 0
|
||||
AND tmetaconsole_agent.warning_count > 0
|
||||
AND tmetaconsole_agent.total_count > 0)';
|
||||
break;
|
||||
|
||||
case AGENT_STATUS_CRITICAL:
|
||||
$status_agent = ' AND tmetaconsole_agent.critical_count > 0';
|
||||
break;
|
||||
|
||||
case AGENT_STATUS_UNKNOWN:
|
||||
$status_agent = ' AND (
|
||||
tmetaconsole_agent.critical_count = 0
|
||||
AND tmetaconsole_agent.warning_count = 0
|
||||
AND tmetaconsole_agent.unknown_count > 0)';
|
||||
break;
|
||||
|
||||
case AGENT_STATUS_NOT_NORMAL:
|
||||
$status_agent = ' AND (
|
||||
tmetaconsole_agent.normal_count <> total_count
|
||||
OR tmetaconsole_agent.total_count = notinit_count)';
|
||||
break;
|
||||
|
||||
case AGENT_STATUS_NOT_INIT:
|
||||
$status_agent = ' AND (
|
||||
tmetaconsole_agent.total_count = 0
|
||||
OR tmetaconsole_agent.total_count = notinit_count)';
|
||||
break;
|
||||
|
||||
default:
|
||||
// Nothing to do.
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
$sql = sprintf(
|
||||
'SELECT tgrupo.id_grupo AS gid,
|
||||
tgrupo.nombre as name,
|
||||
tgrupo.parent,
|
||||
tgrupo.icon
|
||||
FROM tgrupo
|
||||
%s
|
||||
WHERE 1=1
|
||||
%s
|
||||
%s
|
||||
%s ',
|
||||
$inner_agent,
|
||||
$search_agent,
|
||||
$status_agent,
|
||||
$group_acl
|
||||
);
|
||||
} else {
|
||||
if (users_can_manage_group_all('AR') === false) {
|
||||
$user_groups_str = implode(',', $this->userGroupsArray);
|
||||
$group_acl = sprintf(
|
||||
'AND id_grupo IN (%s)',
|
||||
$user_groups_str
|
||||
);
|
||||
}
|
||||
|
||||
$sql = sprintf(
|
||||
'SELECT id_grupo AS gid,
|
||||
nombre as name,
|
||||
parent,
|
||||
icon
|
||||
FROM tgrupo
|
||||
WHERE 1=1
|
||||
%s ',
|
||||
$group_acl
|
||||
);
|
||||
}
|
||||
|
||||
$sql = sprintf(
|
||||
'SELECT id_grupo AS gid,
|
||||
nombre as name,
|
||||
parent,
|
||||
icon
|
||||
FROM tgrupo
|
||||
WHERE 1=1 %s',
|
||||
$group_acl
|
||||
);
|
||||
|
||||
$stats = db_get_all_rows_sql($sql);
|
||||
$group_stats = [];
|
||||
foreach ($stats as $group) {
|
||||
|
|
|
@ -372,7 +372,7 @@ class WelcomeWindow extends Wizard
|
|||
$flag_um = true;
|
||||
}
|
||||
|
||||
if (empty($config['welcome_mail_configured']) === false) {
|
||||
if (empty($config['email_username']) === false && empty($config['email_password']) === false) {
|
||||
$btn_configure_mail_class = '';
|
||||
$li_configure_mail_class = 'row_green';
|
||||
$flag_cm = true;
|
||||
|
@ -702,7 +702,7 @@ class WelcomeWindow extends Wizard
|
|||
<?php
|
||||
echo html_print_input_hidden('check_connectivity', 1);
|
||||
echo html_print_label_input_block(
|
||||
__('Ip target'),
|
||||
__('IP address target'),
|
||||
html_print_input_text(
|
||||
'ip_target',
|
||||
'',
|
||||
|
@ -717,7 +717,7 @@ class WelcomeWindow extends Wizard
|
|||
)
|
||||
);
|
||||
echo html_print_label_input_block(
|
||||
__('Agent name'),
|
||||
__('Agent alias'),
|
||||
html_print_input_text(
|
||||
'agent_name',
|
||||
'',
|
||||
|
@ -732,7 +732,7 @@ class WelcomeWindow extends Wizard
|
|||
)
|
||||
);
|
||||
echo html_print_label_input_block(
|
||||
__('Module group'),
|
||||
__('Agent group'),
|
||||
html_print_select_from_sql(
|
||||
'SELECT * FROM tgrupo ORDER BY nombre',
|
||||
'id_group',
|
||||
|
@ -747,7 +747,6 @@ class WelcomeWindow extends Wizard
|
|||
'width: 100%;'
|
||||
)
|
||||
);
|
||||
|
||||
echo html_print_submit_button(__('Create'), 'create_conectivity', false, ['icon' => 'next', 'style' => 'margin-top:15px; float:right;']);
|
||||
?>
|
||||
</div>
|
||||
|
@ -1136,7 +1135,7 @@ class WelcomeWindow extends Wizard
|
|||
}
|
||||
|
||||
function configureEmail() {
|
||||
window.location = '<?php echo ui_get_full_url('index.php?sec=general&sec2=godmode/setup/setup§ion=general#table3'); ?>';
|
||||
window.location = '<?php echo ui_get_full_url('index.php?sec=general&sec2=godmode/setup/setup§ion=general#table4'); ?>';
|
||||
}
|
||||
|
||||
function serversUp() {
|
||||
|
@ -1263,14 +1262,18 @@ class WelcomeWindow extends Wizard
|
|||
});
|
||||
});
|
||||
|
||||
$('#button-create_conectivity').click(function(){
|
||||
$('#button-create_conectivity').click(function(e){
|
||||
if($("#text-ip_target")[0].checkValidity() == false) {
|
||||
$("#text-ip_target")[0].reportValidity();
|
||||
return false;
|
||||
}
|
||||
$.ajax({
|
||||
async: false,
|
||||
type: "POST",
|
||||
url: "include/ajax/task_to_perform.php",
|
||||
data: {
|
||||
check_connectivity: 1,
|
||||
id_group: $('#id_group :selected').val(),
|
||||
id_group: $('#id_group1 option:selected').val(),
|
||||
ip_target: $('#text-ip_target').val(),
|
||||
agent_name: $('#text-agent_name').val(),
|
||||
},
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
/**
|
||||
* Pandora build version and version
|
||||
*/
|
||||
$build_version = 'PC231113';
|
||||
$build_version = 'PC231128';
|
||||
$pandora_version = 'v7.0NG.774';
|
||||
|
||||
// Do not overwrite default timezone set if defined.
|
||||
|
|
|
@ -45,6 +45,7 @@ define('EVENT_NEW', 0);
|
|||
define('EVENT_VALIDATE', 1);
|
||||
define('EVENT_PROCESS', 2);
|
||||
define('EVENT_NO_VALIDATED', 3);
|
||||
define('EVENT_NO_PROCESS', 4);
|
||||
|
||||
// Events group by constants.
|
||||
define('EVENT_GROUP_REP_ALL', 0);
|
||||
|
|
|
@ -4845,6 +4845,48 @@ function get_resume_agent_concat($id_agente, $all_groups, $agent)
|
|||
$data[1] = $time_elapsed;
|
||||
$table_contact->data[] = $data;
|
||||
|
||||
if (enterprise_installed() === true) {
|
||||
// SecurityMon line.
|
||||
$id_module_group = db_get_value('id_mg', 'tmodule_group', 'name', 'Security');
|
||||
$modules = db_get_all_rows_filter(
|
||||
'tagente_modulo',
|
||||
[
|
||||
'id_agente' => $agent['id_agente'],
|
||||
'id_module_group' => $id_module_group,
|
||||
]
|
||||
);
|
||||
|
||||
if (is_array($modules) === true && count($modules) > 0) {
|
||||
$secmon_status = secmon_status($agent['id_agente']);
|
||||
$data = [];
|
||||
$data[0] = '<b>'.__('SecurityMon').'</b>';
|
||||
$data[1] = ui_print_status_secmon_div($secmon_status, __('Total security modules: %s', count($modules)));
|
||||
$table_contact->data[] = $data;
|
||||
}
|
||||
|
||||
// Hardening line.
|
||||
$module_score = modules_get_agentmodule_id(io_safe_input('Hardening - Score'), $agent['id_agente']);
|
||||
$hardening = '';
|
||||
if (is_array($module_score) === true && key_exists('id_agente_modulo', $module_score) == true) {
|
||||
$raw_data_score = modules_get_raw_data($module_score['id_agente_modulo'], 0, time());
|
||||
$hardening = format_numeric($raw_data_score[0]['datos'], 2);
|
||||
$data = [];
|
||||
$data[0] = '<b>'.__('Hardening').'</b>';
|
||||
$data[1] = $hardening.' %';
|
||||
$table_contact->data[] = $data;
|
||||
}
|
||||
|
||||
// Vulnerabilities line.
|
||||
$vuls = get_vulnerabilities($agent['id_agente']);
|
||||
if (is_array($vuls) === true && count($vuls) > 0) {
|
||||
$score = get_score($vuls);
|
||||
$data = [];
|
||||
$data[0] = '<b>'.__('Vulnerability').'</b>';
|
||||
$data[1] = ui_print_status_vulnerability_div($score);
|
||||
$table_contact->data[] = $data;
|
||||
}
|
||||
}
|
||||
|
||||
$agent_contact = html_print_div(
|
||||
[
|
||||
'class' => 'agent_details_header',
|
||||
|
@ -4857,3 +4899,24 @@ function get_resume_agent_concat($id_agente, $all_groups, $agent)
|
|||
|
||||
return $agent_contact;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Return an array with a list of status agents
|
||||
*
|
||||
* @return array.
|
||||
*/
|
||||
|
||||
|
||||
function agents_status_list()
|
||||
{
|
||||
$status_list = [];
|
||||
$status_list[AGENT_STATUS_NORMAL] = __('Normal');
|
||||
$status_list[AGENT_STATUS_WARNING] = __('Warning');
|
||||
$status_list[AGENT_STATUS_CRITICAL] = __('Critical');
|
||||
$status_list[AGENT_STATUS_UNKNOWN] = __('Unknown');
|
||||
$status_list[AGENT_STATUS_NOT_NORMAL] = __('Not normal');
|
||||
$status_list[AGENT_STATUS_NOT_INIT] = __('Not init');
|
||||
|
||||
return $status_list;
|
||||
}
|
|
@ -12952,7 +12952,7 @@ function api_set_create_event($id, $trash1, $other, $returnType)
|
|||
$values = [];
|
||||
|
||||
if ($other['data'][0] != '') {
|
||||
$values['event'] = $other['data'][0];
|
||||
$values['event'] = io_safe_input(io_safe_output($other['data'][0]));
|
||||
} else {
|
||||
returnError('Event text required.');
|
||||
return;
|
||||
|
|
|
@ -917,10 +917,6 @@ function config_update_config()
|
|||
$error_update[] = __('Batch statistics period (secs)');
|
||||
}
|
||||
|
||||
if (config_update_value('agentaccess', (int) get_parameter('agentaccess'), true) === false) {
|
||||
$error_update[] = __('Use agent access graph');
|
||||
}
|
||||
|
||||
if (config_update_value('num_files_attachment', (int) get_parameter('num_files_attachment'), true) === false) {
|
||||
$error_update[] = __('Max. recommended number of files in attachment directory');
|
||||
}
|
||||
|
@ -2237,10 +2233,6 @@ function config_process_config()
|
|||
config_update_value('show_qr_code_header', false);
|
||||
}
|
||||
|
||||
if (!isset($config['agentaccess'])) {
|
||||
config_update_value('agentaccess', true);
|
||||
}
|
||||
|
||||
if (!isset($config['timezone'])) {
|
||||
config_update_value('timezone', 'Europe/Berlin');
|
||||
}
|
||||
|
|
|
@ -982,6 +982,9 @@ function events_get_all(
|
|||
|
||||
case EVENT_NO_VALIDATED:
|
||||
$filter['status'][$key] = (EVENT_NEW.', '.EVENT_PROCESS);
|
||||
|
||||
case EVENT_NO_PROCESS:
|
||||
$filter['status'][$key] = (EVENT_NEW.', '.EVENT_VALIDATE);
|
||||
default:
|
||||
// Ignore.
|
||||
break;
|
||||
|
@ -1027,6 +1030,24 @@ function events_get_all(
|
|||
$validatedState
|
||||
);
|
||||
break;
|
||||
|
||||
case EVENT_NO_PROCESS:
|
||||
// Show comments in validated events.
|
||||
$validatedState = '';
|
||||
if ($validatedEvents === true) {
|
||||
$validatedState = sprintf(
|
||||
'OR estado = %d',
|
||||
EVENT_VALIDATE
|
||||
);
|
||||
}
|
||||
|
||||
$sql_filters[] = sprintf(
|
||||
' AND (estado = %d OR estado = %d %s)',
|
||||
EVENT_NEW,
|
||||
EVENT_VALIDATE,
|
||||
$validatedState
|
||||
);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -3204,12 +3225,14 @@ function events_get_all_status($report=false)
|
|||
$fields[1] = __('Only validated');
|
||||
$fields[2] = __('Only in process');
|
||||
$fields[3] = __('Only not validated');
|
||||
$fields[4] = __('Only not in process');
|
||||
} else {
|
||||
$fields[-1] = __('All event');
|
||||
$fields[0] = __('New');
|
||||
$fields[1] = __('Validated');
|
||||
$fields[2] = __('In process');
|
||||
$fields[3] = __('Not Validated');
|
||||
$fields[4] = __('Not in process');
|
||||
}
|
||||
|
||||
return $fields;
|
||||
|
@ -4039,7 +4062,13 @@ function events_get_response_target(
|
|||
if (empty($event['custom_data']) === false) {
|
||||
$custom_data = json_decode($event['custom_data']);
|
||||
foreach ($custom_data as $key => $value) {
|
||||
$target = str_replace('_customdata_'.$key.'_', $value, $target);
|
||||
if (is_array($value) === true) {
|
||||
foreach ($value as $k => $v) {
|
||||
$target = str_replace('_customdata_'.$k.'_', $v, $target);
|
||||
}
|
||||
} else {
|
||||
$target = str_replace('_customdata_'.$key.'_', $value, $target);
|
||||
}
|
||||
}
|
||||
|
||||
if (strpos($target, '_customdata_json_') !== false) {
|
||||
|
@ -5993,17 +6022,47 @@ function get_count_event_criticity(
|
|||
$type = 'AND event_type = "'.$eventType.'"';
|
||||
}
|
||||
|
||||
$groups = ' ';
|
||||
$groups = ' ';
|
||||
if ((int) $groupId !== 0) {
|
||||
$groups = 'AND id_grupo IN ('.$groupId.')';
|
||||
}
|
||||
|
||||
$status = ' ';
|
||||
if ((int) $eventStatus !== -1) {
|
||||
$status = 'AND estado = '.$eventStatus;
|
||||
$status = ' ';
|
||||
if (empty($eventStatus) === false) {
|
||||
switch ($eventStatus) {
|
||||
case EVENT_ALL:
|
||||
default:
|
||||
// Do not filter.
|
||||
break;
|
||||
|
||||
case EVENT_NEW:
|
||||
case EVENT_VALIDATE:
|
||||
case EVENT_PROCESS:
|
||||
$status = sprintf(
|
||||
' AND estado = %d',
|
||||
$eventStatus
|
||||
);
|
||||
break;
|
||||
|
||||
case EVENT_NO_VALIDATED:
|
||||
$status = sprintf(
|
||||
' AND (estado = %d OR estado = %d)',
|
||||
EVENT_NEW,
|
||||
EVENT_PROCESS
|
||||
);
|
||||
break;
|
||||
|
||||
case EVENT_NO_PROCESS:
|
||||
$status = sprintf(
|
||||
' AND (estado = %d OR estado = %d)',
|
||||
EVENT_NEW,
|
||||
EVENT_VALIDATE
|
||||
);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
$criticity = ' ';
|
||||
$criticity = ' ';
|
||||
if (empty($criticityId) === false) {
|
||||
$criticity = 'AND criticity IN ('.$criticityId.')';
|
||||
}
|
||||
|
@ -6199,3 +6258,144 @@ function event_get_counter_extraId(array $event, ?array $filters)
|
|||
|
||||
return $counters;
|
||||
}
|
||||
|
||||
|
||||
function event_print_graph(
|
||||
$filter,
|
||||
$graph_height=100,
|
||||
) {
|
||||
global $config;
|
||||
$show_all_data = false;
|
||||
$events = events_get_all(['te.id_evento', 'te.timestamp', 'te.utimestamp'], $filter, null, null, 'te.utimestamp', true);
|
||||
|
||||
if (empty($filter['date_from']) === false
|
||||
&& empty($filter['time_from']) === false
|
||||
&& empty($filter['date_to']) === false
|
||||
&& empty($filter['time_to']) === false
|
||||
) {
|
||||
$start_utimestamp = strtotime($filter['date_from'].' '.$filter['time_from']);
|
||||
$end_utimestamp = strtotime($filter['date_to'].' '.$filter['time_to']);
|
||||
} else if ($filter['event_view_hr'] !== '') {
|
||||
$start_utimestamp = strtotime('-'.$filter['event_view_hr'].' hours');
|
||||
$end_utimestamp = strtotime('now');
|
||||
} else {
|
||||
$show_all_data = true;
|
||||
$start_utimestamp = $events[0]['utimestamp'];
|
||||
$end_utimestamp = $events[array_key_last($events)]['utimestamp'];
|
||||
}
|
||||
|
||||
$data_events = [];
|
||||
$control_timestamp = $start_utimestamp;
|
||||
$count = 0;
|
||||
foreach ($events as $event) {
|
||||
if ($event['utimestamp'] === $control_timestamp) {
|
||||
$count++;
|
||||
} else {
|
||||
$control_timestamp = $event['utimestamp'];
|
||||
$count = 1;
|
||||
}
|
||||
|
||||
$data_events[$control_timestamp] = $count;
|
||||
}
|
||||
|
||||
$num_data = count($data_events);
|
||||
|
||||
$num_intervals = $num_data;
|
||||
|
||||
$period = ($end_utimestamp - $start_utimestamp);
|
||||
|
||||
if ($period <= SECONDS_6HOURS) {
|
||||
$chart_time_format = 'H:i:s';
|
||||
} else if ($period < SECONDS_1DAY) {
|
||||
$chart_time_format = 'H:i';
|
||||
} else if ($period < SECONDS_15DAYS) {
|
||||
$chart_time_format = 'M d H:i';
|
||||
} else if ($period < SECONDS_1MONTH) {
|
||||
$chart_time_format = 'M d H\h';
|
||||
} else {
|
||||
$chart_time_format = 'M d H\h';
|
||||
}
|
||||
|
||||
$chart = [];
|
||||
$labels = [];
|
||||
$color = [];
|
||||
$count = 0;
|
||||
|
||||
if ($show_all_data === true) {
|
||||
foreach ($events as $event) {
|
||||
if ($event['utimestamp'] === $control_timestamp) {
|
||||
$count++;
|
||||
} else {
|
||||
$control_timestamp = $event['utimestamp'];
|
||||
$count = 1;
|
||||
}
|
||||
|
||||
$data_events[$control_timestamp] = $count;
|
||||
}
|
||||
|
||||
$data_events = array_reverse($data_events, true);
|
||||
|
||||
foreach ($data_events as $utimestamp => $count) {
|
||||
$labels[] = date($chart_time_format, $utimestamp);
|
||||
$chart[] = [
|
||||
'y' => $count,
|
||||
'x' => date($chart_time_format, $utimestamp),
|
||||
];
|
||||
$color[] = '#82b92f';
|
||||
}
|
||||
} else {
|
||||
$interval_length = (int) ($period / $num_intervals);
|
||||
$intervals = [];
|
||||
$intervals[0] = $start_utimestamp;
|
||||
for ($i = 0; $i < $num_intervals; $i++) {
|
||||
$intervals[($i + 1)] = ($intervals[$i] + $interval_length);
|
||||
}
|
||||
|
||||
$control_data = [];
|
||||
|
||||
foreach ($data_events as $utimestamp => $count_event) {
|
||||
for ($i = 0; $i < $num_intervals; $i++) {
|
||||
if ((int) $utimestamp > (int) $intervals[$i] && (int) $utimestamp < (int) $intervals[($i + 1)]) {
|
||||
$control_data[(string) $intervals[$i]] += $count_event;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for ($i = 0; $i < $num_intervals; $i++) {
|
||||
$labels[] = date($chart_time_format, $intervals[$i]);
|
||||
$chart[] = [
|
||||
'y' => $control_data[$intervals[$i]],
|
||||
'x' => date($chart_time_format, $intervals[$i]),
|
||||
];
|
||||
$color[] = '#82b92f';
|
||||
}
|
||||
}
|
||||
|
||||
$water_mark = [
|
||||
'file' => $config['homedir'].'/images/logo_vertical_water.png',
|
||||
'url' => ui_get_full_url('/images/logo_vertical_water.png'),
|
||||
];
|
||||
|
||||
$options = [
|
||||
'height' => $graph_height,
|
||||
'waterMark' => $water_mark,
|
||||
'legend' => ['display' => false],
|
||||
'colors' => $color,
|
||||
'border' => false,
|
||||
'scales' => [
|
||||
'x' => [
|
||||
'grid' => ['display' => false],
|
||||
],
|
||||
'y' => [
|
||||
'grid' => ['display' => false],
|
||||
],
|
||||
],
|
||||
'labels' => $labels,
|
||||
];
|
||||
|
||||
$graph = '<div style="width:100%; height: '.$graph_height.'px;">';
|
||||
$graph .= vbar_graph($chart, $options);
|
||||
$graph .= '</div>';
|
||||
|
||||
return $graph;
|
||||
}
|
||||
|
|
|
@ -2525,92 +2525,6 @@ function combined_graph_summatory_average(
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* Print a graph with access data of agents.
|
||||
*
|
||||
* @param integer $id_agent Agent Id.
|
||||
* @param integer $period Timestamp period graph.
|
||||
* @param boolean|null $return Type return.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function graphic_agentaccess(
|
||||
int $id_agent,
|
||||
int $period=0,
|
||||
?bool $return=false,
|
||||
?bool $agent_view=false
|
||||
) {
|
||||
global $config;
|
||||
|
||||
// Dates.
|
||||
$date = get_system_time();
|
||||
$datelimit = ($date - $period);
|
||||
$interval = 3600;
|
||||
|
||||
// Query.
|
||||
$sql = sprintf(
|
||||
'SELECT utimestamp, count(*) as data
|
||||
FROM tagent_access
|
||||
WHERE id_agent = %d
|
||||
AND utimestamp >= %d
|
||||
AND utimestamp <= %d
|
||||
GROUP BY TRUNCATE(utimestamp/%d,0)',
|
||||
$id_agent,
|
||||
$datelimit,
|
||||
$date,
|
||||
$interval
|
||||
);
|
||||
|
||||
$data = db_get_all_rows_sql($sql);
|
||||
|
||||
// Array data.
|
||||
$data_array = [];
|
||||
$colors = [];
|
||||
if (isset($data) === true && is_array($data) === true) {
|
||||
foreach ($data as $value) {
|
||||
$time = io_safe_output(date('H:m', $value['utimestamp']));
|
||||
$labels[] = $time;
|
||||
$data_array[] = [
|
||||
'y' => (int) $value['data'],
|
||||
'x' => $time,
|
||||
];
|
||||
|
||||
$colors[] = '#82b92f';
|
||||
}
|
||||
}
|
||||
|
||||
$options = [];
|
||||
$options['grid']['hoverable'] = true;
|
||||
|
||||
if ($agent_view === true) {
|
||||
$options['agent_view'] = true;
|
||||
}
|
||||
|
||||
$options = [
|
||||
'height' => 125,
|
||||
'colors' => $colors,
|
||||
'legend' => ['display' => false],
|
||||
'scales' => [
|
||||
'x' => [
|
||||
'grid' => ['display' => false],
|
||||
'ticks' => [
|
||||
'fonts' => ['size' => 8],
|
||||
],
|
||||
],
|
||||
'y' => [
|
||||
'grid' => ['display' => false],
|
||||
'ticks' => [
|
||||
'fonts' => ['size' => 8],
|
||||
],
|
||||
],
|
||||
],
|
||||
'labels' => $labels,
|
||||
];
|
||||
|
||||
return vbar_graph($data_array, $options);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Print a pie graph with alerts defined/fired data
|
||||
*
|
||||
|
|
|
@ -774,6 +774,7 @@ function html_print_select(
|
|||
$select2_multiple_enable_all=false,
|
||||
$form='',
|
||||
$order=false,
|
||||
$custom_id=null
|
||||
) {
|
||||
$output = "\n";
|
||||
|
||||
|
@ -789,6 +790,10 @@ function html_print_select(
|
|||
|
||||
$id = preg_replace('/[^a-z0-9\:\;\-\_]/i', '', $name.($idcounter[$name] ? $idcounter[$name] : ''));
|
||||
|
||||
if ($custom_id !== null) {
|
||||
$id = $custom_id;
|
||||
}
|
||||
|
||||
$attributes = '';
|
||||
if (!empty($script)) {
|
||||
$attributes .= ' onchange="'.$script.'"';
|
||||
|
@ -1745,7 +1750,7 @@ function html_print_select_multiple_modules_filtered(array $data):string
|
|||
'label' => __('Agents'),
|
||||
'label_class' => 'font-title-font',
|
||||
'type' => 'select_from_sql',
|
||||
'sql' => 'SELECT `id_agente`,`nombre` FROM tagente',
|
||||
'sql' => 'SELECT `id_agente`,`alias` FROM tagente',
|
||||
'name' => 'filtered-module-agents-'.$uniqId,
|
||||
'selected' => explode(',', $data['mAgents']),
|
||||
'return' => true,
|
||||
|
@ -4939,8 +4944,8 @@ function html_print_input_file($name, $return=false, $options=false, $inline_upl
|
|||
$inline_upload_anchor_to_form
|
||||
),
|
||||
[
|
||||
'mode' => 'link',
|
||||
'style' => 'min-width: initial;',
|
||||
'class' => 'secondary',
|
||||
'style' => 'min-width: initial; position: relative; margin-left: 5%; ',
|
||||
],
|
||||
true,
|
||||
);
|
||||
|
@ -7305,8 +7310,10 @@ function html_print_select_date_range(
|
|||
$time_end='',
|
||||
$date_text=SECONDS_1DAY,
|
||||
$class='w100p',
|
||||
$date_format='Y/m/d',
|
||||
$time_format='H:i:s'
|
||||
$date_format_php='Y/m/d',
|
||||
$time_format_php='H:i:s',
|
||||
$date_format_js='yy/mm/dd',
|
||||
$time_format_js='HH:mm:ss'
|
||||
) {
|
||||
global $config;
|
||||
|
||||
|
@ -7328,21 +7335,21 @@ function html_print_select_date_range(
|
|||
}
|
||||
|
||||
if ($date_end === '') {
|
||||
$date_end = date($date_format);
|
||||
$date_end = date($date_format_php);
|
||||
}
|
||||
|
||||
if ($date_init === '') {
|
||||
$date_init = date($date_format, strtotime($date_end.' -1 days'));
|
||||
$date_init = date($date_format_php, strtotime($date_end.' -1 days'));
|
||||
}
|
||||
|
||||
$date_init = date($date_format, strtotime($date_init));
|
||||
$date_init = date($date_format_php, strtotime($date_init));
|
||||
|
||||
if ($time_init === '') {
|
||||
$time_init = date($time_format);
|
||||
$time_init = date($time_format_php);
|
||||
}
|
||||
|
||||
if ($time_end === '') {
|
||||
$time_end = date($time_format);
|
||||
$time_end = date($time_format_php);
|
||||
}
|
||||
|
||||
$fields[SECONDS_1DAY] = __('Last 24hr');
|
||||
|
@ -7508,7 +7515,7 @@ function html_print_select_date_range(
|
|||
}
|
||||
|
||||
$('#text-date').datepicker({
|
||||
dateFormat: '".DATE_FORMAT_JS."',
|
||||
dateFormat: '".$date_format_js."',
|
||||
changeMonth: true,
|
||||
changeYear: true,
|
||||
showAnim: 'slideDown'
|
||||
|
@ -7516,7 +7523,7 @@ function html_print_select_date_range(
|
|||
|
||||
$('[id^=text-time_init]').timepicker({
|
||||
showSecond: true,
|
||||
timeFormat: '".TIME_FORMAT_JS."',
|
||||
timeFormat: '".$time_format_js."',
|
||||
timeOnlyTitle: '".__('Choose time')."',
|
||||
timeText: '".__('Time')."',
|
||||
hourText: '".__('Hour')."',
|
||||
|
@ -7527,7 +7534,7 @@ function html_print_select_date_range(
|
|||
});
|
||||
|
||||
$('[id^=text-date_init]').datepicker ({
|
||||
dateFormat: '".DATE_FORMAT_JS."',
|
||||
dateFormat: '".$date_format_js."',
|
||||
changeMonth: true,
|
||||
changeYear: true,
|
||||
showAnim: 'slideDown',
|
||||
|
@ -7549,7 +7556,7 @@ function html_print_select_date_range(
|
|||
});
|
||||
|
||||
$('[id^=text-date_end]').datepicker ({
|
||||
dateFormat: '".DATE_FORMAT_JS."',
|
||||
dateFormat: '".$date_format_js."',
|
||||
changeMonth: true,
|
||||
changeYear: true,
|
||||
showAnim: 'slideDown',
|
||||
|
@ -7572,7 +7579,7 @@ function html_print_select_date_range(
|
|||
|
||||
$('[id^=text-time_end]').timepicker({
|
||||
showSecond: true,
|
||||
timeFormat: '".TIME_FORMAT_JS."',
|
||||
timeFormat: '".$time_format_js."',
|
||||
timeOnlyTitle: '".__('Choose time')."',
|
||||
timeText: '".__('Time')."',
|
||||
hourText: '".__('Hour')."',
|
||||
|
|
|
@ -122,6 +122,7 @@ function messages_create_message(
|
|||
'id_usuario_origen' => $usuario_origen,
|
||||
'subject' => $subject,
|
||||
'mensaje' => $mensaje,
|
||||
'subtype' => 'NOTIF.MESSAGE',
|
||||
'id_source' => get_notification_source_id('message'),
|
||||
'timestamp' => get_system_time(),
|
||||
]
|
||||
|
|
|
@ -4735,7 +4735,7 @@ function export_agents_module_csv($filters)
|
|||
$query_filter .= ' AND tam.nombre IN '.$module_filter.' ';
|
||||
} else {
|
||||
$module_filter = '('.implode(', ', $filter).')';
|
||||
$query_filter .= ' AND tam.id_tipo_modulo IN '.$module_filter.' ';
|
||||
$query_filter .= ' AND tam.id_agente_modulo IN '.$module_filter.' ';
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
|
@ -142,7 +142,6 @@ function notifications_get_subtypes(?string $source=null)
|
|||
'NOTIF.PANDORADB.HISTORICAL',
|
||||
'NOTIF.HISTORYDB.MR',
|
||||
'NOTIF.EXT.ELASTICSEARCH',
|
||||
'NOTIF.EXT.LOGSTASH',
|
||||
'NOTIF.METACONSOLE.DB_CONNECTION',
|
||||
'NOTIF.DOWNTIME',
|
||||
'NOTIF.UPDATEMANAGER.REGISTRATION',
|
||||
|
@ -659,7 +658,15 @@ function notifications_get_user_label_status($source, $user, $label)
|
|||
*/
|
||||
function notifications_set_user_label_status($source, $user, $label, $value)
|
||||
{
|
||||
global $config;
|
||||
|
||||
$user_info = get_user_info($config['id_user']);
|
||||
if ((bool) $user_info['is_admin'] === false && $config['id_user'] !== $user) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$source_info = notifications_get_all_sources(['id' => $source]);
|
||||
|
||||
if (!isset($source_info[0])
|
||||
|| !$source_info[0]['enabled']
|
||||
|| !$source_info[0]['user_editable']
|
||||
|
|
|
@ -308,7 +308,7 @@ function profile_print_profile_table($id, $json_profile=false, $return=false, $c
|
|||
'del',
|
||||
'images/delete.svg',
|
||||
1,
|
||||
'',
|
||||
'background-color: transparent !important;',
|
||||
true,
|
||||
[
|
||||
'onclick' => 'delete_profile(event, this)',
|
||||
|
@ -316,8 +316,15 @@ function profile_print_profile_table($id, $json_profile=false, $return=false, $c
|
|||
]
|
||||
);
|
||||
} else {
|
||||
$data['actions'] = '<form method="post" onsubmit="if (!confirm (\''.__('Are you sure?').'\')) return false">';
|
||||
$data['actions'] .= html_print_input_image('del', 'images/delete.svg', 1, '', true, ['class' => 'main_menu_icon invert_filter']);
|
||||
$data['actions'] = '<form method="post" onsubmit="">';
|
||||
$data['actions'] .= html_print_input_image(
|
||||
'del',
|
||||
'images/delete.svg',
|
||||
1,
|
||||
'background-color: transparent !important;',
|
||||
true,
|
||||
['class' => 'main_menu_icon invert_filter']
|
||||
);
|
||||
$data['actions'] .= html_print_input_hidden('delete_profile', 1, true);
|
||||
$data['actions'] .= html_print_input_hidden('id_user_profile', $profile['id_up'], true);
|
||||
$data['actions'] .= html_print_input_hidden('id_user', $id, true);
|
||||
|
@ -391,7 +398,14 @@ function profile_print_profile_table($id, $json_profile=false, $return=false, $c
|
|||
|
||||
$data['last_hierarchy'] = html_print_checkbox('no_hierarchy', 1, false, true);
|
||||
|
||||
$data['last_actions'] = html_print_input_image('add', 'images/validate.svg', 1, '', true, ['class' => 'main_menu_icon invert_filter']);
|
||||
$data['last_actions'] = html_print_input_image(
|
||||
'add',
|
||||
'images/validate.svg',
|
||||
1,
|
||||
'background-color: transparent !important;',
|
||||
true,
|
||||
['class' => 'main_menu_icon invert_filter']
|
||||
);
|
||||
$data['last_actions'] .= html_print_input_hidden('id', $id, true);
|
||||
$data['last_actions'] .= html_print_input_hidden('add_profile', 1, true);
|
||||
$data['last_actions'] .= '</form>';
|
||||
|
|
|
@ -42,6 +42,7 @@ require_once $config['homedir'].'/include/functions_users.php';
|
|||
enterprise_include_once('include/functions_reporting.php');
|
||||
enterprise_include_once('include/functions_metaconsole.php');
|
||||
enterprise_include_once('include/functions_inventory.php');
|
||||
require_once $config['homedir'].'/include/functions_inventory.php';
|
||||
enterprise_include_once('include/functions_cron.php');
|
||||
require_once $config['homedir'].'/include/functions_forecast.php';
|
||||
require_once $config['homedir'].'/include/functions_ui.php';
|
||||
|
@ -11294,7 +11295,7 @@ function reporting_simple_graph(
|
|||
),
|
||||
'ttl' => $ttl,
|
||||
'compare' => $time_compare_overlapped,
|
||||
'show_unknown' => true,
|
||||
'show_unknown' => $content['check_unknowns_graph'],
|
||||
'percentil' => ($content['style']['percentil'] == 1) ? $config['percentil'] : null,
|
||||
'fullscale' => $fullscale,
|
||||
'server_id' => $id_meta,
|
||||
|
|
|
@ -3249,7 +3249,7 @@ function reporting_html_group_report($table, $item, $pdf=0)
|
|||
$out .= '</tr>';
|
||||
$out .= '<tr>';
|
||||
$out .= '</td>';
|
||||
$out .= '<td><fieldset><legend>'.__('Events per agent').'</legend>';
|
||||
$out .= '<td><fieldset><legend>'.__('Events by agent').'</legend>';
|
||||
$data = [];
|
||||
$options = [];
|
||||
$labels = [];
|
||||
|
|
|
@ -665,6 +665,7 @@ function servers_get_info($id_server=-1, $sql_limit=-1)
|
|||
);
|
||||
$server['type'] = 'data';
|
||||
$id_modulo = 1;
|
||||
$server['name'] = __('Data server');
|
||||
break;
|
||||
|
||||
case SERVER_TYPE_NETWORK:
|
||||
|
@ -678,6 +679,7 @@ function servers_get_info($id_server=-1, $sql_limit=-1)
|
|||
);
|
||||
$server['type'] = 'network';
|
||||
$id_modulo = 2;
|
||||
$server['name'] = __('Network server');
|
||||
break;
|
||||
|
||||
case SERVER_TYPE_SNMP:
|
||||
|
@ -691,6 +693,7 @@ function servers_get_info($id_server=-1, $sql_limit=-1)
|
|||
);
|
||||
$server['type'] = 'snmp';
|
||||
$id_modulo = 0;
|
||||
$server['name'] = __('SNMP Trap server');
|
||||
break;
|
||||
|
||||
case SERVER_TYPE_DISCOVERY:
|
||||
|
@ -704,6 +707,7 @@ function servers_get_info($id_server=-1, $sql_limit=-1)
|
|||
);
|
||||
$server['type'] = 'recon';
|
||||
$id_modulo = 0;
|
||||
$server['name'] = __('Discovery server');
|
||||
break;
|
||||
|
||||
case SERVER_TYPE_PLUGIN:
|
||||
|
@ -717,6 +721,7 @@ function servers_get_info($id_server=-1, $sql_limit=-1)
|
|||
);
|
||||
$server['type'] = 'plugin';
|
||||
$id_modulo = 4;
|
||||
$server['name'] = __('Plugin server');
|
||||
break;
|
||||
|
||||
case SERVER_TYPE_PREDICTION:
|
||||
|
@ -730,6 +735,7 @@ function servers_get_info($id_server=-1, $sql_limit=-1)
|
|||
);
|
||||
$server['type'] = 'prediction';
|
||||
$id_modulo = 5;
|
||||
$server['name'] = __('Prediction server');
|
||||
break;
|
||||
|
||||
case SERVER_TYPE_WMI:
|
||||
|
@ -743,6 +749,7 @@ function servers_get_info($id_server=-1, $sql_limit=-1)
|
|||
);
|
||||
$server['type'] = 'wmi';
|
||||
$id_modulo = 6;
|
||||
$server['name'] = __('WMI server');
|
||||
break;
|
||||
|
||||
case SERVER_TYPE_EXPORT:
|
||||
|
@ -756,6 +763,7 @@ function servers_get_info($id_server=-1, $sql_limit=-1)
|
|||
);
|
||||
$server['type'] = 'export';
|
||||
$id_modulo = 0;
|
||||
$server['name'] = __('Export server');
|
||||
break;
|
||||
|
||||
case SERVER_TYPE_INVENTORY:
|
||||
|
@ -769,6 +777,7 @@ function servers_get_info($id_server=-1, $sql_limit=-1)
|
|||
);
|
||||
$server['type'] = 'inventory';
|
||||
$id_modulo = 0;
|
||||
$server['name'] = __('Inventory server');
|
||||
break;
|
||||
|
||||
case SERVER_TYPE_WEB:
|
||||
|
@ -782,6 +791,7 @@ function servers_get_info($id_server=-1, $sql_limit=-1)
|
|||
);
|
||||
$server['type'] = 'web';
|
||||
$id_modulo = 0;
|
||||
$server['name'] = __('Web server');
|
||||
break;
|
||||
|
||||
case SERVER_TYPE_EVENT:
|
||||
|
@ -795,6 +805,7 @@ function servers_get_info($id_server=-1, $sql_limit=-1)
|
|||
);
|
||||
$server['type'] = 'event';
|
||||
$id_modulo = 2;
|
||||
$server['name'] = __('Event server');
|
||||
break;
|
||||
|
||||
case SERVER_TYPE_CORRELATION:
|
||||
|
@ -808,6 +819,7 @@ function servers_get_info($id_server=-1, $sql_limit=-1)
|
|||
);
|
||||
$server['type'] = 'correlation';
|
||||
$id_modulo = 0;
|
||||
$server['name'] = __('Correlation server');
|
||||
break;
|
||||
|
||||
case SERVER_TYPE_ENTERPRISE_ICMP:
|
||||
|
@ -821,6 +833,7 @@ function servers_get_info($id_server=-1, $sql_limit=-1)
|
|||
);
|
||||
$server['type'] = 'enterprise icmp';
|
||||
$id_modulo = 2;
|
||||
$server['name'] = __('Enterprise ICMP server');
|
||||
break;
|
||||
|
||||
case SERVER_TYPE_ENTERPRISE_SNMP:
|
||||
|
@ -834,6 +847,7 @@ function servers_get_info($id_server=-1, $sql_limit=-1)
|
|||
);
|
||||
$server['type'] = 'enterprise snmp';
|
||||
$id_modulo = 2;
|
||||
$server['name'] = __('Enterprise SNMP server');
|
||||
break;
|
||||
|
||||
case SERVER_TYPE_ENTERPRISE_SATELLITE:
|
||||
|
@ -847,6 +861,7 @@ function servers_get_info($id_server=-1, $sql_limit=-1)
|
|||
);
|
||||
$server['type'] = 'enterprise satellite';
|
||||
$id_modulo = 0;
|
||||
$server['name'] = __('Enterprise Satellite server');
|
||||
break;
|
||||
|
||||
case SERVER_TYPE_ENTERPRISE_TRANSACTIONAL:
|
||||
|
@ -860,6 +875,7 @@ function servers_get_info($id_server=-1, $sql_limit=-1)
|
|||
);
|
||||
$server['type'] = 'enterprise transactional';
|
||||
$id_modulo = 0;
|
||||
$server['name'] = __('Enterprise Transactional server');
|
||||
break;
|
||||
|
||||
case SERVER_TYPE_MAINFRAME:
|
||||
|
@ -873,6 +889,7 @@ function servers_get_info($id_server=-1, $sql_limit=-1)
|
|||
);
|
||||
$server['type'] = 'mainframe';
|
||||
$id_modulo = 0;
|
||||
$server['name'] = __('Mainframe server');
|
||||
break;
|
||||
|
||||
case SERVER_TYPE_SYNC:
|
||||
|
@ -886,6 +903,7 @@ function servers_get_info($id_server=-1, $sql_limit=-1)
|
|||
);
|
||||
$server['type'] = 'sync';
|
||||
$id_modulo = 0;
|
||||
$server['name'] = __('Sync server');
|
||||
break;
|
||||
|
||||
case SERVER_TYPE_WUX:
|
||||
|
@ -899,6 +917,7 @@ function servers_get_info($id_server=-1, $sql_limit=-1)
|
|||
);
|
||||
$server['type'] = 'wux';
|
||||
$id_modulo = 0;
|
||||
$server['name'] = __('Wux server');
|
||||
break;
|
||||
|
||||
case SERVER_TYPE_SYSLOG:
|
||||
|
@ -912,6 +931,7 @@ function servers_get_info($id_server=-1, $sql_limit=-1)
|
|||
);
|
||||
$server['type'] = 'syslog';
|
||||
$id_modulo = 0;
|
||||
$server['name'] = __('Syslog server');
|
||||
break;
|
||||
|
||||
case SERVER_TYPE_NCM:
|
||||
|
@ -925,6 +945,7 @@ function servers_get_info($id_server=-1, $sql_limit=-1)
|
|||
);
|
||||
$server['type'] = 'ncm';
|
||||
$id_modulo = 0;
|
||||
$server['name'] = __('NCM server');
|
||||
break;
|
||||
|
||||
case SERVER_TYPE_AUTOPROVISION:
|
||||
|
@ -938,6 +959,7 @@ function servers_get_info($id_server=-1, $sql_limit=-1)
|
|||
);
|
||||
$server['type'] = 'autoprovision';
|
||||
$id_modulo = 0;
|
||||
$server['name'] = __('Autoprovision server');
|
||||
break;
|
||||
|
||||
case SERVER_TYPE_MIGRATION:
|
||||
|
@ -951,6 +973,7 @@ function servers_get_info($id_server=-1, $sql_limit=-1)
|
|||
);
|
||||
$server['type'] = 'migration';
|
||||
$id_modulo = 0;
|
||||
$server['name'] = __('Migration server');
|
||||
break;
|
||||
|
||||
case SERVER_TYPE_ALERT:
|
||||
|
@ -964,6 +987,7 @@ function servers_get_info($id_server=-1, $sql_limit=-1)
|
|||
);
|
||||
$server['type'] = 'alert';
|
||||
$id_modulo = 0;
|
||||
$server['name'] = __('Alert server');
|
||||
break;
|
||||
|
||||
case SERVER_TYPE_NETFLOW:
|
||||
|
@ -977,6 +1001,7 @@ function servers_get_info($id_server=-1, $sql_limit=-1)
|
|||
);
|
||||
$server['type'] = 'netflow';
|
||||
$id_modulo = 0;
|
||||
$server['name'] = __('Netflow server');
|
||||
break;
|
||||
|
||||
case SERVER_TYPE_LOG:
|
||||
|
@ -990,6 +1015,7 @@ function servers_get_info($id_server=-1, $sql_limit=-1)
|
|||
);
|
||||
$server['type'] = 'log';
|
||||
$id_modulo = 0;
|
||||
$server['name'] = __('Log server');
|
||||
break;
|
||||
|
||||
case SERVER_TYPE_MADE:
|
||||
|
@ -1003,6 +1029,7 @@ function servers_get_info($id_server=-1, $sql_limit=-1)
|
|||
);
|
||||
$server['type'] = 'made';
|
||||
$id_modulo = 0;
|
||||
$server['name'] = __('MADE server');
|
||||
break;
|
||||
|
||||
default:
|
||||
|
|
|
@ -644,14 +644,16 @@ function snmp_browser_print_oid(
|
|||
|
||||
if (isset($_POST['print_create_agent_module'])) {
|
||||
// Hidden by default.
|
||||
$output .= html_print_button(
|
||||
__('Create agent module'),
|
||||
'create_module_agent_single',
|
||||
false,
|
||||
'show_add_module()',
|
||||
'class="sub add invisible"',
|
||||
true
|
||||
);
|
||||
if (is_metaconsole() === false) {
|
||||
$output .= html_print_button(
|
||||
__('Create agent module'),
|
||||
'create_module_agent_single',
|
||||
false,
|
||||
'show_add_module()',
|
||||
'class="sub add invisible"',
|
||||
true
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($_POST['print_copy_oid'])) {
|
||||
|
@ -1238,13 +1240,15 @@ function snmp_browser_print_container(
|
|||
|
||||
if ($show_massive_buttons) {
|
||||
$output .= '<div id="snmp_create_buttons" style="display:none">';
|
||||
$output .= html_print_submit_button(
|
||||
__('Create agent modules'),
|
||||
'create_modules_agent',
|
||||
false,
|
||||
['class' => 'sub add'],
|
||||
true
|
||||
);
|
||||
if (is_metaconsole() === false) {
|
||||
$output .= html_print_submit_button(
|
||||
__('Create agent modules'),
|
||||
'create_modules_agent',
|
||||
false,
|
||||
['class' => 'sub add'],
|
||||
true
|
||||
);
|
||||
}
|
||||
|
||||
if (is_management_allowed() === true && enterprise_installed()) {
|
||||
$output .= html_print_submit_button(
|
||||
|
|
|
@ -792,7 +792,7 @@ function treeview_printTable($id_agente, $server_data=[], $no_head=false)
|
|||
false,
|
||||
false,
|
||||
'',
|
||||
'white-box-content mrgn_top_0 mrgn_btn_0px',
|
||||
'white-box-content-no-height mrgn_top_0 mrgn_btn_0px',
|
||||
'white_table_flex'
|
||||
);
|
||||
|
||||
|
@ -812,7 +812,7 @@ function treeview_printTable($id_agente, $server_data=[], $no_head=false)
|
|||
true,
|
||||
false,
|
||||
'',
|
||||
'white-box-content mrgn_top_0 mrgn_btn_0px border-bottom-gray',
|
||||
'white-box-content-no-height mrgn_top_0 mrgn_btn_0px border-bottom-gray',
|
||||
'white_table_flex'
|
||||
);
|
||||
}
|
||||
|
@ -987,7 +987,7 @@ function treeview_printTable($id_agente, $server_data=[], $no_head=false)
|
|||
true,
|
||||
empty($table_advanced->data),
|
||||
'',
|
||||
'white-box-content mrgn_top_0 mrgn_btn_0px border-bottom-gray',
|
||||
'white-box-content-no-height mrgn_top_0 mrgn_btn_0px border-bottom-gray',
|
||||
'white_table_flex'
|
||||
);
|
||||
|
||||
|
|
|
@ -409,8 +409,7 @@ function ui_print_message($message, $class='', $attributes='', $return=false, $t
|
|||
$messageTable->colspan[1][0] = 2;
|
||||
|
||||
$messageTable->data = [];
|
||||
$messageTable->data[0][0] = '<b>'.$text_title.'</b>';
|
||||
$messageTable->data[0][1] = $closeButton;
|
||||
$messageTable->data[0][0] = '<b>'.$text_title.'</b>'.$closeButton;
|
||||
$messageTable->data[1][0] = '<span>'.$text_message.'</b>';
|
||||
|
||||
// JavaScript help vars.
|
||||
|
@ -1802,11 +1801,14 @@ function ui_print_string_substr($string, $cutoff=16, $return=false, $fontsize=0)
|
|||
*
|
||||
* @return An HTML string if return was true.
|
||||
*/
|
||||
function ui_print_alert_template_example($id_alert_template, $return=false, $print_values=true)
|
||||
function ui_print_alert_template_example($id_alert_template, $return=false, $print_values=true, $print_icon=true)
|
||||
{
|
||||
$output = '';
|
||||
|
||||
$output .= html_print_image('images/information.png', true, ['class' => 'invert_filter']);
|
||||
if ($print_icon === true) {
|
||||
$output .= html_print_image('images/information.png', true, ['class' => 'invert_filter']);
|
||||
}
|
||||
|
||||
$output .= '<span id="example">';
|
||||
$template = alerts_get_alert_template($id_alert_template);
|
||||
|
||||
|
@ -8230,3 +8232,43 @@ function ui_update_name_fav_element($id_element, $section, $label)
|
|||
]
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
function ui_print_status_vulnerability_div(float $score)
|
||||
{
|
||||
$return = '';
|
||||
$class = 'status_rounded_rectangles forced_title';
|
||||
if (((float) $score) <= 5) {
|
||||
return ui_print_div('group_view_ok '.$class, $score);
|
||||
}
|
||||
|
||||
if (((float) $score) > 5 && ((float) $score) <= 7.5) {
|
||||
return ui_print_div('group_view_warn '.$class, $score);
|
||||
}
|
||||
|
||||
if (((float) $score) > 7.5) {
|
||||
return ui_print_div('group_view_crit '.$class, $score);
|
||||
}
|
||||
|
||||
return $return;
|
||||
}
|
||||
|
||||
|
||||
function ui_print_status_secmon_div($status, $title=false)
|
||||
{
|
||||
$class = 'status_rounded_rectangles forced_title';
|
||||
if (($status) === 'normal') {
|
||||
$title = ($title === false) ? __('normal') : $title;
|
||||
return ui_print_div('group_view_ok '.$class, $title);
|
||||
}
|
||||
|
||||
if (($status) === 'warning') {
|
||||
$title = ($title === false) ? __('warning') : $title;
|
||||
return ui_print_div('group_view_warn '.$class, $title);
|
||||
}
|
||||
|
||||
if (($status) === 'critical') {
|
||||
$title = ($title === false) ? __('critical') : $title;
|
||||
return ui_print_div('group_view_crit '.$class, $title);
|
||||
}
|
||||
}
|
|
@ -45,6 +45,7 @@ if (file_exists('../languages/'.$user_language.'.mo') === true) {
|
|||
$type = (string) get_parameter('type', 'csv');
|
||||
|
||||
$data = (string) get_parameter('data');
|
||||
$data = strip_tags(io_safe_output($data));
|
||||
$data = json_decode(io_safe_output($data), true);
|
||||
|
||||
$default_filename = 'data_exported - '.date($config['date_format']);
|
||||
|
|
|
@ -1228,6 +1228,12 @@ function get_build_setup_charts($type, $options, $data)
|
|||
) {
|
||||
$colors = $options['colors'];
|
||||
$borders = $options['colors'];
|
||||
if (isset($options['border']) === true && (bool) $options['border'] === false) {
|
||||
$borders = [];
|
||||
foreach ($colors as $color) {
|
||||
$borders[] = 'rgba(0, 0, 0, 0)';
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// Colors.
|
||||
$defaultColor = [];
|
||||
|
|
|
@ -2223,6 +2223,9 @@ function pandoraFlotArea(
|
|||
}
|
||||
|
||||
var dataInSelection = ranges.xaxis.to - ranges.xaxis.from;
|
||||
if (dataInSelection < 35000) {
|
||||
return;
|
||||
}
|
||||
|
||||
var maxticks_zoom = dataInSelection / 3600000 / number_ticks;
|
||||
if (maxticks_zoom < 0.001) {
|
||||
|
|
|
@ -152,6 +152,12 @@ function redirectStatus(e, element) {
|
|||
);
|
||||
break;
|
||||
|
||||
case "Normal":
|
||||
window.location.assign(
|
||||
`index.php?sec=view&sec2=operation/agentes/status_monitor&refr=0&ag_group=0&ag_freestring=&module_option=1&ag_modulename=&moduletype=&datatype=&status=0&sort_field=&sort=none&pure=`
|
||||
);
|
||||
break;
|
||||
|
||||
default:
|
||||
window.location.assign(
|
||||
`index.php?sec=view&sec2=operation/agentes/status_monitor&refr=0&ag_group=0&ag_freestring=&module_option=1&ag_modulename=&moduletype=&datatype=&status=-1&sort_field=&sort=none&pure=`
|
||||
|
|
|
@ -305,7 +305,7 @@ function agent_changed_by_multiple_agents(event, id_agent, selected) {
|
|||
$("<option></option>")
|
||||
.html(anyText)
|
||||
.attr("value", 0)
|
||||
.prop("selected", true)
|
||||
.prop("selected", false)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -1461,7 +1461,8 @@ function defineTinyMCE(selector) {
|
|||
{ text: "C#", value: "csharp" },
|
||||
{ text: "C++", value: "cpp" }
|
||||
],
|
||||
toolbar: defaultToolbar
|
||||
toolbar: defaultToolbar,
|
||||
relative_urls: false
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -310,8 +310,6 @@ function initialiceLayout(data) {
|
|||
}
|
||||
|
||||
function duplicateWidget(original_cellId, original_widgetId) {
|
||||
let duplicate_cellId = insertCellLayoutForDuplicate();
|
||||
|
||||
$.ajax({
|
||||
method: "post",
|
||||
url: data.url,
|
||||
|
@ -320,16 +318,14 @@ function initialiceLayout(data) {
|
|||
method: "duplicateWidget",
|
||||
dashboardId: data.dashboardId,
|
||||
widgetId: original_widgetId,
|
||||
cellId: original_cellId,
|
||||
duplicateCellId: duplicate_cellId
|
||||
cellId: original_cellId
|
||||
},
|
||||
dataType: "json",
|
||||
success: function(success) {
|
||||
console.log(success);
|
||||
success: function(data) {
|
||||
addCell(data.cellId, 0, 0, 4, 4, true, 0, 2000, 0, 2000, 0, true);
|
||||
},
|
||||
error: function(error) {
|
||||
console.log(error);
|
||||
return [];
|
||||
error: function(xhr, textStatus, errorMessage) {
|
||||
console.log("ERROR" + errorMessage + textStatus + xhr);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -428,8 +424,8 @@ function initialiceLayout(data) {
|
|||
}
|
||||
});
|
||||
}
|
||||
|
||||
function insertCellLayoutForDuplicate() {
|
||||
/*
|
||||
function insertCellLayoutForDuplicate(original_cell_id) {
|
||||
let duplicateCellId = 0;
|
||||
$.ajax({
|
||||
async: false,
|
||||
|
@ -441,7 +437,8 @@ function initialiceLayout(data) {
|
|||
dashboardId: data.dashboardId,
|
||||
auth_class: data.auth.class,
|
||||
auth_hash: data.auth.hash,
|
||||
id_user: data.auth.user
|
||||
id_user: data.auth.user,
|
||||
copy: original_cell_id
|
||||
},
|
||||
dataType: "json",
|
||||
success: function(data) {
|
||||
|
@ -449,7 +446,7 @@ function initialiceLayout(data) {
|
|||
// width and height = 4
|
||||
// position auto = true.
|
||||
if (data.cellId !== 0) {
|
||||
addCell(data.cellId, 0, 0, 4, 4, true, 0, 2000, 0, 2000, 0, true);
|
||||
addCell(data.cellId, 0, 0, 4, 4, true, 0, 2000, 0, 2000, 0, true, original_cell_id);
|
||||
duplicateCellId = data.cellId;
|
||||
}
|
||||
},
|
||||
|
@ -458,7 +455,7 @@ function initialiceLayout(data) {
|
|||
}
|
||||
});
|
||||
return duplicateCellId;
|
||||
}
|
||||
}*/
|
||||
|
||||
function configurationWidget(cellId, widgetId, size) {
|
||||
load_modal({
|
||||
|
|
|
@ -1739,3 +1739,8 @@ function loadModal() {
|
|||
}
|
||||
}
|
||||
window.onload = loadModal;
|
||||
|
||||
function openEvents(severity) {
|
||||
$('input[name="filter[severity]"]').val(severity);
|
||||
$("#event_redirect").submit();
|
||||
}
|
||||
|
|
|
@ -500,16 +500,25 @@ function configure_modules_form() {
|
|||
"checked",
|
||||
data["critical_inverse"]
|
||||
);
|
||||
$("#checkbox-warning_inverse").prop("checked", data["warning_inverse"]);
|
||||
$("#checkbox-percentage_warning").prop(
|
||||
"uncheck",
|
||||
data["percentage_warning"]
|
||||
);
|
||||
$("#checkbox-percentage_critical").prop(
|
||||
"uncheck",
|
||||
data["percentage_critical"]
|
||||
);
|
||||
|
||||
$("#label-radius-normal_warning").trigger("click");
|
||||
$("#label-radius-normal_critical").trigger("click");
|
||||
|
||||
if (data["warning_inverse"] == true) {
|
||||
$("#label-radius-warning_inverse").trigger("click");
|
||||
}
|
||||
|
||||
if (data["critical_inverse"] == true) {
|
||||
$("#label-radius-critical_inverse").trigger("click");
|
||||
}
|
||||
|
||||
if (data["percentage_warning"] == true) {
|
||||
$("#label-radius-percentage_warning").trigger("click");
|
||||
}
|
||||
|
||||
if (data["percentage_critical"] == true) {
|
||||
$("#label-radius-percentage_critical").trigger("click");
|
||||
}
|
||||
$("#component_loading").hide();
|
||||
$("#id_module_type").change();
|
||||
if ($("#id_category").is("select")) {
|
||||
|
|
|
@ -81,14 +81,17 @@ function removeInputImage(e) {
|
|||
$("#notices_images").addClass("invisible");
|
||||
}
|
||||
}
|
||||
function render({ title, text, url, files }) {
|
||||
function render({ title, text, url, files, method }) {
|
||||
$("#title_tip").html(title);
|
||||
$("#text_tip").html(text);
|
||||
if (url) {
|
||||
$("#url_tip").removeClass("invisible");
|
||||
$("#button-learn_more").removeAttr("disabled");
|
||||
$("#button-learn_more").removeClass("disabled_button");
|
||||
$("#url_tip").attr("href", url);
|
||||
} else {
|
||||
$("#url_tip").addClass("invisible");
|
||||
$("#button-learn_more").attr("disabled", "disabled");
|
||||
$("#button-learn_more").addClass("disabled_button");
|
||||
$("#url_tip").attr("href", "");
|
||||
}
|
||||
|
||||
$(".carousel").empty();
|
||||
|
@ -110,7 +113,11 @@ function render({ title, text, url, files }) {
|
|||
if (index >= limitRound - 1) {
|
||||
$($(".count-round-tip")[0]).addClass("active");
|
||||
} else {
|
||||
$($(".count-round-tip")[index + 1]).addClass("active");
|
||||
if (method == "next") {
|
||||
$($(".count-round-tip")[index + 1]).addClass("active");
|
||||
} else {
|
||||
$($(".count-round-tip")[index - 1]).addClass("active");
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
@ -147,23 +154,79 @@ function render_counter() {
|
|||
function next_tip() {
|
||||
if (idTips.length >= totalTips) {
|
||||
idTips = [];
|
||||
$("#hidden-tip_position").val(-1);
|
||||
}
|
||||
$.ajax({
|
||||
method: "POST",
|
||||
url: url,
|
||||
dataType: "json",
|
||||
data: {
|
||||
page: page,
|
||||
method: "getRandomTip",
|
||||
exclude: JSON.stringify(idTips)
|
||||
},
|
||||
success: function({ success, data }) {
|
||||
if (success) {
|
||||
idTips.push(parseInt(data.id));
|
||||
render(data);
|
||||
let tip_position = parseInt($("#hidden-tip_position").val()) + 1;
|
||||
let idTip = idTips[tip_position];
|
||||
if (idTip === undefined) {
|
||||
$.ajax({
|
||||
method: "POST",
|
||||
url: url,
|
||||
dataType: "json",
|
||||
data: {
|
||||
page: page,
|
||||
method: "getRandomTip",
|
||||
exclude: JSON.stringify(idTips)
|
||||
},
|
||||
success: function({ success, data }) {
|
||||
if (success) {
|
||||
let tip_position = parseInt($("#hidden-tip_position").val()) + 1;
|
||||
$("#hidden-tip_position").val(tip_position);
|
||||
idTips.push(parseInt(data.id));
|
||||
data.method = "next";
|
||||
render(data);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
} else {
|
||||
$.ajax({
|
||||
method: "POST",
|
||||
url: url,
|
||||
dataType: "json",
|
||||
data: {
|
||||
page: page,
|
||||
method: "getTipById",
|
||||
idTip: idTip,
|
||||
return: true
|
||||
},
|
||||
success: function({ success, data }) {
|
||||
if (success) {
|
||||
let tip_position = parseInt($("#hidden-tip_position").val()) + 1;
|
||||
$("#hidden-tip_position").val(tip_position);
|
||||
data.method = "next";
|
||||
render(data);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function previous_tip() {
|
||||
let actual_tip_position = parseInt($("#hidden-tip_position").val());
|
||||
|
||||
if (actual_tip_position != 0) {
|
||||
let tip_position = parseInt($("#hidden-tip_position").val()) - 1;
|
||||
let idTip = idTips[tip_position];
|
||||
$.ajax({
|
||||
method: "POST",
|
||||
url: url,
|
||||
dataType: "json",
|
||||
data: {
|
||||
page: page,
|
||||
method: "getTipById",
|
||||
idTip: idTip,
|
||||
return: true
|
||||
},
|
||||
success: function({ success, data }) {
|
||||
if (success) {
|
||||
let tip_position = parseInt($("#hidden-tip_position").val()) - 1;
|
||||
$("#hidden-tip_position").val(tip_position);
|
||||
data.method = "prev";
|
||||
render(data);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function load_tips_modal(settings) {
|
||||
|
|
|
@ -620,9 +620,16 @@ class ClusterManager
|
|||
if (empty($tmp->group) === true) {
|
||||
$tmp->group = __('Not set');
|
||||
} else {
|
||||
// Html div part for csv export.
|
||||
$tmp->group = ui_print_group_icon(
|
||||
$tmp->group,
|
||||
true
|
||||
).html_print_div(
|
||||
[
|
||||
'content' => groups_get_name($tmp->group),
|
||||
'class' => 'invisible',
|
||||
],
|
||||
true
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -636,9 +643,16 @@ class ClusterManager
|
|||
}
|
||||
|
||||
// Status.
|
||||
// Html div part for csv export.
|
||||
$tmp->known_status = ui_print_module_status(
|
||||
$tmp->known_status,
|
||||
true
|
||||
).html_print_div(
|
||||
[
|
||||
'content' => $tmp->known_status,
|
||||
'class' => 'invisible',
|
||||
],
|
||||
true
|
||||
);
|
||||
|
||||
// Options. View.
|
||||
|
|
|
@ -609,10 +609,25 @@ class Manager implements PublicLogin
|
|||
/**
|
||||
* Duplicate widget.
|
||||
*
|
||||
* @return integer
|
||||
* @return void
|
||||
*/
|
||||
public function duplicateWidget():int
|
||||
public function duplicateWidget():void
|
||||
{
|
||||
global $config;
|
||||
|
||||
$return = false;
|
||||
|
||||
$position = [
|
||||
'x' => 0,
|
||||
'y' => 0,
|
||||
'width' => 4,
|
||||
'height' => 4,
|
||||
];
|
||||
|
||||
$cellClass = new Cell($position, $this->dashboardId);
|
||||
$dataCell = $cellClass->get();
|
||||
|
||||
// $result = ['cellId' => $dataCell['id']];
|
||||
$original_widget = [];
|
||||
|
||||
$original_cellId = $this->cellId;
|
||||
|
@ -632,12 +647,23 @@ class Manager implements PublicLogin
|
|||
'options' => $options_json,
|
||||
'id_widget' => $original_widget['id_widget'],
|
||||
];
|
||||
|
||||
$res = \db_process_sql_update(
|
||||
'twidget_dashboard',
|
||||
$values,
|
||||
['id' => $this->duplicateCellId]
|
||||
['id' => $dataCell['id']]
|
||||
);
|
||||
return $res;
|
||||
|
||||
if ($res === 1) {
|
||||
$return = [
|
||||
'cellId' => $dataCell['id'],
|
||||
'widgetId' => $original_widget['id_widget'],
|
||||
];
|
||||
|
||||
$json_return = json_encode($return);
|
||||
}
|
||||
|
||||
echo $json_return;
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -296,11 +296,7 @@ class EventCardboard extends Widget
|
|||
];
|
||||
|
||||
// Event status.
|
||||
$fields = [
|
||||
-1 => __('All event'),
|
||||
1 => __('Only validated'),
|
||||
0 => __('Only pending'),
|
||||
];
|
||||
$fields = events_get_all_status(true);
|
||||
|
||||
$inputs['inputs']['row1'][] = [
|
||||
'label' => __('Event status'),
|
||||
|
@ -331,8 +327,13 @@ class EventCardboard extends Widget
|
|||
$return_all_group = true;
|
||||
}
|
||||
|
||||
$help_tip = ui_print_help_tip(
|
||||
__('Only the first group selected will be used on the redirect to events view.'),
|
||||
true
|
||||
);
|
||||
|
||||
$inputs['inputs']['row1'][] = [
|
||||
'label' => __('Groups'),
|
||||
'label' => __('Groups').$help_tip,
|
||||
'arguments' => [
|
||||
'type' => 'select_groups',
|
||||
'name' => 'groupId[]',
|
||||
|
@ -530,6 +531,16 @@ class EventCardboard extends Widget
|
|||
);
|
||||
}
|
||||
|
||||
$output .= '<form style="display: none" action="'.ui_get_full_url('index.php?sec=eventos&sec2=operation/events/events').'" method="POST" id="event_redirect">';
|
||||
$output .= html_print_input_hidden('filter[event_type]', $this->values['eventType'], true, false, false, 'filter[event_type]');
|
||||
$output .= html_print_input_hidden('filter[event_view_hr]', $this->values['maxHours'], true, false, false, 'filter[event_view_hr]');
|
||||
$output .= html_print_input_hidden('filter[status]', $this->values['eventStatus'], true, false, false, 'filter[status]');
|
||||
$output .= html_print_input_hidden('filter[id_group_filter]', $this->values['groupId'][0], true, false, false, 'filter[id_group_filter]');
|
||||
$output .= html_print_input_hidden('filter[severity]', '', true, false, false, 'filter[severity]');
|
||||
$output .= html_print_input_hidden('get_events', '1', true, false, false, 'get_events');
|
||||
$output .= html_print_input_hidden('filter[tag_with]', 'WyIwIl0=', true, false, false, 'filter[tag_with]');
|
||||
$output .= html_print_input_hidden('filter[tag_without]', 'WyIwIl0=', true, false, false, 'filter[tag_without]');
|
||||
$output .= '</form>';
|
||||
$output .= '<table class="w100p h100p table-border-0 event-cardboard-widget"><tbody><tr>';
|
||||
|
||||
$width_td = (100 / count(explode(',', $severity)));
|
||||
|
@ -543,7 +554,8 @@ class EventCardboard extends Widget
|
|||
}
|
||||
}
|
||||
|
||||
switch ((int) $key) {
|
||||
$severity_row = (int) $key;
|
||||
switch ($severity_row) {
|
||||
case 0:
|
||||
$text = __('Maintenance');
|
||||
$color = get_priority_class((int) $key);
|
||||
|
@ -604,7 +616,7 @@ class EventCardboard extends Widget
|
|||
$border = ' border-right: 1px solid white; border-collapse: collapse;';
|
||||
}
|
||||
|
||||
$output .= '<td class="'.$color.'" style="width: '.$width_td.'%;'.$border.'"><span class="med_data">';
|
||||
$output .= '<td class="'.$color.'" style="width: '.$width_td.'%;'.$border.'" onclick="openEvents('.$severity_row.')"><span class="med_data">';
|
||||
$output .= $count;
|
||||
$output .= '</span><br>';
|
||||
$output .= $text;
|
||||
|
|
|
@ -396,6 +396,7 @@ class EventsListWidget extends Widget
|
|||
0 => \__('Only pending'),
|
||||
2 => \__('Only in process'),
|
||||
3 => \__('Only not validated'),
|
||||
4 => \__('Only not in process'),
|
||||
];
|
||||
|
||||
$inputs['inputs']['row1'][] = [
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue