Merge remote-tracking branch 'origin/develop' into ent-5822-prueba-concepto-modal-selector-de-grupos
|
@ -0,0 +1 @@
|
|||
pandora_console/attachment/agents
|
|
@ -24,7 +24,7 @@ cd $CODEHOME && tar zcvf $RPMHOME/SOURCES/pandorafms_server-$LOCAL_VERSION.tar.g
|
|||
cd $CODEHOME/pandora_agents/shellscript && tar zcvf $RPMHOME/SOURCES/pandorafms_agent-$LOCAL_VERSION.tar.gz --exclude \.exe --exclude \.svn --exclude nohup linux || exit 1
|
||||
|
||||
# Unix agent
|
||||
cd $CODEHOME/pandora_agents && tar zvcf $RPMHOME/SOURCES/pandorafms_agent_unix-$LOCAL_VERSION.tar.gz --exclude \.exe --exclude \.svn --exclude nohup --exclude NT4 unix || exit 1
|
||||
cd $CODEHOME/pandora_agents && tar zvcf $RPMHOME/SOURCES/pandorafms_agent_unix-$LOCAL_VERSION.tar.gz --exclude \.exe --exclude \.svn --exclude nohup --exclude NT4 --exclude Darwin/dmg unix || exit 1
|
||||
|
||||
# Enterprise console
|
||||
cd $PANDHOME_ENT/pandora_console && tar zcvf $RPMHOME/SOURCES/pandorafms_console_enterprise-$LOCAL_VERSION.tar.gz --exclude \.exe --exclude \.svn enterprise/* || exit 1
|
||||
|
|
|
@ -57,6 +57,9 @@ AGENT_UNIX_FILE="$CODEHOME/pandora_agents/unix/pandora_agent"
|
|||
AGENT_WIN_FILE="$CODEHOME/pandora_agents/win32/pandora.cc"
|
||||
AGENT_WIN_MPI_FILE="$CODEHOME/pandora_agents/win32/installer/pandora.mpi"
|
||||
AGENT_WIN_RC_FILE="$CODEHOME/pandora_agents/win32/versioninfo.rc"
|
||||
AGENT_DARWIN_BUILDER="$CODEHOME/pandora_agents/unix/Darwin/dmg/build_darwin_dmg.sh"
|
||||
AGENT_DARWIN_DISTR="$CODEHOME/pandora_agents/unix/Darwin/dmg/extras/distribution.xml"
|
||||
AGENT_DARWIN_PLIST="$CODEHOME/pandora_agents/unix/Darwin/dmg/files/pandorafms_uninstall/PandoraFMS agent uninstaller.app/Contents/Info.plist"
|
||||
SATELLITE_FILE="$PANDHOME_ENT/satellite_server/satellite_server.pl"
|
||||
PERL_PLUGIN_FILES="$PANDHOME_ENT/pandora_server/util/recon_script/vmware-plugin.pl \
|
||||
$PANDHOME_ENT/pandora_server/util/recon_script/pcm_client.pl \
|
||||
|
@ -138,6 +141,14 @@ for file in $INSTALLER_FILES; do
|
|||
update_installer_version $file
|
||||
done
|
||||
|
||||
# Darwin dmg installer files
|
||||
echo "Updating DARWIN DMG files..."
|
||||
sed -i -e "/VERSION/s/=.*/=\"$VERSION\"/" "$AGENT_DARWIN_BUILDER"
|
||||
sed -i -r "s/(version=\").*(\"\s+onConclusion=)/\1$VERSION\2/g" "$AGENT_DARWIN_DISTR"
|
||||
sed -i -r "s/(CFBundleVersion<\/key>\s*<string>).*(<\/string>)/\1$VERSION\2/g" "$AGENT_DARWIN_PLIST"
|
||||
sed -i -r "s/(CFBundleShortVersionString<\/key>\s*<string>).*(<\/string>)/\1$VERSION\2/g" "$AGENT_DARWIN_PLIST"
|
||||
sed -i -r "s/(CFBundleGetInfoString<\/key>\s*<string>).*( Pandora FMS)/\1$VERSION\2/g" "$AGENT_DARWIN_PLIST"
|
||||
|
||||
# Perl plugins files
|
||||
for file in $PERL_PLUGIN_FILES; do
|
||||
echo "Updating plugin file $file..."
|
||||
|
@ -155,7 +166,7 @@ sed -i -e "s/my\s\s*\$version\s*=.*/my \$version = \"$VERSION PS$BUILD\";/" "$SE
|
|||
sed -i -e "s/\s*\#\s*\Version.*/\# Version $VERSION/" "$SERVER_CONF_FILE"
|
||||
sed -i -e "s/\s*\!define PRODUCT_VERSION.*/\!define PRODUCT_VERSION \"$VERSION\"/" "$SERVER_WIN_MPI_OPEN_FILE"
|
||||
sed -i -e "s/\s*\!define PRODUCT_VERSION.*/\!define PRODUCT_VERSION \"$VERSION\"/" "$SERVER_WIN_MPI_ENT_FILE"
|
||||
echo "Updateing Pandora PluginTools version..."
|
||||
echo "Updating Pandora PluginTools version..."
|
||||
sed -i -e "s/my\s\s*\$pandora_version\s*=.*/my \$pandora_version = \"$VERSION\";/" "$PLUGIN_LIB_FILE"
|
||||
sed -i -e "s/my\s\s*\$pandora_build\s*=.*/my \$pandora_build = \"$BUILD\";/" "$PLUGIN_LIB_FILE"
|
||||
|
||||
|
|
|
@ -1,53 +1,59 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>Fandora FMS - Generate SSH keys step-by-step</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta name="resource-type" content="document">
|
||||
<meta name="distribution" content="global">
|
||||
<meta name="author" content="Sancho Lerena, Raul Mateos and others">
|
||||
<meta name="copyright" content="This is GPL software. Created by Sancho Lerena and others">
|
||||
</head>
|
||||
<body>
|
||||
<center>
|
||||
<img src="images/logo.png" alt="">
|
||||
</center>
|
||||
<head>
|
||||
<title>Fandora FMS - Generate SSH keys step-by-step</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<meta name="resource-type" content="document" />
|
||||
<meta name="distribution" content="global" />
|
||||
<meta name="author" content="Sancho Lerena, Raul Mateos and others" />
|
||||
<meta
|
||||
name="copyright"
|
||||
content="This is GPL software. Created by Sancho Lerena and others"
|
||||
/>
|
||||
</head>
|
||||
<body>
|
||||
<center>
|
||||
<img src="images/logo.png" alt="" />
|
||||
</center>
|
||||
|
||||
<h2>Step-by-step generating SSH keys</h2>
|
||||
<h2>Step-by-step generating SSH keys</h2>
|
||||
|
||||
From
|
||||
<a href="http://www.openideas.info/wiki/index.php?title=Pandora:FAQ#How_to_generate_a_pair_of_SSH_keys_for_Pandora_Windows_agent_1.2_.3F">Pandora FMS FAQ</a>.
|
||||
From
|
||||
<a
|
||||
href="https://pandorafms.com/docs/index.php?title=Pandora:FAQ#How_to_generate_a_pair_of_SSH_keys_for_Pandora_Windows_agent.3F_.28SSH_Transfer_only.29"
|
||||
>Pandora FMS FAQ</a
|
||||
>.
|
||||
|
||||
<ol>
|
||||
<li>
|
||||
Go to <code>.\util</code> of your Pandora FMS agent for Windows
|
||||
and run <code>puttygen.exe</code>.<br>
|
||||
Generate keys, SSH-2_DSA, 1024:<br><br>
|
||||
<img src="images/1.jpg"><br><br>
|
||||
</li>
|
||||
<li>
|
||||
Press Generate<br>
|
||||
Export key to OpenSSH key (Cygwin uses a port of OpenSSH)<br><br>
|
||||
<img src="images/2.jpg"><br><br>
|
||||
</li>
|
||||
<li>
|
||||
We have no chosen password, so press YES:<br><br>
|
||||
<img src="images/3.jpg"><br><br>
|
||||
</li>
|
||||
<li>
|
||||
Save it as <code>c:\pandora\keys\id_dsa:</code><br><br>
|
||||
<img src="images/4.jpg"><br><br>
|
||||
</li>
|
||||
<li>
|
||||
Now let's copy the public key to clipboard:<br><br>
|
||||
<img src="images/5.jpg"><br><br>
|
||||
</li>
|
||||
<li>
|
||||
and paste it as <code>c:\pandora_agent\keys\id_dsa.pub</code>,
|
||||
and also to the <code>/home/pandora/.ssh/authorized_keys</code> file.
|
||||
<br><br>
|
||||
<img src="images/6.jpg"><br><br>
|
||||
</li>
|
||||
</ol>
|
||||
</body>
|
||||
</html>
|
||||
<ol>
|
||||
<li>
|
||||
Go to <code>.\util</code> of your Pandora FMS agent for Windows and run
|
||||
<code>puttygen.exe</code>.<br />
|
||||
Generate keys, SSH-2_DSA, 1024:<br /><br />
|
||||
<img src="images/1.jpg" /><br /><br />
|
||||
</li>
|
||||
<li>
|
||||
Press Generate<br />
|
||||
Export key to OpenSSH key (Cygwin uses a port of OpenSSH)<br /><br />
|
||||
<img src="images/2.jpg" /><br /><br />
|
||||
</li>
|
||||
<li>
|
||||
We have no chosen password, so press YES:<br /><br />
|
||||
<img src="images/3.jpg" /><br /><br />
|
||||
</li>
|
||||
<li>
|
||||
Save it as <code>c:\pandora\keys\id_dsa:</code><br /><br />
|
||||
<img src="images/4.jpg" /><br /><br />
|
||||
</li>
|
||||
<li>
|
||||
Now let's copy the public key to clipboard:<br /><br />
|
||||
<img src="images/5.jpg" /><br /><br />
|
||||
</li>
|
||||
<li>
|
||||
and paste it as <code>c:\pandora_agent\keys\id_dsa.pub</code>, and also
|
||||
to the <code>/home/pandora/.ssh/authorized_keys</code> file.
|
||||
<br /><br />
|
||||
<img src="images/6.jpg" /><br /><br />
|
||||
</li>
|
||||
</ol>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -1,53 +1,62 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>Pandora FMS - Generación de claves SSH en Windows paso por paso</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta name="resource-type" content="document">
|
||||
<meta name="distribution" content="global">
|
||||
<meta name="author" content="Sancho Lerena, Raul Mateos y otros">
|
||||
<meta name="copyright" content="This is GPL software. Created by Sancho Lerena and others">
|
||||
</head>
|
||||
<body>
|
||||
<center>
|
||||
<img src="images/logo.png" alt="">
|
||||
</center>
|
||||
<h2 class="print">Generación de claves SSH en Windows paso por paso</h2>
|
||||
<head>
|
||||
<title>
|
||||
Pandora FMS - Generación de claves SSH en Windows paso por paso
|
||||
</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<meta name="resource-type" content="document" />
|
||||
<meta name="distribution" content="global" />
|
||||
<meta name="author" content="Sancho Lerena, Raul Mateos y otros" />
|
||||
<meta
|
||||
name="copyright"
|
||||
content="This is GPL software. Created by Sancho Lerena and others"
|
||||
/>
|
||||
</head>
|
||||
<body>
|
||||
<center>
|
||||
<img src="images/logo.png" alt="" />
|
||||
</center>
|
||||
<h2 class="print">Generación de claves SSH en Windows paso por paso</h2>
|
||||
|
||||
Extraído de las
|
||||
<a href="http://www.openideas.info/wiki/index.php?title=Pandora:FAQ_ES#.C2.BF_C.C3.B3mo_puedo_generar_un_par_de_claves_SHH_para_el_agente_para_Windows_1.2_.3F">
|
||||
FAQ</a>.
|
||||
Extraído de las
|
||||
<a
|
||||
href="https://pandorafms.com/docs/index.php?title=Pandora:FAQ_ES#.C2.BFC.C3.B3mo_puedo_generar_un_par_de_claves_SHH_para_el_agente_para_Windows_.28SSH_Transfer.29_.3F"
|
||||
>
|
||||
FAQ</a
|
||||
>.
|
||||
|
||||
<ol>
|
||||
<li>
|
||||
Desde el directorio <code>.\util</code> del agente Pandora FMS para
|
||||
windows ejecutamos <code>puttygen.exe</code>.<br>
|
||||
Generamos claves SSH-2_DSA, 1024:<br><br>
|
||||
<img src="images/1.jpg"><br><br>
|
||||
</li>
|
||||
<li>
|
||||
Pulsamos «Generate»
|
||||
para generar la clave.<br>
|
||||
Exportamos la clave a formato OpenSSH<br><br>
|
||||
<img src="images/2.jpg"><br><br>
|
||||
</li>
|
||||
<li>
|
||||
No elegimos contraseña, con lo cual pulsamos «Sí»:<br><br>
|
||||
<img src="images/3.jpg"><br><br>
|
||||
</li>
|
||||
<li>
|
||||
Guardamos la clave como <code>C:\pandora\keys\id_dsa:</code><br><br>
|
||||
<img src="images/4.jpg"><br><br>
|
||||
</li>
|
||||
<li>
|
||||
Ahora copiamos la clave pública al portapapeles:<br><br>
|
||||
<img src="images/5.jpg"><br><br>
|
||||
</li>
|
||||
<li>
|
||||
Pegamos la clave en un nuevo fichero <code>C:\pandora_agent\keys\id_dsa.pub</code>,
|
||||
y debemos también añadirla al fichero <code>/home/pandora/.ssh/authorized_keys</code>.
|
||||
<br><br>
|
||||
<img src="images/6.jpg"><br><br>
|
||||
</li>
|
||||
</ol>
|
||||
</body></html>
|
||||
<ol>
|
||||
<li>
|
||||
Desde el directorio <code>.\util</code> del agente Pandora FMS para
|
||||
windows ejecutamos <code>puttygen.exe</code>.<br />
|
||||
Generamos claves SSH-2_DSA, 1024:<br /><br />
|
||||
<img src="images/1.jpg" /><br /><br />
|
||||
</li>
|
||||
<li>
|
||||
Pulsamos «Generate» para generar la clave.<br />
|
||||
Exportamos la clave a formato OpenSSH<br /><br />
|
||||
<img src="images/2.jpg" /><br /><br />
|
||||
</li>
|
||||
<li>
|
||||
No elegimos contraseña, con lo cual pulsamos «Sí»:<br /><br />
|
||||
<img src="images/3.jpg" /><br /><br />
|
||||
</li>
|
||||
<li>
|
||||
Guardamos la clave como <code>C:\pandora\keys\id_dsa:</code><br /><br />
|
||||
<img src="images/4.jpg" /><br /><br />
|
||||
</li>
|
||||
<li>
|
||||
Ahora copiamos la clave pública al portapapeles:<br /><br />
|
||||
<img src="images/5.jpg" /><br /><br />
|
||||
</li>
|
||||
<li>
|
||||
Pegamos la clave en un nuevo fichero
|
||||
<code>C:\pandora_agent\keys\id_dsa.pub</code>, y debemos también
|
||||
añadirla al fichero <code>/home/pandora/.ssh/authorized_keys</code>.
|
||||
<br /><br />
|
||||
<img src="images/6.jpg" /><br /><br />
|
||||
</li>
|
||||
</ol>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
# Copyright (c) 2007-2008 Ramon Novoa <rnovoa@artica.es>
|
||||
# Copyright (c) 2007-2008 Artica Soluciones Tecnologicas S.L.
|
||||
#
|
||||
# tentacle_client.pl Tentacle Client. See http://www.openideas.info/wiki for
|
||||
# tentacle_client.pl Tentacle Client. See https://pandorafms.com/docs/ for
|
||||
# protocol description.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
|
@ -155,7 +155,7 @@ my $t_zip = 0;
|
|||
sub print_help {
|
||||
|
||||
print ("Usage: $0 [options] [file] [file] ...\n\n");
|
||||
print ("Tentacle client v$VERSION. See http://www.openideas.info/wiki for protocol description.\n\n");
|
||||
print ("Tentacle client v$VERSION. See https://pandorafms.com/docs/ for protocol description.\n\n");
|
||||
print ("Options:\n");
|
||||
print ("\t-a address\tServer address (default $t_address).\n");
|
||||
print ("\t-b localaddress\tLocal address to bind.\n");
|
||||
|
@ -1091,7 +1091,7 @@ This is released under the GNU Lesser General Public License.
|
|||
|
||||
L<Getopt::Std>, L<IO::Select>, L<IO::Socket::INET>, L<File::Basename>
|
||||
|
||||
Protocol description and more info at: L<< http://openideas.info/wiki/index.php?title=Tentacle >>
|
||||
Protocol description and more info at: L<< https://pandorafms.com/docs/index.php?title=Pandora:Documentation_en:Tentacle >>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
#!/usr/bin/perl
|
||||
##########################################################################
|
||||
# Tentacle Server
|
||||
# See http://www.openideas.info/wiki for protocol description.
|
||||
# See https://pandorafms.com/docs/ for protocol description.
|
||||
# Tentacle have IANA assigned port tpc/41121 as official port.
|
||||
##########################################################################
|
||||
# Copyright (c) 2007-2008 Ramon Novoa <rnovoa@artica.es>
|
||||
# Copyright (c) 2005-2010 Artica Soluciones Tecnologicas S.L
|
||||
#
|
||||
# tentacle_server.pl Tentacle Server. See http://www.openideas.info/wiki for
|
||||
# tentacle_server.pl Tentacle Server. See https://pandorafms.com/docs/ for
|
||||
# protocol description.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
|
@ -211,7 +211,7 @@ sub print_help {
|
|||
$" = ',';
|
||||
|
||||
print ("Usage: $0 -s <storage directory> [options]\n\n");
|
||||
print ("Tentacle server v$VERSION. See http://www.openideas.info/wiki for protocol description.\n\n");
|
||||
print ("Tentacle server v$VERSION. See https://pandorafms.com/docs/ for protocol description.\n\n");
|
||||
print ("Options:\n");
|
||||
print ("\t-a ip_addresses\tIP addresses to listen on (default @t_addresses).\n");
|
||||
print ("\t \t(Multiple addresses separated by comma can be defined.)\n");
|
||||
|
@ -1859,7 +1859,7 @@ This is released under the GNU Lesser General Public License.
|
|||
|
||||
L<Getopt::Std>, L<IO::Select>, L<IO::Socket::INET>, L<Thread::Semaphore>, L<POSIX>
|
||||
|
||||
Protocol description and more info at: L<< http://openideas.info/wiki/index.php?title=Tentacle >>
|
||||
Protocol description and more info at: L<< https://pandorafms.com/docs/index.php?title=Pandora:Documentation_en:Tentacle >>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
# Copyright (c) 2007-2008 Ramon Novoa <rnovoa@artica.es>
|
||||
# Copyright (c) 2007-2008 Artica Soluciones Tecnologicas S.L.
|
||||
#
|
||||
# tentacle_client.pl Tentacle Client. See http://www.openideas.info/wiki for
|
||||
# tentacle_client.pl Tentacle Client. See https://pandorafms.com/docs/ for
|
||||
# protocol description.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
|
@ -155,7 +155,7 @@ my $t_zip = 0;
|
|||
sub print_help {
|
||||
|
||||
print ("Usage: $0 [options] [file] [file] ...\n\n");
|
||||
print ("Tentacle client v$VERSION. See http://www.openideas.info/wiki for protocol description.\n\n");
|
||||
print ("Tentacle client v$VERSION. See https://pandorafms.com/docs/ for protocol description.\n\n");
|
||||
print ("Options:\n");
|
||||
print ("\t-a address\tServer address (default $t_address).\n");
|
||||
print ("\t-b localaddress\tLocal address to bind.\n");
|
||||
|
@ -1091,7 +1091,7 @@ This is released under the GNU Lesser General Public License.
|
|||
|
||||
L<Getopt::Std>, L<IO::Select>, L<IO::Socket::INET>, L<File::Basename>
|
||||
|
||||
Protocol description and more info at: L<< http://openideas.info/wiki/index.php?title=Tentacle >>
|
||||
Protocol description and more info at: L<< https://pandorafms.com/docs/index.php?title=Pandora:Documentation_en:Tentacle >>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
# Copyright (c) 2007-2008 Ramon Novoa <rnovoa@artica.es>
|
||||
# Copyright (c) 2007-2008 Artica Soluciones Tecnologicas S.L.
|
||||
#
|
||||
# tentacle_client.pl Tentacle Client. See http://www.openideas.info/wiki for
|
||||
# tentacle_client.pl Tentacle Client. See https://pandorafms.com/docs/ for
|
||||
# protocol description.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
|
@ -155,7 +155,7 @@ my $t_zip = 0;
|
|||
sub print_help {
|
||||
|
||||
print ("Usage: $0 [options] [file] [file] ...\n\n");
|
||||
print ("Tentacle client v$VERSION. See http://www.openideas.info/wiki for protocol description.\n\n");
|
||||
print ("Tentacle client v$VERSION. See https://pandorafms.com/docs/ for protocol description.\n\n");
|
||||
print ("Options:\n");
|
||||
print ("\t-a address\tServer address (default $t_address).\n");
|
||||
print ("\t-b localaddress\tLocal address to bind.\n");
|
||||
|
@ -1091,7 +1091,7 @@ This is released under the GNU Lesser General Public License.
|
|||
|
||||
L<Getopt::Std>, L<IO::Select>, L<IO::Socket::INET>, L<File::Basename>
|
||||
|
||||
Protocol description and more info at: L<< http://openideas.info/wiki/index.php?title=Tentacle >>
|
||||
Protocol description and more info at: L<< https://pandorafms.com/docs/index.php?title=Pandora:Documentation_en:Tentacle >>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
|
|
|
@ -99,6 +99,12 @@ transfer_mode tentacle
|
|||
# Proxy timeout (by default 1s)
|
||||
# proxy_timeout 1
|
||||
|
||||
# Address the proxy will listen on.
|
||||
#proxy_address 0.0.0.0
|
||||
|
||||
# Port the proxy will listen on.
|
||||
#proxy_port 41121
|
||||
|
||||
# User the agent will run as
|
||||
#pandora_user root
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
package: pandorafms-agent-unix
|
||||
Version: 7.0NG.749-200914
|
||||
Version: 7.0NG.749-200929
|
||||
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.749-200914"
|
||||
pandora_version="7.0NG.749-200929"
|
||||
|
||||
echo "Test if you has the tools for to make the packages."
|
||||
whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null
|
||||
|
|
|
@ -6,13 +6,16 @@
|
|||
<string>com.pandorafms.pandorafms</string>
|
||||
<key>ProgramArguments</key>
|
||||
<array>
|
||||
<string>/usr/bin/pandora_agent</string>
|
||||
<string>/usr/local/bin/pandora_agent</string>
|
||||
<string>/etc/pandora</string>
|
||||
</array>
|
||||
<key>EnvironmentVariables</key>
|
||||
<dict>
|
||||
<key>PATH</key>
|
||||
<string>/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin:/Library/Apple/bin</string>
|
||||
</dict>
|
||||
<key>RunAtLoad</key>
|
||||
<true/>
|
||||
<key>ServiceDescription</key>
|
||||
<string>PandoraFMS agent</string>
|
||||
<key>UserName</key>
|
||||
<string>root</string>
|
||||
</dict>
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
### DMG Agent compilation for MacOS
|
||||
|
||||
1. Move to the dmg directory, where build_darwin_dmg.sh is located
|
||||
# cd /<code-path>/pandorafms/pandora_agents/unix/Darwin/dmg/HOWTO.txt
|
||||
|
||||
2. Run the script. It has three optional arguments. In this order:
|
||||
- DMG package name.
|
||||
By default is "Pandora FMS MacOS agent"
|
||||
- DMG package version.
|
||||
It uses the current version by default (e.g. "7.NG.748")
|
||||
- Build path, where temporary files and final .dmg will be created.
|
||||
By default /root/code/pandorafms/pandora_agents/unix/Darwin/dmg (it creates "build" and "buildtmp" folders, deletes buildtmp when finished)
|
||||
|
||||
3. The script should return "SUCCESS: DMG file created at XXXX" when finished.
|
|
@ -0,0 +1,105 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Restore the original working directory and exit.
|
||||
function error {
|
||||
popd >/dev/null 2>&1
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Keeping this for future CICD integration
|
||||
if [ "$CI_PROJECT_DIR" != "" ]; then
|
||||
LOCALINST="$CODEHOME/pandora_agents/unix/Darwin/dmg"
|
||||
else
|
||||
LOCALINST="/root/code/pandorafms/pandora_agents/unix/Darwin/dmg"
|
||||
fi
|
||||
|
||||
# DMG package name
|
||||
if [ "$#" -ge 1 ]; then
|
||||
DMGNAME="$1"
|
||||
else
|
||||
DMGNAME="Pandora FMS MacOS agent"
|
||||
fi
|
||||
|
||||
# DMG package version
|
||||
if [ "$#" -ge 2 ]; then
|
||||
VERSION="7.0NG.749"
|
||||
else
|
||||
VERSION="7.0NG.749"
|
||||
fi
|
||||
|
||||
# Path for the generated DMG file
|
||||
if [ "$#" -ge 3 ]; then
|
||||
BUILD_PATH="$3"
|
||||
else
|
||||
BUILD_PATH="/root/code/pandorafms/pandora_agents/unix/Darwin/dmg"
|
||||
fi
|
||||
|
||||
BUILD_DMG="$BUILD_PATH/build"
|
||||
BUILD_TMP="$BUILD_PATH/buildtmp"
|
||||
|
||||
FULLNAME="7.0NG.749"
|
||||
echo "VERSION-"$VERSION" NAME-"$DMGNAME
|
||||
pushd .
|
||||
cd $LOCALINST
|
||||
|
||||
# Copy necessary files to installer
|
||||
cp ../com.pandorafms.pandorafms.plist files/pandorafms/
|
||||
cp ../../../../pandora_agents/unix/pandora* files/pandorafms/
|
||||
cp ../../../../pandora_agents/unix/tentacle* files/pandorafms/
|
||||
cp -R ../../../../pandora_agents/unix/plugins files/pandorafms/
|
||||
cp -R ../../../../pandora_agents/unix/man files/pandorafms/
|
||||
cp -R ../../../../pandora_agents/unix/Darwin/pandora_agent.conf files/pandorafms/
|
||||
mkdir $BUILD_DMG
|
||||
mkdir $BUILD_TMP
|
||||
|
||||
# Build pandorafms agent component
|
||||
pkgbuild --root files/pandorafms/ \
|
||||
--identifier com.pandorafms.pandorafms_src \
|
||||
--version $VERSION \
|
||||
--scripts scripts \
|
||||
--install-location /usr/local/share/pandora_agent/ \
|
||||
$BUILD_TMP/pandorafms_src.pdk || error
|
||||
|
||||
# Build pandorafms uninstaller app
|
||||
pkgbuild --root files/pandorafms_uninstall/ \
|
||||
--component-plist extras/pandorafms_uninstall.plist \
|
||||
--install-location /Applications \
|
||||
$BUILD_TMP/pandorafms_uninstall.pdk || error
|
||||
|
||||
# Put it together into a single pkg
|
||||
productbuild --distribution extras/distribution.xml \
|
||||
--package-path $BUILD_TMP \
|
||||
--resources resources \
|
||||
--scripts scripts \
|
||||
--version "$VERSION" \
|
||||
$BUILD_TMP/pandorafms_agent.pkg || error
|
||||
|
||||
# Clean and prepare dmg creation
|
||||
rm $BUILD_TMP/pandorafms_src.pdk
|
||||
rm $BUILD_TMP/pandorafms_uninstall.pdk
|
||||
|
||||
#Create dmg file
|
||||
hdiutil create -volname "Pandora FMS agent installer" \
|
||||
-srcfolder "$BUILD_TMP" \
|
||||
-ov -format UDZO \
|
||||
"$BUILD_DMG/$FULLNAME" || error
|
||||
|
||||
#Change the icon to dmg
|
||||
sips -i extras/pandora_installer.png || error
|
||||
DeRez -only icns extras/pandora_installer.png > tmpicns.rsrc || error
|
||||
Rez -append tmpicns.rsrc -o "$BUILD_DMG/$FULLNAME" || error
|
||||
SetFile -a C "$BUILD_DMG/$FULLNAME" || error
|
||||
|
||||
|
||||
# Copy and clean folder
|
||||
rm -Rf $BUILD_TMP
|
||||
rm -Rf files/pandorafms/*pandora*
|
||||
rm -Rf files/pandorafms/*tentacle*
|
||||
rm -Rf files/pandorafms/plugins
|
||||
rm -Rf files/pandorafms/man
|
||||
rm -f files/pandorafms/README
|
||||
rm -f tmpicns.rsrc
|
||||
|
||||
popd
|
||||
|
||||
printf "\nSUCCESS: DMG file created at \"$BUILD_DMG/$FULLNAME\"\n"
|
|
@ -0,0 +1,33 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<installer-gui-script minSpecVersion="1">
|
||||
<pkg-ref id="com.pandorafms.pandorafms_src"/>
|
||||
<title>Pandora FMS Agent installer for MacOS</title>
|
||||
<welcome file="text/welcome.html" />
|
||||
<!-- <readme file="text/readme.html" /> -->
|
||||
<license file="text/license.html" />
|
||||
<conclusion file="text/conclusion.html" />
|
||||
<background file="images/pfms_background_darwin.png" alignment="bottomleft" scaling="none" mime-type="image/png" uti="public.png" />
|
||||
<options customize="never" allow-external-scripts="true" rootVolumeOnly="true"/>
|
||||
<!-- <options customize="never" allow-external-scripts="true"/> -->
|
||||
<choices-outline>
|
||||
<line choice="default">
|
||||
<line choice="com.pandorafms.pandorafms_src"/>
|
||||
<line choice="com.pandorafms.pandorafms_uninstall"/>
|
||||
</line>
|
||||
</choices-outline>
|
||||
<choice id="default"/>
|
||||
<choice id="com.pandorafms.pandorafms_src" visible="false">
|
||||
<pkg-ref id="com.pandorafms.pandorafms_src"/>
|
||||
</choice>
|
||||
<pkg-ref id="com.pandorafms.pandorafms_src" version="7.0NG.749" onConclusion="none">pandorafms_src.pdk</pkg-ref>
|
||||
<choice id="com.pandorafms.pandorafms_uninstall" visible="true" customLocation="/Applications">
|
||||
<pkg-ref id="com.pandorafms.pandorafms_uninstall"/>
|
||||
</choice>
|
||||
<pkg-ref id="com.pandorafms.pandorafms_uninstall" version="7.0NG.749" onConclusion="none">pandorafms_uninstall.pdk</pkg-ref>
|
||||
<!-- <installation-check script="check()" />
|
||||
<script>
|
||||
<![CDATA[
|
||||
]]>
|
||||
</script>
|
||||
-->
|
||||
</installer-gui-script>
|
After Width: | Height: | Size: 33 KiB |
|
@ -0,0 +1,18 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<array>
|
||||
<dict>
|
||||
<key>BundleHasStrictIdentifier</key>
|
||||
<true/>
|
||||
<key>BundleIsRelocatable</key>
|
||||
<false/>
|
||||
<key>BundleIsVersionChecked</key>
|
||||
<true/>
|
||||
<key>BundleOverwriteAction</key>
|
||||
<string>upgrade</string>
|
||||
<key>RootRelativeBundlePath</key>
|
||||
<string>PandoraFMS agent uninstaller.app</string>
|
||||
</dict>
|
||||
</array>
|
||||
</plist>
|
|
@ -0,0 +1,22 @@
|
|||
#!/usr/bin/osascript
|
||||
|
||||
set first_time to 1
|
||||
set text_display to "Please set your Pandora FMS IP address:"
|
||||
|
||||
repeat
|
||||
if (first_time = 1) then
|
||||
set text_display to "You can set a specific group for this agent (must exist in Pandora):"
|
||||
end if
|
||||
set my_group to display dialog ¬
|
||||
text_display with title ¬
|
||||
"Target group" default answer "Servers" ¬
|
||||
buttons {"Continue"} ¬
|
||||
default button "Continue"
|
||||
if ((text returned of my_group) = "") then
|
||||
set first_time to 0
|
||||
else
|
||||
exit repeat
|
||||
end if
|
||||
end repeat
|
||||
|
||||
return (text returned of my_group)
|
|
@ -0,0 +1,23 @@
|
|||
#!/usr/bin/osascript
|
||||
|
||||
set first_time to 1
|
||||
set text_display to "Enable remote config for this agent?"
|
||||
|
||||
repeat
|
||||
if (first_time = 1) then
|
||||
set text_display to "Enable remote config for this agent? (Enterprise only)"
|
||||
end if
|
||||
set my_remotecfg to display dialog ¬
|
||||
text_display with title ¬
|
||||
"Remote config" ¬
|
||||
buttons {"No", "Yes"} ¬
|
||||
default button "Yes"
|
||||
if (button returned of my_remotecfg) is "Yes" then
|
||||
set remote_config to "1"
|
||||
else
|
||||
set remote_config to "0"
|
||||
end if
|
||||
exit repeat
|
||||
end repeat
|
||||
|
||||
return (remote_config)
|
|
@ -0,0 +1,22 @@
|
|||
#!/usr/bin/osascript
|
||||
|
||||
set first_time to 1
|
||||
set text_display to "Please set your Pandora FMS IP address:"
|
||||
|
||||
repeat
|
||||
if (first_time = 1) then
|
||||
set text_display to "Please set your Pandora FMS IP address:"
|
||||
end if
|
||||
set my_serverip to display dialog ¬
|
||||
text_display with title ¬
|
||||
"Pandora FMS Server address" default answer "localhost" ¬
|
||||
buttons {"Continue"} ¬
|
||||
default button "Continue"
|
||||
if ((text returned of my_serverip) = "") then
|
||||
set first_time to 0
|
||||
else
|
||||
exit repeat
|
||||
end if
|
||||
end repeat
|
||||
|
||||
return (text returned of my_serverip)
|
|
@ -0,0 +1,31 @@
|
|||
#!/usr/bin/env perl
|
||||
|
||||
use strict;
|
||||
|
||||
my ($CONF_FILE, $token, $value) = @ARGV;
|
||||
exit unless defined ($value);
|
||||
exit unless -e $CONF_FILE;
|
||||
|
||||
open(my $fh, '<', $CONF_FILE) or die($!);
|
||||
my @lines = <$fh>;
|
||||
close ($fh);
|
||||
|
||||
# Set the new value for the configuration token.
|
||||
my $found = 0;
|
||||
for(my $i = 0; $i < $#lines; $i++) {
|
||||
if ($lines[$i] =~ m/[#\s]*$token/) {
|
||||
$lines[$i] = "$token $value\n";
|
||||
$found = 1;
|
||||
last;
|
||||
}
|
||||
}
|
||||
|
||||
# Append the token to the end if it was not found in the file.
|
||||
if ($found == 0) {
|
||||
push(@lines, "$token $value\n");
|
||||
}
|
||||
|
||||
# Write the changes to the configuration file.
|
||||
open($fh, '>', $CONF_FILE) or die($!);
|
||||
print $fh @lines;
|
||||
close($fh);
|
|
@ -0,0 +1,14 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"><dict><key>CFBundlePackageType</key><string>APPL</string><key>CFBundleInfoDictionaryVersion</key><string>6.0</string>
|
||||
|
||||
<key>CFBundleName</key> <string>PandoraFMS agent uninstaller</string>
|
||||
<key>CFBundleExecutable</key> <string>uninstall.sh</string>
|
||||
<key>CFBundleIconFile</key> <string>pandorafms.icns</string>
|
||||
<key>CFBundleIdentifier</key> <string>com.pandorafms.pandorafms_uninstall</string>
|
||||
|
||||
<key>CFBundleVersion</key> <string>7.0NG.749</string>
|
||||
<key>CFBundleGetInfoString</key> <string>7.0NG.749 Pandora FMS Agent uninstaller for MacOS by Artica ST on Aug 2020</string>
|
||||
<key>CFBundleShortVersionString</key> <string>7.0NG.749</string>
|
||||
|
||||
<key>NSPrincipalClass</key><string>NSApplication</string>
|
||||
<key>NSMainNibFile</key><string>MainMenu</string>
|
||||
</dict></plist>
|
|
@ -0,0 +1,18 @@
|
|||
#!/usr/bin/env bash
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
CONFIRM=`"$(dirname "$0")/../Resources/confirm_uninstall"`
|
||||
if [ "$CONFIRM" -ne "1" ]
|
||||
then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
OUTPUT=`"$(dirname "$0")/../Resources/ask_root"`
|
||||
ERROR="$?"
|
||||
|
||||
if [ "$?" -gt "0" ]
|
||||
then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo $OUTPUT | `sudo -S "$(dirname "$0")/../Resources/uninstall"`
|
|
@ -0,0 +1,9 @@
|
|||
#!/usr/bin/osascript
|
||||
|
||||
set my_password to display dialog "Please provide root password to uninstall Pandora FMS agent:" ¬
|
||||
with title "Root confirmation" ¬
|
||||
with icon caution ¬
|
||||
default answer "" ¬
|
||||
buttons {"Cancel", "OK"} default button 2 ¬
|
||||
with hidden answer
|
||||
return (text returned of my_password)
|
|
@ -0,0 +1,23 @@
|
|||
#!/usr/bin/osascript
|
||||
|
||||
set first_time to 1
|
||||
set text_display to "Are you sure you want to uninstall Pandora FMS agent?"
|
||||
|
||||
repeat
|
||||
if (first_time = 1) then
|
||||
set text_display to "Are you sure you want to uninstall Pandora FMS agent?"
|
||||
end if
|
||||
set my_remotecfg to display dialog ¬
|
||||
text_display with title ¬
|
||||
"Confirm uninstall" ¬
|
||||
buttons {"No", "Yes"} ¬
|
||||
default button "No"
|
||||
if (button returned of my_remotecfg) is "Yes" then
|
||||
set confirm_uninstall to "1"
|
||||
else
|
||||
set confirm_uninstall to "0"
|
||||
end if
|
||||
exit repeat
|
||||
end repeat
|
||||
|
||||
return (confirm_uninstall)
|
|
@ -0,0 +1,33 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Stop the agent process
|
||||
`launchctl stop com.pandorafms.pandorafms`
|
||||
PFMSAGENT=`ps aux | grep pandora_agent | grep -v grep | wc -l`
|
||||
if [ "$PFMSAGENT" -gt "0" ]
|
||||
then
|
||||
PIDAGENT=`ps aux | grep pandora_agent | grep -v grep | awk '{print $2}'`
|
||||
kill $PIDAGENT
|
||||
fi
|
||||
|
||||
# Remove local files
|
||||
rm -Rf /etc/pandora
|
||||
rm -Rf /usr/local/share/pandora_agent/
|
||||
rm -f /usr/local/bin/pandora_agent
|
||||
rm -f /usr/local/bin/pandora_agent_exec
|
||||
rm -f /usr/local/bin/pandora_revent
|
||||
rm -f /usr/local/bin/tentacle_client
|
||||
rm -f /usr/local/share/man/man1/pandora_agent.1.gz
|
||||
rm -f /usr/local/share/man/man1/tentacle_client.1.gz
|
||||
rm -f /var/log/pandora/pandora_agent.*
|
||||
rm -f /etc/newsyslog.d/pandora_agent.conf
|
||||
|
||||
# Remove everything related with Pandora FMS agent
|
||||
`launchctl remove com.pandorafms.pandorafms`
|
||||
rm -f /Library/LaunchDaemons/com.pandorafms.pandorafms.plist
|
||||
|
||||
# Remove all packages residual files
|
||||
rm -f /private/var/db/receipts/com.pandorafms*
|
||||
|
||||
# Remove the uninstall app too
|
||||
rm -Rf /Applications/PandoraFMS*
|
||||
|
After Width: | Height: | Size: 32 KiB |
|
@ -0,0 +1,4 @@
|
|||
Installation complete! Thank you for installing Pandora FMS agent for MacOS.
|
||||
Agent's service has been automatically started. You can manage the service with:
|
||||
sudo launchctl start com.pandorafms.pandorafms to start it, and sudo launchctl
|
||||
stop com.pandorafms.pandorafms to stop it.
|
|
@ -0,0 +1,237 @@
|
|||
GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free
|
||||
Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies of this license
|
||||
document, but changing it is not allowed. Preamble The licenses for most
|
||||
software are designed to take away your freedom to share and change it. By
|
||||
contrast, the GNU General Public License is intended to guarantee your freedom
|
||||
to share and change free software--to make sure the software is free for all its
|
||||
users. This General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to using it.
|
||||
(Some other Free Software Foundation software is covered by the GNU Library
|
||||
General Public License instead.) You can apply it to your programs, too. When we
|
||||
speak of free software, we are referring to freedom, not price. Our General
|
||||
Public Licenses are designed to make sure that you have the freedom to
|
||||
distribute copies of free software (and charge for this service if you wish),
|
||||
that you receive source code or can get it if you want it, that you can change
|
||||
the software or use pieces of it in new free programs; and that you know you can
|
||||
do these things. To protect your rights, we need to make restrictions that
|
||||
forbid anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it. For example, if you
|
||||
distribute copies of such a program, whether gratis or for a fee, you must give
|
||||
the recipients all the rights that you have. You must make sure that they, too,
|
||||
receive or can get the source code. And you must show them these terms so they
|
||||
know their rights. We protect your rights with two steps: (1) copyright the
|
||||
software, and (2) offer you this license which gives you legal permission to
|
||||
copy, distribute and/or modify the software. Also, for each author's protection
|
||||
and ours, we want to make certain that everyone understands that there is no
|
||||
warranty for this free software. If the software is modified by someone else and
|
||||
passed on, we want its recipients to know that what they have is not the
|
||||
original, so that any problems introduced by others will not reflect on the
|
||||
original authors' reputations. Finally, any free program is threatened
|
||||
constantly by software patents. We wish to avoid the danger that redistributors
|
||||
of a free program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any patent must
|
||||
be licensed for everyone's free use or not licensed at all. The precise terms
|
||||
and conditions for copying, distribution and modification follow. GNU GENERAL
|
||||
PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
0. This License applies to any program or other work which contains a notice
|
||||
placed by the copyright holder saying it may be distributed under the terms of
|
||||
this General Public License. The "Program", below, refers to any such program or
|
||||
work, and a "work based on the Program" means either the Program or any
|
||||
derivative work under copyright law: that is to say, a work containing the
|
||||
Program or a portion of it, either verbatim or with modifications and/or
|
||||
translated into another language. (Hereinafter, translation is included without
|
||||
limitation in the term "modification".) Each licensee is addressed as "you".
|
||||
Activities other than copying, distribution and modification are not covered by
|
||||
this License; they are outside its scope. The act of running the Program is not
|
||||
restricted, and the output from the Program is covered only if its contents
|
||||
constitute a work based on the Program (independent of having been made by
|
||||
running the Program). Whether that is true depends on what the Program does. 1.
|
||||
You may copy and distribute verbatim copies of the Program's source code as you
|
||||
receive it, in any medium, provided that you conspicuously and appropriately
|
||||
publish on each copy an appropriate copyright notice and disclaimer of warranty;
|
||||
keep intact all the notices that refer to this License and to the absence of any
|
||||
warranty; and give any other recipients of the Program a copy of this License
|
||||
along with the Program. You may charge a fee for the physical act of
|
||||
transferring a copy, and you may at your option offer warranty protection in
|
||||
exchange for a fee. 2. You may modify your copy or copies of the Program or any
|
||||
portion of it, thus forming a work based on the Program, and copy and distribute
|
||||
such modifications or work under the terms of Section 1 above, provided that you
|
||||
also meet all of these conditions: a) You must cause the modified files to carry
|
||||
prominent notices stating that you changed the files and the date of any change.
|
||||
b) You must cause any work that you distribute or publish, that in whole or in
|
||||
part contains or is derived from the Program or any part thereof, to be licensed
|
||||
as a whole at no charge to all third parties under the terms of this License. c)
|
||||
If the modified program normally reads commands interactively when run, you must
|
||||
cause it, when started running for such interactive use in the most ordinary
|
||||
way, to print or display an announcement including an appropriate copyright
|
||||
notice and a notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under these conditions,
|
||||
and telling the user how to view a copy of this License. (Exception: if the
|
||||
Program itself is interactive but does not normally print such an announcement,
|
||||
your work based on the Program is not required to print an announcement.) These
|
||||
requirements apply to the modified work as a whole. If identifiable sections of
|
||||
that work are not derived from the Program, and can be reasonably considered
|
||||
independent and separate works in themselves, then this License, and its terms,
|
||||
do not apply to those sections when you distribute them as separate works. But
|
||||
when you distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of this
|
||||
License, whose permissions for other licensees extend to the entire whole, and
|
||||
thus to each and every part regardless of who wrote it. Thus, it is not the
|
||||
intent of this section to claim rights or contest your rights to work written
|
||||
entirely by you; rather, the intent is to exercise the right to control the
|
||||
distribution of derivative or collective works based on the Program. In
|
||||
addition, mere aggregation of another work not based on the Program with the
|
||||
Program (or with a work based on the Program) on a volume of a storage or
|
||||
distribution medium does not bring the other work under the scope of this
|
||||
License. 3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of Sections 1
|
||||
and 2 above provided that you also do one of the following: a) Accompany it with
|
||||
the complete corresponding machine-readable source code, which must be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium customarily
|
||||
used for software interchange; or, b) Accompany it with a written offer, valid
|
||||
for at least three years, to give any third party, for a charge no more than
|
||||
your cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be distributed under
|
||||
the terms of Sections 1 and 2 above on a medium customarily used for software
|
||||
interchange; or, c) Accompany it with the information you received as to the
|
||||
offer to distribute corresponding source code. (This alternative is allowed only
|
||||
for noncommercial distribution and only if you received the program in object
|
||||
code or executable form with such an offer, in accord with Subsection b above.)
|
||||
The source code for a work means the preferred form of the work for making
|
||||
modifications to it. For an executable work, complete source code means all the
|
||||
source code for all modules it contains, plus any associated interface
|
||||
definition files, plus the scripts used to control compilation and installation
|
||||
of the executable. However, as a special exception, the source code distributed
|
||||
need not include anything that is normally distributed (in either source or
|
||||
binary form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component itself
|
||||
accompanies the executable. If distribution of executable or object code is made
|
||||
by offering access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as distribution of the
|
||||
source code, even though third parties are not compelled to copy the source
|
||||
along with the object code. 4. You may not copy, modify, sublicense, or
|
||||
distribute the Program except as expressly provided under this License. Any
|
||||
attempt otherwise to copy, modify, sublicense or distribute the Program is void,
|
||||
and will automatically terminate your rights under this License. However,
|
||||
parties who have received copies, or rights, from you under this License will
|
||||
not have their licenses terminated so long as such parties remain in full
|
||||
compliance. 5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or distribute
|
||||
the Program or its derivative works. These actions are prohibited by law if you
|
||||
do not accept this License. Therefore, by modifying or distributing the Program
|
||||
(or any work based on the Program), you indicate your acceptance of this License
|
||||
to do so, and all its terms and conditions for copying, distributing or
|
||||
modifying the Program or works based on it. 6. Each time you redistribute the
|
||||
Program (or any work based on the Program), the recipient automatically receives
|
||||
a license from the original licensor to copy, distribute or modify the Program
|
||||
subject to these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein. You are
|
||||
not responsible for enforcing compliance by third parties to this License. 7.
|
||||
If, as a consequence of a court judgment or allegation of patent infringement or
|
||||
for any other reason (not limited to patent issues), conditions are imposed on
|
||||
you (whether by court order, agreement or otherwise) that contradict the
|
||||
conditions of this License, they do not excuse you from the conditions of this
|
||||
License. If you cannot distribute so as to satisfy simultaneously your
|
||||
obligations under this License and any other pertinent obligations, then as a
|
||||
consequence you may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by all those
|
||||
who receive copies directly or indirectly through you, then the only way you
|
||||
could satisfy both it and this License would be to refrain entirely from
|
||||
distribution of the Program. If any portion of this section is held invalid or
|
||||
unenforceable under any particular circumstance, the balance of the section is
|
||||
intended to apply and the section as a whole is intended to apply in other
|
||||
circumstances. It is not the purpose of this section to induce you to infringe
|
||||
any patents or other property right claims or to contest validity of any such
|
||||
claims; this section has the sole purpose of protecting the integrity of the
|
||||
free software distribution system, which is implemented by public license
|
||||
practices. Many people have made generous contributions to the wide range of
|
||||
software distributed through that system in reliance on consistent application
|
||||
of that system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot impose
|
||||
that choice. This section is intended to make thoroughly clear what is believed
|
||||
to be a consequence of the rest of this License. 8. If the distribution and/or
|
||||
use of the Program is restricted in certain countries either by patents or by
|
||||
copyrighted interfaces, the original copyright holder who places the Program
|
||||
under this License may add an explicit geographical distribution limitation
|
||||
excluding those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates the
|
||||
limitation as if written in the body of this License. 9. The Free Software
|
||||
Foundation may publish revised and/or new versions of the General Public License
|
||||
from time to time. Such new versions will be similar in spirit to the present
|
||||
version, but may differ in detail to address new problems or concerns. Each
|
||||
version is given a distinguishing version number. If the Program specifies a
|
||||
version number of this License which applies to it and "any later version", you
|
||||
have the option of following the terms and conditions either of that version or
|
||||
of any later version published by the Free Software Foundation. If the Program
|
||||
does not specify a version number of this License, you may choose any version
|
||||
ever published by the Free Software Foundation. 10. If you wish to incorporate
|
||||
parts of the Program into other free programs whose distribution conditions are
|
||||
different, write to the author to ask for permission. For software which is
|
||||
copyrighted by the Free Software Foundation, write to the Free Software
|
||||
Foundation; we sometimes make exceptions for this. Our decision will be guided
|
||||
by the two goals of preserving the free status of all derivatives of our free
|
||||
software and of promoting the sharing and reuse of software generally. NO
|
||||
WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO
|
||||
WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE
|
||||
THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
|
||||
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND
|
||||
PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU
|
||||
ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO
|
||||
EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY
|
||||
COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE
|
||||
PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL,
|
||||
SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY
|
||||
TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
|
||||
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF
|
||||
THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER
|
||||
PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND
|
||||
CONDITIONS How to Apply These Terms to Your New Programs If you develop a new
|
||||
program, and you want it to be of the greatest possible use to the public, the
|
||||
best way to achieve this is to make it free software which everyone can
|
||||
redistribute and change under these terms. To do so, attach the following
|
||||
notices to the program. It is safest to attach them to the start of each source
|
||||
file to most effectively convey the exclusion of warranty; and each file should
|
||||
have at least the "copyright" line and a pointer to where the full notice is
|
||||
found. <one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C)
|
||||
<year>
|
||||
<name of author>
|
||||
This program is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by the Free
|
||||
Software Foundation; either version 2 of the License, or (at your option)
|
||||
any later version. This program is distributed in the hope that it will be
|
||||
useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
||||
Public License for more details. You should have received a copy of the GNU
|
||||
General Public License along with this program; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
||||
USA Also add information on how to contact you by electronic and paper mail.
|
||||
If the program is interactive, make it output a short notice like this when
|
||||
it starts in an interactive mode: Gnomovision version 69, Copyright (C) year
|
||||
name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details
|
||||
type `show w'. This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details. The hypothetical
|
||||
commands `show w' and `show c' should show the appropriate parts of the
|
||||
General Public License. Of course, the commands you use may be called
|
||||
something other than `show w' and `show c'; they could even be mouse-clicks
|
||||
or menu items--whatever suits your program. You should also get your
|
||||
employer (if you work as a programmer) or your school, if any, to sign a
|
||||
"copyright disclaimer" for the program, if necessary. Here is a sample;
|
||||
alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in
|
||||
the program `Gnomovision' (which makes passes at compilers) written by James
|
||||
Hacker.
|
||||
|
||||
<signature of Ty Coon
|
||||
>, 1 April 1989 Ty Coon, President of Vice This General Public License
|
||||
does not permit incorporating your program into proprietary programs. If
|
||||
your program is a subroutine library, you may consider it more useful to
|
||||
permit linking proprietary applications with the library. If this is what
|
||||
you want to do, use the GNU Library General Public License instead of this
|
||||
License.
|
||||
</signature></name
|
||||
></year
|
||||
>
|
|
@ -0,0 +1 @@
|
|||
README
|
|
@ -0,0 +1,5 @@
|
|||
Welcome to Pandora FMS agent for MacOS installer. This will install Pandora FMS
|
||||
agent in the root disk of this system, specifically in:
|
||||
/usr/local/share/pandora_agent/ /etc/pandora/ It will also create an Uninstaller
|
||||
at your Applications folder. If you wish to perform a custom installation,
|
||||
please use the Linux tarball installer instead.
|
|
@ -0,0 +1,91 @@
|
|||
#!/usr/bin/env bash
|
||||
cd /usr/local/share/pandora_agent/
|
||||
|
||||
# Copy daemon file
|
||||
mv com.pandorafms.pandorafms.plist /Library/LaunchDaemons/
|
||||
|
||||
if [ -f /etc/pandora/pandora_agent.conf ]
|
||||
then
|
||||
# Stop the agent process
|
||||
`launchctl stop com.pandorafms.pandorafms`
|
||||
PFMSAGENT=`ps aux | grep pandora_agent | grep -v postinstall | grep -v grep | wc -l`
|
||||
if [ "$PFMSAGENT" -gt "0" ]
|
||||
then
|
||||
PIDAGENT=`ps aux | grep pandora_agent | grep -v postinstall | grep -v grep | awk '{print $2}'`
|
||||
kill $PIDAGENT
|
||||
fi
|
||||
else
|
||||
# Ask for user and password
|
||||
SERVER=`/usr/local/share/pandora_agent/inst_utilities/get_serverip.scpt`
|
||||
GROUP=`/usr/local/share/pandora_agent/inst_utilities/get_group.scpt`
|
||||
REMOTECFG=`/usr/local/share/pandora_agent/inst_utilities/get_remotecfg.scpt`
|
||||
|
||||
# Write the conf file
|
||||
`/usr/local/share/pandora_agent/inst_utilities/print_conf.pl /usr/local/share/pandora_agent/pandora_agent.conf server_ip $SERVER`
|
||||
`/usr/local/share/pandora_agent/inst_utilities/print_conf.pl /usr/local/share/pandora_agent/pandora_agent.conf group $GROUP`
|
||||
`/usr/local/share/pandora_agent/inst_utilities/print_conf.pl /usr/local/share/pandora_agent/pandora_agent.conf remote_config $REMOTECFG`
|
||||
|
||||
# Create agent directories and files
|
||||
mkdir -p /usr/local/share/pandora_agent/collections
|
||||
mkdir -p /usr/local/share/pandora_agent/commands
|
||||
mkdir -p /etc/pandora/
|
||||
mkdir -p /var/spool/pandora/data_out
|
||||
mkdir -p /var/log/pandora
|
||||
mv pandora_agent.conf /etc/pandora/
|
||||
touch /var/log/pandora/pandora_agent.log
|
||||
|
||||
# Setting permissions to directories and files
|
||||
chmod -R 700 /usr/local/share/pandora_agent/collections
|
||||
chmod -R 700 /usr/local/share/pandora_agent/commands
|
||||
chmod -R 755 /etc/pandora/
|
||||
chmod -R 700 /var/spool/pandora/data_out
|
||||
chmod -R 711 /var/log/pandora
|
||||
chmod 640 /var/log/pandora/pandora_agent.log
|
||||
chmod 640 /etc/pandora/pandora_agent.conf
|
||||
fi
|
||||
|
||||
# Copying agent utilities to /usr/local/bin and securing them
|
||||
cp -f pandora_agent /usr/local/bin/
|
||||
chmod 755 /usr/local/bin/pandora_agent
|
||||
chown root:wheel /usr/local/bin/pandora_agent
|
||||
|
||||
cp -f pandora_agent_exec /usr/local/bin/
|
||||
chmod 755 /usr/local/bin/pandora_agent_exec
|
||||
chown root:wheel /usr/local/bin/pandora_agent_exec
|
||||
|
||||
cp -f pandora_revent /usr/local/bin/
|
||||
chmod 755 /usr/local/bin/pandora_revent
|
||||
chown root:wheel /usr/local/bin/pandora_revent
|
||||
|
||||
# Copying tentacle_client to /usr/local/bin and securing it
|
||||
cp -f tentacle_client /usr/local/bin/
|
||||
chmod 755 /usr/local/bin/tentacle_client
|
||||
chown root:wheel /usr/local/bin/tentacle_client
|
||||
|
||||
|
||||
# Create symbolic links in /etc/pandora/
|
||||
ln -s /usr/local/share/pandora_agent/plugins /etc/pandora/plugins
|
||||
ln -s /usr/local/share/pandora_agent/commands /etc/pandora/commands
|
||||
ln -s /usr/local/share/pandora_agent/collections /etc/pandora/collections
|
||||
|
||||
|
||||
# Copy manuals
|
||||
cp -f man/man1/pandora_agent.1.gz /usr/local/share/man/man1
|
||||
chmod 644 /usr/local/share/man/man1/pandora_agent.1.gz
|
||||
cp -f man/man1/tentacle_client.1.gz /usr/local/share/man/man1
|
||||
chmod 644 /usr/local/share/man/man1/tentacle_client.1.gz
|
||||
|
||||
# Create newsyslog entry
|
||||
# logfilename [owner:group] mode count size(KB) when flags [/pid_file] [sig_num]
|
||||
echo "/var/log/pandora/pandora_agent.log : 640 5 2048 * Z" > /etc/newsyslog.d/pandora_agent.conf
|
||||
|
||||
# Install the daemon
|
||||
`launchctl load -wF /Library/LaunchDaemons/com.pandorafms.pandorafms.plist`
|
||||
|
||||
# Launch the daemon
|
||||
`launchctl start com.pandorafms.pandorafms`
|
||||
|
||||
# Clean all install utilites
|
||||
rm -Rf inst_utilities
|
||||
|
||||
exit 0
|
|
@ -0,0 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
#Save the existing configuration file
|
||||
#if [ -f /usr/local/share/pandora_agent/pandora_agent.conf ]
|
||||
#then
|
||||
# #mkdir -p /tmp/eh_restore
|
||||
# cp /usr/local/share/pandora_agent/pandora_agent.conf /usr/local/share/pandora_agent/pandora_agent.bak
|
||||
#fi
|
||||
exit 0
|
|
@ -129,6 +129,12 @@ transfer_mode tentacle
|
|||
# Proxy timeout (by default 1s)
|
||||
# proxy_timeout 1
|
||||
|
||||
# Address the proxy will listen on.
|
||||
#proxy_address 0.0.0.0
|
||||
|
||||
# Port the proxy will listen on.
|
||||
#proxy_port 41121
|
||||
|
||||
# Number of threads to execute modules in parallel
|
||||
#agent_threads 1
|
||||
|
||||
|
|
|
@ -142,6 +142,12 @@ remote_config 0
|
|||
# Proxy timeout (by default 1s)
|
||||
#proxy_timeout 1
|
||||
|
||||
# Address the proxy will listen on.
|
||||
#proxy_address 0.0.0.0
|
||||
|
||||
# Port the proxy will listen on.
|
||||
#proxy_port 41121
|
||||
|
||||
# Number of threads to execute modules in parallel
|
||||
#agent_threads 1
|
||||
|
||||
|
|
|
@ -101,6 +101,12 @@ transfer_mode tentacle
|
|||
# Proxy timeout (by default 1s)
|
||||
# proxy_timeout 1
|
||||
|
||||
# Address the proxy will listen on.
|
||||
#proxy_address 0.0.0.0
|
||||
|
||||
# Port the proxy will listen on.
|
||||
#proxy_port 41121
|
||||
|
||||
# User the agent will run as
|
||||
#pandora_user root
|
||||
|
||||
|
|
|
@ -148,6 +148,12 @@ remote_config 0
|
|||
# Proxy timeout (by default 1s)
|
||||
# proxy_timeout 1
|
||||
|
||||
# Address the proxy will listen on.
|
||||
#proxy_address 0.0.0.0
|
||||
|
||||
# Port the proxy will listen on.
|
||||
#proxy_port 41121
|
||||
|
||||
# Number of threads to execute modules in parallel
|
||||
#agent_threads 1
|
||||
|
||||
|
|
|
@ -110,6 +110,12 @@ transfer_mode tentacle
|
|||
# Proxy timeout (by default 1s)
|
||||
#proxy_timeout 1
|
||||
|
||||
# Address the proxy will listen on.
|
||||
#proxy_address 0.0.0.0
|
||||
|
||||
# Port the proxy will listen on.
|
||||
#proxy_port 41121
|
||||
|
||||
# Number of threads to execute modules in parallel
|
||||
#agent_threads 1
|
||||
|
||||
|
|
|
@ -104,6 +104,12 @@ transfer_mode tentacle
|
|||
# Proxy timeout (by default 1s)
|
||||
#proxy_timeout 1
|
||||
|
||||
# Address the proxy will listen on.
|
||||
#proxy_address 0.0.0.0
|
||||
|
||||
# Port the proxy will listen on.
|
||||
#proxy_port 41121
|
||||
|
||||
# User the agent will run as
|
||||
#pandora_user root
|
||||
|
||||
|
|
|
@ -55,7 +55,7 @@ my $Sem = undef;
|
|||
my $ThreadSem = undef;
|
||||
|
||||
use constant AGENT_VERSION => '7.0NG.749';
|
||||
use constant AGENT_BUILD => '200914';
|
||||
use constant AGENT_BUILD => '200929';
|
||||
|
||||
# Agent log default file size maximum and instances
|
||||
use constant DEFAULT_MAX_LOG_SIZE => 600000;
|
||||
|
@ -192,6 +192,8 @@ my %DefaultConf = (
|
|||
'udp_server_port' => 41122,
|
||||
'udp_server_auth_address' => '0.0.0.0',
|
||||
'udp_server' => 0,
|
||||
'proxy_address' => '0.0.0.0',
|
||||
'proxy_port' => 41121,
|
||||
'proxy_mode' => 0,
|
||||
'proxy_max_connection' => 10,
|
||||
'proxy_timeout' => 1,
|
||||
|
@ -1383,7 +1385,7 @@ sub launch_tentacle_proxy () {
|
|||
if ($tentacle_pid == 0) {
|
||||
|
||||
#Execute tentacle server as a daemon
|
||||
my $new_process = "tentacle_server -b ".$Conf{'server_ip'}." -g ".$Conf{'server_port'}." -c ".$Conf{'proxy_max_connection'}." -t ".$Conf{'proxy_timeout'};
|
||||
my $new_process = "tentacle_server -a ".$Conf{'proxy_address'}." -p ".$Conf{'proxy_port'}." -b ".$Conf{'server_ip'}." -g ".$Conf{'server_port'}." -c ".$Conf{'proxy_max_connection'}." -t ".$Conf{'proxy_timeout'};
|
||||
|
||||
$new_process .= ' -C' if ($Conf{'server_ssl'} eq '1');
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
#
|
||||
%define name pandorafms_agent_unix
|
||||
%define version 7.0NG.749
|
||||
%define release 200914
|
||||
%define release 200929
|
||||
|
||||
Summary: Pandora FMS Linux agent, PERL version
|
||||
Name: %{name}
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
#
|
||||
%define name pandorafms_agent_unix
|
||||
%define version 7.0NG.749
|
||||
%define release 200914
|
||||
%define release 200929
|
||||
|
||||
Summary: Pandora FMS Linux agent, PERL version
|
||||
Name: %{name}
|
||||
|
|
|
@ -10,14 +10,14 @@
|
|||
# **********************************************************************
|
||||
|
||||
PI_VERSION="7.0NG.749"
|
||||
PI_BUILD="200914"
|
||||
PI_BUILD="200929"
|
||||
OS_NAME=`uname -s`
|
||||
|
||||
FORCE=0
|
||||
LOG_TIMESTAMP=`date +"%Y/%m/%d %H:%M:%S"`
|
||||
|
||||
PREFIX=/usr
|
||||
if [ "$OS_NAME" = "FreeBSD" ] || [ "$OS_NAME" = "NetBSD" ]
|
||||
if [ "$OS_NAME" = "FreeBSD" ] || [ "$OS_NAME" = "NetBSD" ] || [ "$OS_NAME" = "Darwin" ]
|
||||
then
|
||||
PREFIX=/usr/local
|
||||
fi
|
||||
|
@ -146,6 +146,7 @@ help () {
|
|||
uninstall () {
|
||||
if [ "$OS_NAME" = "Darwin" ]
|
||||
then
|
||||
launchctl stop com.pandorafms.pandorafms
|
||||
launchctl remove com.pandorafms.pandorafms
|
||||
rm /Library/LaunchDaemons/com.pandorafms.pandorafms.plist 2> /dev/null
|
||||
fi
|
||||
|
@ -162,6 +163,7 @@ uninstall () {
|
|||
rm -Rf $PANDORA_BASE$PANDORA_EXEC_BIN 2> /dev/null
|
||||
rm -Rf $PANDORA_BASE$PANDORA_REVENT_BIN 2> /dev/null
|
||||
rm -f $DESTDIR/etc/logrotate.d/pandora_agent
|
||||
rm -f $DESTDIR/etc/newsyslog.d/pandora_agent.conf
|
||||
|
||||
# Remove systemd service if exists
|
||||
if [ `systemctl --v 2> /dev/null | grep systemd | wc -l` != 0 ]
|
||||
|
@ -305,7 +307,7 @@ install () {
|
|||
# Backup the configuration file
|
||||
cp -f "$AGENT_CFG" "${AGENT_CFG}.bak"
|
||||
|
||||
if [ "$OS_NAME" = "FreeBSD" ] || [ "$OS_NAME" = "NetBSD" ]
|
||||
if [ "$OS_NAME" = "FreeBSD" ] || [ "$OS_NAME" = "NetBSD" ] || [ "$OS_NAME" = "Darwin" ]
|
||||
then
|
||||
sed -e "\|^PATH=|s|=|=$PANDORA_BASE$PREFIX/bin:|" \
|
||||
-e "s|/usr/local/etc/pandora|$PANDORA_BASE$PANDORA_CFG|g" \
|
||||
|
@ -503,12 +505,16 @@ install () {
|
|||
[ "$MSG" ] && echo "$MSG"
|
||||
fi
|
||||
|
||||
if [ -d /etc/logrotate.d ]
|
||||
if [ -d /etc/logrotate.d ] && [ "$OS_NAME" != "Darwin" ]
|
||||
then
|
||||
[ -d $DESTDIR/etc/logrotate.d ] && mkdir -p $DESTDIR/etc/logrotate.d
|
||||
echo "Creating logrotate.d entry for Pandora FMS log management"
|
||||
sed -e "s|^/var/log/pandora/pandora_agent.log|$PANDORA_BASE_REAL$PANDORA_LOG_DIR/$PANDORA_LOG|" pandora_agent_logrotate \
|
||||
> $DESTDIR/etc/logrotate.d/pandora_agent
|
||||
elif [ "$OS_NAME" = "Darwin" ]
|
||||
then
|
||||
echo "Creating newsyslog entry for Pandora FMS log management"
|
||||
echo "/var/log/pandora/pandora_agent.log : 640 5 2048 * Z" > $DESTDIR/etc/newsyslog.d/pandora_agent.conf
|
||||
else
|
||||
echo "Please add a log rotation schedule manually to your log rotation daemon (if any)"
|
||||
fi
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
# Copyright (c) 2007-2008 Ramon Novoa <rnovoa@artica.es>
|
||||
# Copyright (c) 2007-2008 Artica Soluciones Tecnologicas S.L.
|
||||
#
|
||||
# tentacle_client.pl Tentacle Client. See http://www.openideas.info/wiki for
|
||||
# tentacle_client.pl Tentacle Client. See https://pandorafms.com/docs/ for
|
||||
# protocol description.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
|
@ -155,7 +155,7 @@ my $t_zip = 0;
|
|||
sub print_help {
|
||||
|
||||
print ("Usage: $0 [options] [file] [file] ...\n\n");
|
||||
print ("Tentacle client v$VERSION. See http://www.openideas.info/wiki for protocol description.\n\n");
|
||||
print ("Tentacle client v$VERSION. See https://pandorafms.com/docs/ for protocol description.\n\n");
|
||||
print ("Options:\n");
|
||||
print ("\t-a address\tServer address (default $t_address).\n");
|
||||
print ("\t-b localaddress\tLocal address to bind.\n");
|
||||
|
@ -1091,7 +1091,7 @@ This is released under the GNU Lesser General Public License.
|
|||
|
||||
L<Getopt::Std>, L<IO::Select>, L<IO::Socket::INET>, L<File::Basename>
|
||||
|
||||
Protocol description and more info at: L<< http://openideas.info/wiki/index.php?title=Tentacle >>
|
||||
Protocol description and more info at: L<< https://pandorafms.com/docs/index.php?title=Pandora:Documentation_en:Tentacle >>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
#!/usr/bin/perl
|
||||
##########################################################################
|
||||
# Tentacle Server
|
||||
# See http://www.openideas.info/wiki for protocol description.
|
||||
# See https://pandorafms.com/docs/ for protocol description.
|
||||
# Tentacle have IANA assigned port tpc/41121 as official port.
|
||||
##########################################################################
|
||||
# Copyright (c) 2007-2008 Ramon Novoa <rnovoa@artica.es>
|
||||
# Copyright (c) 2005-2010 Artica Soluciones Tecnologicas S.L
|
||||
#
|
||||
# tentacle_server.pl Tentacle Server. See http://www.openideas.info/wiki for
|
||||
# tentacle_server.pl Tentacle Server. See https://pandorafms.com/docs/ for
|
||||
# protocol description.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
|
@ -211,7 +211,7 @@ sub print_help {
|
|||
$" = ',';
|
||||
|
||||
print ("Usage: $0 -s <storage directory> [options]\n\n");
|
||||
print ("Tentacle server v$VERSION. See http://www.openideas.info/wiki for protocol description.\n\n");
|
||||
print ("Tentacle server v$VERSION. See https://pandorafms.com/docs/ for protocol description.\n\n");
|
||||
print ("Options:\n");
|
||||
print ("\t-a ip_addresses\tIP addresses to listen on (default @t_addresses).\n");
|
||||
print ("\t \t(Multiple addresses separated by comma can be defined.)\n");
|
||||
|
@ -1859,7 +1859,7 @@ This is released under the GNU Lesser General Public License.
|
|||
|
||||
L<Getopt::Std>, L<IO::Select>, L<IO::Socket::INET>, L<Thread::Semaphore>, L<POSIX>
|
||||
|
||||
Protocol description and more info at: L<< http://openideas.info/wiki/index.php?title=Tentacle >>
|
||||
Protocol description and more info at: L<< https://pandorafms.com/docs/index.php?title=Pandora:Documentation_en:Tentacle >>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
|
|
|
@ -1,53 +1,59 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>Fandora FMS - Generate SSH keys step-by-step</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta name="resource-type" content="document">
|
||||
<meta name="distribution" content="global">
|
||||
<meta name="author" content="Sancho Lerena, Raul Mateos and others">
|
||||
<meta name="copyright" content="This is GPL software. Created by Sancho Lerena and others">
|
||||
</head>
|
||||
<body>
|
||||
<center>
|
||||
<img src="images/logo.png" alt="">
|
||||
</center>
|
||||
<head>
|
||||
<title>Fandora FMS - Generate SSH keys step-by-step</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<meta name="resource-type" content="document" />
|
||||
<meta name="distribution" content="global" />
|
||||
<meta name="author" content="Sancho Lerena, Raul Mateos and others" />
|
||||
<meta
|
||||
name="copyright"
|
||||
content="This is GPL software. Created by Sancho Lerena and others"
|
||||
/>
|
||||
</head>
|
||||
<body>
|
||||
<center>
|
||||
<img src="images/logo.png" alt="" />
|
||||
</center>
|
||||
|
||||
<h2>Step-by-step generating SSH keys</h2>
|
||||
<h2>Step-by-step generating SSH keys</h2>
|
||||
|
||||
From
|
||||
<a href="http://www.openideas.info/wiki/index.php?title=Pandora:FAQ#How_to_generate_a_pair_of_SSH_keys_for_Pandora_Windows_agent_1.2_.3F">Pandora FMS FAQ</a>.
|
||||
From
|
||||
<a
|
||||
href="https://pandorafms.com/docs/index.php?title=Pandora:FAQ#How_to_generate_a_pair_of_SSH_keys_for_Pandora_Windows_agent.3F_.28SSH_Transfer_only.29"
|
||||
>Pandora FMS FAQ</a
|
||||
>.
|
||||
|
||||
<ol>
|
||||
<li>
|
||||
Go to <code>.\util</code> of your Pandora FMS agent for Windows
|
||||
and run <code>puttygen.exe</code>.<br>
|
||||
Generate keys, SSH-2_DSA, 1024:<br><br>
|
||||
<img src="images/1.jpg"><br><br>
|
||||
</li>
|
||||
<li>
|
||||
Press Generate<br>
|
||||
Export key to OpenSSH key (Cygwin uses a port of OpenSSH)<br><br>
|
||||
<img src="images/2.jpg"><br><br>
|
||||
</li>
|
||||
<li>
|
||||
We have no chosen password, so press YES:<br><br>
|
||||
<img src="images/3.jpg"><br><br>
|
||||
</li>
|
||||
<li>
|
||||
Save it as <code>c:\pandora\keys\id_dsa:</code><br><br>
|
||||
<img src="images/4.jpg"><br><br>
|
||||
</li>
|
||||
<li>
|
||||
Now let's copy the public key to clipboard:<br><br>
|
||||
<img src="images/5.jpg"><br><br>
|
||||
</li>
|
||||
<li>
|
||||
and paste it as <code>c:\pandora_agent\keys\id_dsa.pub</code>,
|
||||
and also to the <code>/home/pandora/.ssh/authorized_keys</code> file.
|
||||
<br><br>
|
||||
<img src="images/6.jpg"><br><br>
|
||||
</li>
|
||||
</ol>
|
||||
</body>
|
||||
</html>
|
||||
<ol>
|
||||
<li>
|
||||
Go to <code>.\util</code> of your Pandora FMS agent for Windows and run
|
||||
<code>puttygen.exe</code>.<br />
|
||||
Generate keys, SSH-2_DSA, 1024:<br /><br />
|
||||
<img src="images/1.jpg" /><br /><br />
|
||||
</li>
|
||||
<li>
|
||||
Press Generate<br />
|
||||
Export key to OpenSSH key (Cygwin uses a port of OpenSSH)<br /><br />
|
||||
<img src="images/2.jpg" /><br /><br />
|
||||
</li>
|
||||
<li>
|
||||
We have no chosen password, so press YES:<br /><br />
|
||||
<img src="images/3.jpg" /><br /><br />
|
||||
</li>
|
||||
<li>
|
||||
Save it as <code>c:\pandora\keys\id_dsa:</code><br /><br />
|
||||
<img src="images/4.jpg" /><br /><br />
|
||||
</li>
|
||||
<li>
|
||||
Now let's copy the public key to clipboard:<br /><br />
|
||||
<img src="images/5.jpg" /><br /><br />
|
||||
</li>
|
||||
<li>
|
||||
and paste it as <code>c:\pandora_agent\keys\id_dsa.pub</code>, and also
|
||||
to the <code>/home/pandora/.ssh/authorized_keys</code> file.
|
||||
<br /><br />
|
||||
<img src="images/6.jpg" /><br /><br />
|
||||
</li>
|
||||
</ol>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -1,53 +1,62 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>Pandora FMS - Generación de claves SSH en Windows paso por paso</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta name="resource-type" content="document">
|
||||
<meta name="distribution" content="global">
|
||||
<meta name="author" content="Sancho Lerena, Raul Mateos y otros">
|
||||
<meta name="copyright" content="This is GPL software. Created by Sancho Lerena and others">
|
||||
</head>
|
||||
<body>
|
||||
<center>
|
||||
<img src="images/logo.png" alt="">
|
||||
</center>
|
||||
<h2 class="print">Generación de claves SSH en Windows paso por paso</h2>
|
||||
<head>
|
||||
<title>
|
||||
Pandora FMS - Generación de claves SSH en Windows paso por paso
|
||||
</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<meta name="resource-type" content="document" />
|
||||
<meta name="distribution" content="global" />
|
||||
<meta name="author" content="Sancho Lerena, Raul Mateos y otros" />
|
||||
<meta
|
||||
name="copyright"
|
||||
content="This is GPL software. Created by Sancho Lerena and others"
|
||||
/>
|
||||
</head>
|
||||
<body>
|
||||
<center>
|
||||
<img src="images/logo.png" alt="" />
|
||||
</center>
|
||||
<h2 class="print">Generación de claves SSH en Windows paso por paso</h2>
|
||||
|
||||
Extraído de las
|
||||
<a href="http://www.openideas.info/wiki/index.php?title=Pandora:FAQ_ES#.C2.BF_C.C3.B3mo_puedo_generar_un_par_de_claves_SHH_para_el_agente_para_Windows_1.2_.3F">
|
||||
FAQ</a>.
|
||||
Extraído de las
|
||||
<a
|
||||
href="https://pandorafms.com/docs/index.php?title=Pandora:FAQ_ES#.C2.BFC.C3.B3mo_puedo_generar_un_par_de_claves_SHH_para_el_agente_para_Windows_.28SSH_Transfer.29_.3F"
|
||||
>
|
||||
FAQ</a
|
||||
>.
|
||||
|
||||
<ol>
|
||||
<li>
|
||||
Desde el directorio <code>.\util</code> del agente Pandora FMS para
|
||||
windows ejecutamos <code>puttygen.exe</code>.<br>
|
||||
Generamos claves SSH-2_DSA, 1024:<br><br>
|
||||
<img src="images/1.jpg"><br><br>
|
||||
</li>
|
||||
<li>
|
||||
Pulsamos «Generate»
|
||||
para generar la clave.<br>
|
||||
Exportamos la clave a formato OpenSSH<br><br>
|
||||
<img src="images/2.jpg"><br><br>
|
||||
</li>
|
||||
<li>
|
||||
No elegimos contraseña, con lo cual pulsamos «Sí»:<br><br>
|
||||
<img src="images/3.jpg"><br><br>
|
||||
</li>
|
||||
<li>
|
||||
Guardamos la clave como <code>C:\pandora\keys\id_dsa:</code><br><br>
|
||||
<img src="images/4.jpg"><br><br>
|
||||
</li>
|
||||
<li>
|
||||
Ahora copiamos la clave pública al portapapeles:<br><br>
|
||||
<img src="images/5.jpg"><br><br>
|
||||
</li>
|
||||
<li>
|
||||
Pegamos la clave en un nuevo fichero <code>C:\pandora_agent\keys\id_dsa.pub</code>,
|
||||
y debemos también añadirla al fichero <code>/home/pandora/.ssh/authorized_keys</code>.
|
||||
<br><br>
|
||||
<img src="images/6.jpg"><br><br>
|
||||
</li>
|
||||
</ol>
|
||||
</body></html>
|
||||
<ol>
|
||||
<li>
|
||||
Desde el directorio <code>.\util</code> del agente Pandora FMS para
|
||||
windows ejecutamos <code>puttygen.exe</code>.<br />
|
||||
Generamos claves SSH-2_DSA, 1024:<br /><br />
|
||||
<img src="images/1.jpg" /><br /><br />
|
||||
</li>
|
||||
<li>
|
||||
Pulsamos «Generate» para generar la clave.<br />
|
||||
Exportamos la clave a formato OpenSSH<br /><br />
|
||||
<img src="images/2.jpg" /><br /><br />
|
||||
</li>
|
||||
<li>
|
||||
No elegimos contraseña, con lo cual pulsamos «Sí»:<br /><br />
|
||||
<img src="images/3.jpg" /><br /><br />
|
||||
</li>
|
||||
<li>
|
||||
Guardamos la clave como <code>C:\pandora\keys\id_dsa:</code><br /><br />
|
||||
<img src="images/4.jpg" /><br /><br />
|
||||
</li>
|
||||
<li>
|
||||
Ahora copiamos la clave pública al portapapeles:<br /><br />
|
||||
<img src="images/5.jpg" /><br /><br />
|
||||
</li>
|
||||
<li>
|
||||
Pegamos la clave en un nuevo fichero
|
||||
<code>C:\pandora_agent\keys\id_dsa.pub</code>, y debemos también
|
||||
añadirla al fichero <code>/home/pandora/.ssh/authorized_keys</code>.
|
||||
<br /><br />
|
||||
<img src="images/6.jpg" /><br /><br />
|
||||
</li>
|
||||
</ol>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -99,6 +99,12 @@ server_port 41121
|
|||
# Proxy timeout (by default 1s)
|
||||
# proxy_timeout 1
|
||||
|
||||
# Address the proxy will listen on.
|
||||
#proxy_address 0.0.0.0
|
||||
|
||||
# Port the proxy will listen on.
|
||||
#proxy_port 41121
|
||||
|
||||
# Enable or disable XML buffer.
|
||||
xml_buffer 1
|
||||
|
||||
|
|
|
@ -186,7 +186,7 @@ UpgradeApplicationID
|
|||
{}
|
||||
|
||||
Version
|
||||
{200914}
|
||||
{200929}
|
||||
|
||||
ViewReadme
|
||||
{Yes}
|
||||
|
|
|
@ -30,7 +30,7 @@ using namespace Pandora;
|
|||
using namespace Pandora_Strutils;
|
||||
|
||||
#define PATH_SIZE _MAX_PATH+1
|
||||
#define PANDORA_VERSION ("7.0NG.749(Build 200914)")
|
||||
#define PANDORA_VERSION ("7.0NG.749(Build 200929)")
|
||||
|
||||
string pandora_path;
|
||||
string pandora_dir;
|
||||
|
|
|
@ -424,7 +424,7 @@ Pandora_Windows_Service::killTentacleProxy() {
|
|||
int
|
||||
Pandora_Windows_Service::launchTentacleProxy() {
|
||||
string server_ip, server_port, proxy_max_connections, proxy_timeout, server_ssl;
|
||||
string proxy_cmd;
|
||||
string proxy_cmd, proxy_address, proxy_port;
|
||||
PROCESS_INFORMATION pi;
|
||||
STARTUPINFO si;
|
||||
|
||||
|
@ -460,7 +460,19 @@ Pandora_Windows_Service::launchTentacleProxy() {
|
|||
proxy_cmd = "tentacle_server.exe";
|
||||
}
|
||||
|
||||
proxy_cmd += " -b " + server_ip + " -g " + server_port + " -c " + proxy_max_connections + " -t " + proxy_timeout;
|
||||
// Proxy address.
|
||||
proxy_address = conf->getValue("proxy_address");
|
||||
if (proxy_address == "") {
|
||||
proxy_address = "0.0.0.0";
|
||||
}
|
||||
|
||||
// Proxy port.
|
||||
proxy_port = conf->getValue("proxy_port");
|
||||
if (proxy_port == "") {
|
||||
proxy_port = "41121";
|
||||
}
|
||||
|
||||
proxy_cmd += " -b " + server_ip + " -g " + server_port + " -c " + proxy_max_connections + " -t " + proxy_timeout + " -a " + proxy_address + " -p " + proxy_port;
|
||||
|
||||
ZeroMemory (&si, sizeof (si));
|
||||
ZeroMemory (&pi, sizeof (pi));
|
||||
|
|
|
@ -11,7 +11,7 @@ BEGIN
|
|||
VALUE "LegalCopyright", "Artica ST"
|
||||
VALUE "OriginalFilename", "PandoraAgent.exe"
|
||||
VALUE "ProductName", "Pandora FMS Windows Agent"
|
||||
VALUE "ProductVersion", "(7.0NG.749(Build 200914))"
|
||||
VALUE "ProductVersion", "(7.0NG.749(Build 200929))"
|
||||
VALUE "FileVersion", "1.0.0.0"
|
||||
END
|
||||
END
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
package: pandorafms-console
|
||||
Version: 7.0NG.749-200914
|
||||
Version: 7.0NG.749-200929
|
||||
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.749-200914"
|
||||
pandora_version="7.0NG.749-200929"
|
||||
|
||||
package_pear=0
|
||||
package_pandora=1
|
||||
|
|
|
@ -379,7 +379,7 @@ function get_name_xml_resource($hook_enterprise)
|
|||
break;
|
||||
}
|
||||
|
||||
$file = $name.'.ptr';
|
||||
$file = io_safe_output($name).'.ptr';
|
||||
|
||||
return $file;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
START TRANSACTION;
|
||||
|
||||
ALTER TABLE tmetaconsole_event ADD INDEX `tme_timestamp_idx` (`timestamp`);
|
||||
ALTER TABLE tmetaconsole_event ADD INDEX `tme_module_status_idx` (`module_status`);
|
||||
ALTER TABLE tmetaconsole_event ADD INDEX `tme_criticity_idx` (`criticity`);
|
||||
ALTER TABLE tmetaconsole_event ADD INDEX `tme_agent_name_idx` (`agent_name`);
|
||||
|
||||
ALTER TABLE tmetaconsole_agent ADD INDEX `tma_id_os_idx` (`id_os`);
|
||||
ALTER TABLE tmetaconsole_agent ADD INDEX `tma_server_name_idx` (`server_name`);
|
||||
|
||||
ALTER TABLE tmetaconsole_event_history ADD INDEX `tmeh_estado_idx` (`estado`);
|
||||
ALTER TABLE tmetaconsole_event_history ADD INDEX `tmeh_timestamp_idx` (`timestamp`);
|
||||
|
||||
ALTER TABLE talert_actions ADD COLUMN `field16` TEXT NOT NULL DEFAULT "";
|
||||
ALTER TABLE talert_actions ADD COLUMN `field17` TEXT NOT NULL DEFAULT "";
|
||||
ALTER TABLE talert_actions ADD COLUMN `field18` TEXT NOT NULL DEFAULT "";
|
||||
ALTER TABLE talert_actions ADD COLUMN `field19` TEXT NOT NULL DEFAULT "";
|
||||
ALTER TABLE talert_actions ADD COLUMN `field20` TEXT NOT NULL DEFAULT "";
|
||||
ALTER TABLE talert_actions ADD COLUMN `field16_recovery` TEXT NOT NULL DEFAULT "";
|
||||
ALTER TABLE talert_actions ADD COLUMN `field17_recovery` TEXT NOT NULL DEFAULT "";
|
||||
ALTER TABLE talert_actions ADD COLUMN `field18_recovery` TEXT NOT NULL DEFAULT "";
|
||||
ALTER TABLE talert_actions ADD COLUMN `field19_recovery` TEXT NOT NULL DEFAULT "";
|
||||
ALTER TABLE talert_actions ADD COLUMN `field20_recovery` TEXT NOT NULL DEFAULT "";
|
||||
|
||||
COMMIT;
|
|
@ -978,6 +978,10 @@ CREATE TABLE IF NOT EXISTS `tmetaconsole_event` (
|
|||
ALTER TABLE `tmetaconsole_event` ADD COLUMN `data` double(22,5) default NULL;
|
||||
ALTER TABLE `tmetaconsole_event` ADD COLUMN `module_status` int(4) NOT NULL default '0';
|
||||
ALTER TABLE `tmetaconsole_event` ADD INDEX `server_id` (`server_id`);
|
||||
ALTER TABLE `tmetaconsole_event` ADD INDEX `tme_timestamp_idx` (`timestamp`);
|
||||
ALTER TABLE `tmetaconsole_event` ADD INDEX `tme_module_status_idx` (`module_status`);
|
||||
ALTER TABLE `tmetaconsole_event` ADD INDEX `tme_criticity_idx` (`criticity`);
|
||||
ALTER TABLE `tmetaconsole_event` ADD INDEX `tme_agent_name_idx` (`agent_name`);
|
||||
|
||||
-- ---------------------------------------------------------------------
|
||||
-- Table `tmetaconsole_event_history`
|
||||
|
@ -1026,6 +1030,8 @@ CREATE TABLE IF NOT EXISTS `tmetaconsole_event_history` (
|
|||
|
||||
ALTER TABLE `tmetaconsole_event_history` ADD COLUMN `data` double(22,5) default NULL;
|
||||
ALTER TABLE `tmetaconsole_event_history` ADD COLUMN `module_status` int(4) NOT NULL default '0';
|
||||
ALTER TABLE `tmetaconsole_event_history` ADD INDEX `tmeh_estado_idx` (`estado`);
|
||||
ALTER TABLE `tmetaconsole_event_history` ADD INDEX `tmeh_timestamp_idx` (`timestamp`);
|
||||
-- ---------------------------------------------------------------------
|
||||
-- Table `textension_translate_string`
|
||||
-- ---------------------------------------------------------------------
|
||||
|
@ -1119,7 +1125,9 @@ ALTER TABLE `tmetaconsole_agent` ADD COLUMN `remote` tinyint(1) NOT NULL DEFAULT
|
|||
ADD COLUMN `alias` varchar(600) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
MODIFY COLUMN `update_secondary_groups` tinyint(1) NOT NULL DEFAULT '0',
|
||||
MODIFY COLUMN `alias_as_name` tinyint(2) NOT NULL DEFAULT '0',
|
||||
ADD INDEX `id_tagente_idx` (`id_tagente`);
|
||||
ADD INDEX `id_tagente_idx` (`id_tagente`),
|
||||
ADD INDEX `tma_id_os_idx` (`id_os`),
|
||||
ADD INDEX `tma_server_name_idx` (`server_name`);
|
||||
|
||||
-- ---------------------------------------------------------------------
|
||||
-- Table `ttransaction`
|
||||
|
@ -1308,11 +1316,21 @@ ALTER TABLE talert_actions ADD COLUMN `field12` TEXT NOT NULL DEFAULT "";
|
|||
ALTER TABLE talert_actions ADD COLUMN `field13` TEXT NOT NULL DEFAULT "";
|
||||
ALTER TABLE talert_actions ADD COLUMN `field14` TEXT NOT NULL DEFAULT "";
|
||||
ALTER TABLE talert_actions ADD COLUMN `field15` TEXT NOT NULL DEFAULT "";
|
||||
ALTER TABLE talert_actions ADD COLUMN `field16` TEXT NOT NULL DEFAULT "";
|
||||
ALTER TABLE talert_actions ADD COLUMN `field17` TEXT NOT NULL DEFAULT "";
|
||||
ALTER TABLE talert_actions ADD COLUMN `field18` TEXT NOT NULL DEFAULT "";
|
||||
ALTER TABLE talert_actions ADD COLUMN `field19` TEXT NOT NULL DEFAULT "";
|
||||
ALTER TABLE talert_actions ADD COLUMN `field20` TEXT NOT NULL DEFAULT "";
|
||||
ALTER TABLE talert_actions ADD COLUMN `field11_recovery` TEXT NOT NULL DEFAULT "";
|
||||
ALTER TABLE talert_actions ADD COLUMN `field12_recovery` TEXT NOT NULL DEFAULT "";
|
||||
ALTER TABLE talert_actions ADD COLUMN `field13_recovery` TEXT NOT NULL DEFAULT "";
|
||||
ALTER TABLE talert_actions ADD COLUMN `field14_recovery` TEXT NOT NULL DEFAULT "";
|
||||
ALTER TABLE talert_actions ADD COLUMN `field15_recovery` TEXT NOT NULL DEFAULT "";
|
||||
ALTER TABLE talert_actions ADD COLUMN `field16_recovery` TEXT NOT NULL DEFAULT "";
|
||||
ALTER TABLE talert_actions ADD COLUMN `field17_recovery` TEXT NOT NULL DEFAULT "";
|
||||
ALTER TABLE talert_actions ADD COLUMN `field18_recovery` TEXT NOT NULL DEFAULT "";
|
||||
ALTER TABLE talert_actions ADD COLUMN `field19_recovery` TEXT NOT NULL DEFAULT "";
|
||||
ALTER TABLE talert_actions ADD COLUMN `field20_recovery` TEXT NOT NULL DEFAULT "";
|
||||
ALTER TABLE `talert_actions` ADD COLUMN `previous_name` text;
|
||||
|
||||
ALTER TABLE `talert_actions` MODIFY COLUMN `field11` text NOT NULL,
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
<?php
|
||||
$stacked = db_get_sql('select stacked from tgraph where id_graph = '.$_GET['data']);
|
||||
$num_items = db_get_sql('select count(*) from tgraph_source where id_graph = '.$_GET['data']);
|
||||
$data = (int) get_parameter('data');
|
||||
$stacked = db_get_sql('select stacked from tgraph where id_graph = '.$data);
|
||||
$num_items = db_get_sql('select count(*) from tgraph_source where id_graph = '.$data);
|
||||
echo "$stacked,$num_items";
|
||||
|
|
|
@ -86,7 +86,7 @@ $login_body_class = '';
|
|||
// Overrides the default background with the defined by the user.
|
||||
if (!empty($config['login_background'])) {
|
||||
$background_url = 'images/backgrounds/'.$config['login_background'];
|
||||
$login_body_style = "style=\"background:linear-gradient(74deg, #02020255 36%, transparent 36%), url('".$background_url."');\"";
|
||||
$login_body_style = "style=\"background:linear-gradient(74deg, rgba(2, 2, 2, 0.333) 36%, transparent 36%), url('".$background_url."');\"";
|
||||
}
|
||||
|
||||
// Support for Internet Explorer and Microsoft Edge browsers
|
||||
|
|
|
@ -1115,7 +1115,7 @@ if ($update_agent) {
|
|||
ui_print_success_message(__('Successfully updated'));
|
||||
db_pandora_audit(
|
||||
'Agent management',
|
||||
'Updated agent '.$alias,
|
||||
'Updated agent '.io_safe_output($alias),
|
||||
false,
|
||||
false,
|
||||
$info
|
||||
|
@ -1650,7 +1650,7 @@ if ($update_module) {
|
|||
|
||||
db_pandora_audit(
|
||||
'Agent management',
|
||||
"Fail to try update module '".$name."' for agent ".$agent['alias']
|
||||
"Fail to try update module '".io_safe_output($name)."' for agent ".io_safe_output($agent['alias'])
|
||||
);
|
||||
} else {
|
||||
if ($prediction_module == 3) {
|
||||
|
@ -1674,7 +1674,7 @@ if ($update_module) {
|
|||
|
||||
db_pandora_audit(
|
||||
'Agent management',
|
||||
"Updated module '".$name."' for agent ".$agent['alias'],
|
||||
"Updated module '".io_safe_output($name)."' for agent ".io_safe_output($agent['alias']),
|
||||
false,
|
||||
false,
|
||||
io_json_mb_encode($values)
|
||||
|
@ -1834,7 +1834,7 @@ if ($create_module) {
|
|||
$moduletype = $id_module;
|
||||
db_pandora_audit(
|
||||
'Agent management',
|
||||
"Fail to try added module '".$name."' for agent ".$agent['alias']
|
||||
"Fail to try added module '".io_safe_output($name)."' for agent ".io_safe_output($agent['alias'])
|
||||
);
|
||||
} else {
|
||||
if ($prediction_module == 3) {
|
||||
|
@ -1859,7 +1859,7 @@ if ($create_module) {
|
|||
$agent = db_get_row('tagente', 'id_agente', $id_agente);
|
||||
db_pandora_audit(
|
||||
'Agent management',
|
||||
"Added module '".$name."' for agent ".$agent['alias'],
|
||||
"Added module '".io_safe_output($name)."' for agent ".io_safe_output($agent['alias']),
|
||||
false,
|
||||
true,
|
||||
io_json_mb_encode($values)
|
||||
|
@ -1894,12 +1894,12 @@ if ($enable_module) {
|
|||
if ($result === NOERR) {
|
||||
db_pandora_audit(
|
||||
'Module management',
|
||||
'Enable #'.$enable_module.' | '.$module_name.' | '.$agent['alias']
|
||||
'Enable #'.$enable_module.' | '.$module_name.' | '.io_safe_output($agent['alias'])
|
||||
);
|
||||
} else {
|
||||
db_pandora_audit(
|
||||
'Module management',
|
||||
'Fail to enable #'.$enable_module.' | '.$module_name.' | '.$agent['alias']
|
||||
'Fail to enable #'.$enable_module.' | '.$module_name.' | '.io_safe_output($agent['alias'])
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -1929,12 +1929,12 @@ if ($disable_module) {
|
|||
if ($result === NOERR) {
|
||||
db_pandora_audit(
|
||||
'Module management',
|
||||
'Disable #'.$disable_module.' | '.$module_name.' | '.$agent['alias']
|
||||
'Disable #'.$disable_module.' | '.$module_name.' | '.io_safe_output($agent['alias'])
|
||||
);
|
||||
} else {
|
||||
db_pandora_audit(
|
||||
'Module management',
|
||||
'Fail to disable #'.$disable_module.' | '.$module_name.' | '.$agent['alias']
|
||||
'Fail to disable #'.$disable_module.' | '.$module_name.' | '.io_safe_output($agent['alias'])
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -2108,7 +2108,7 @@ if ($delete_module) {
|
|||
$agent = db_get_row('tagente', 'id_agente', $id_agente);
|
||||
db_pandora_audit(
|
||||
'Agent management',
|
||||
"Deleted module '".$module_data['nombre']."' for agent ".$agent['alias']
|
||||
"Deleted module '".io_safe_output($module_data['nombre'])."' for agent ".io_safe_output($agent['alias'])
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -2163,7 +2163,7 @@ if (!empty($duplicate_module)) {
|
|||
if ($enable_module) {
|
||||
$result = modules_change_disabled($enable_module, 0);
|
||||
$modulo_nombre = db_get_row_sql('SELECT nombre FROM tagente_modulo WHERE id_agente_modulo = '.$enable_module.'');
|
||||
$modulo_nombre = $modulo_nombre['nombre'];
|
||||
$modulo_nombre = io_safe_output($modulo_nombre['nombre']);
|
||||
|
||||
if ($result === NOERR) {
|
||||
enterprise_hook('config_agents_enable_module_conf', [$id_agente, $enable_module]);
|
||||
|
@ -2182,7 +2182,7 @@ if ($enable_module) {
|
|||
if ($disable_module) {
|
||||
$result = modules_change_disabled($disable_module, 1);
|
||||
$modulo_nombre = db_get_row_sql('SELECT nombre FROM tagente_modulo WHERE id_agente_modulo = '.$disable_module.'');
|
||||
$modulo_nombre = $modulo_nombre['nombre'];
|
||||
$modulo_nombre = io_safe_output($modulo_nombre['nombre']);
|
||||
|
||||
if ($result === NOERR) {
|
||||
enterprise_hook('config_agents_disable_module_conf', [$id_agente, $disable_module]);
|
||||
|
|
|
@ -115,7 +115,7 @@ if ($agent_to_delete) {
|
|||
|
||||
if ($enable_agent) {
|
||||
$result = db_process_sql_update('tagente', ['disabled' => 0], ['id_agente' => $enable_agent]);
|
||||
$alias = agents_get_alias($enable_agent);
|
||||
$alias = io_safe_output(agents_get_alias($enable_agent));
|
||||
|
||||
if ($result) {
|
||||
// Update the agent from the metaconsole cache.
|
||||
|
@ -137,7 +137,7 @@ if ($enable_agent) {
|
|||
|
||||
if ($disable_agent) {
|
||||
$result = db_process_sql_update('tagente', ['disabled' => 1], ['id_agente' => $disable_agent]);
|
||||
$alias = agents_get_alias($disable_agent);
|
||||
$alias = io_safe_output(agents_get_alias($disable_agent));
|
||||
|
||||
if ($result) {
|
||||
// Update the agent from the metaconsole cache.
|
||||
|
|
|
@ -382,7 +382,7 @@ if ($disabledBecauseInPolicy) {
|
|||
);
|
||||
}
|
||||
|
||||
$table_simple->data[2][0] = __('Warning status');
|
||||
$table_simple->data[2][0] = __('Warning threshold');
|
||||
if (!modules_is_string_type($id_module_type) || $edit) {
|
||||
$table_simple->data[2][1] .= '<span id="minmax_warning"><em>'.__('Min. ').'</em>';
|
||||
$table_simple->data[2][1] .= html_print_input_text(
|
||||
|
@ -435,7 +435,7 @@ if (!modules_is_string_type($id_module_type) || $edit) {
|
|||
$table_simple->data[2][2] = '<svg id="svg_dinamic" width="500" height="300"> </svg>';
|
||||
}
|
||||
|
||||
$table_simple->data[3][0] = __('Critical status');
|
||||
$table_simple->data[3][0] = __('Critical threshold');
|
||||
if (!modules_is_string_type($id_module_type) || $edit) {
|
||||
$table_simple->data[3][1] .= '<span id="minmax_critical"><em>'.__('Min. ').'</em>';
|
||||
$table_simple->data[3][1] .= html_print_input_text(
|
||||
|
|
|
@ -208,18 +208,21 @@ if ($delete_alert) {
|
|||
$agent_alias = agents_get_alias(
|
||||
db_get_value('id_agente', 'tagente_modulo', 'id_agente_modulo', $id_agent_module)
|
||||
);
|
||||
$unsafe_alert_template_name = io_safe_output($alert_template_name);
|
||||
$unsafe_module_name = io_safe_output($module_name);
|
||||
$unsafe_agent_alias = io_safe_output($agent_alias);
|
||||
|
||||
$result = alerts_delete_alert_agent_module($id_alert_agent_module);
|
||||
|
||||
if ($result) {
|
||||
db_pandora_audit(
|
||||
'Alert management',
|
||||
"Deleted alert '$alert_template_name' for module '$module_name' in agent '$agent_alias'"
|
||||
"Deleted alert '$unsafe_alert_template_name' for module '$unsafe_module_name' in agent '$unsafe_agent_alias'"
|
||||
);
|
||||
} else {
|
||||
db_pandora_audit(
|
||||
'Alert management',
|
||||
"Fail to deleted alert '$alert_template_name' for module '$module_name' in agent '$agent_alias'"
|
||||
"Fail to deleted alert '$unsafe_alert_template_name' for module '$unsafe_module_name' in agent '$unsafe_agent_alias'"
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
@ -116,7 +116,7 @@ if ($create_special_day) {
|
|||
$same_day = (string) get_parameter('same_day');
|
||||
$values = [];
|
||||
$values['id_group'] = (string) get_parameter('id_group');
|
||||
$values['description'] = (string) get_parameter('description');
|
||||
$values['description'] = io_safe_input(strip_tags(io_safe_output((string) get_parameter('description'))));
|
||||
|
||||
$aviable_description = true;
|
||||
if (preg_match('/script/i', $values['description'])) {
|
||||
|
@ -180,7 +180,7 @@ if ($update_special_day) {
|
|||
$date = (string) get_parameter('date');
|
||||
$date_orig = (string) get_parameter('date_orig');
|
||||
$same_day = (string) get_parameter('same_day');
|
||||
$description = (string) get_parameter('description');
|
||||
$description = io_safe_input(strip_tags(io_safe_output((string) get_parameter('description'))));
|
||||
$id_group = (string) get_parameter('id_group');
|
||||
$id_group_orig = (string) get_parameter('id_group_orig');
|
||||
|
||||
|
@ -517,7 +517,11 @@ for ($month = 1; $month <= 12; $month++) {
|
|||
break;
|
||||
}
|
||||
|
||||
$cal_table->data[$cal_line][$week] .= ui_print_help_tip($special_day['description'], true);
|
||||
// Only show description if is filled.
|
||||
if (empty($special_day['description']) === false) {
|
||||
$cal_table->data[$cal_line][$week] .= ui_print_help_tip($special_day['description'], true);
|
||||
}
|
||||
|
||||
if ($special_day['id_group'] || ($can_manage_group_all && $special_day['id_group'] == 0)) {
|
||||
$cal_table->data[$cal_line][$week] .= '<a href="index.php?sec=galertas&sec2=godmode/alerts/configure_alert_special_days&id='.$special_day['id'].'" title=';
|
||||
$cal_table->data[$cal_line][$week] .= __('Edit');
|
||||
|
|
|
@ -472,24 +472,16 @@ $(document).ready (function () {
|
|||
$table_macros_field.show();
|
||||
}
|
||||
|
||||
tinyMCE.init({
|
||||
selector: 'textarea.tiny-mce-editor',
|
||||
theme : "advanced",
|
||||
plugins : "preview, print, table, searchreplace, nonbreaking, xhtmlxtras, noneditable",
|
||||
theme_advanced_buttons1 : "bold,italic,underline,|,justifyleft,justifycenter,justifyright,justifyfull,|,formatselect,fontselect,fontsize,select",
|
||||
theme_advanced_buttons2 : "search,replace,|,bullist,numlist,|,undo,redo,|,link,unlink,image,|,cleanup,code,preview,|,forecolor,backcolor",
|
||||
theme_advanced_buttons3 : "",
|
||||
theme_advanced_toolbar_location : "top",
|
||||
theme_advanced_toolbar_align : "left",
|
||||
theme_advanced_resizing : true,
|
||||
theme_advanced_statusbar_location : "bottom",
|
||||
force_p_newlines : false,
|
||||
forced_root_block : '',
|
||||
inline_styles : true,
|
||||
valid_children : "+body[style]",
|
||||
element_format : "html"
|
||||
});
|
||||
|
||||
var added_config = {
|
||||
"selector": "textarea.tiny-mce-editor",
|
||||
"plugins": "preview, print, table, searchreplace, nonbreaking, xhtmlxtras, noneditable",
|
||||
"theme_advanced_buttons1": "bold,italic,underline,|,justifyleft,justifycenter,justifyright,justifyfull,|,formatselect,fontselect,fontsizeselect",
|
||||
"theme_advanced_buttons2": "search,replace,|,bullist,numlist,|,undo,redo,|,link,unlink,image,|,cleanup,code,preview,|,forecolor,backcolor",
|
||||
"valid_children": "+body[style]",
|
||||
"width": "90%",
|
||||
}
|
||||
defineTinyMCE(added_config);
|
||||
|
||||
render_command_preview(original_command);
|
||||
render_command_recovery_preview(original_command);
|
||||
|
||||
|
|
|
@ -741,7 +741,10 @@ if ($step == 2) {
|
|||
1,
|
||||
$min_alerts_reset_counter,
|
||||
true,
|
||||
$is_central_policies_on_node
|
||||
$is_central_policies_on_node,
|
||||
'',
|
||||
false,
|
||||
$create_template == 1 ? 'checked=checked' : ''
|
||||
);
|
||||
|
||||
$table->data[4][0] = __('Max. number of alerts');
|
||||
|
@ -1507,23 +1510,19 @@ if ($step == 2) {
|
|||
}
|
||||
});
|
||||
|
||||
tinyMCE.init({
|
||||
selector: 'textarea.tiny-mce-editor',
|
||||
theme : "advanced",
|
||||
plugins : "preview, print, table, searchreplace, nonbreaking, xhtmlxtras, noneditable",
|
||||
theme_advanced_buttons1 : "bold,italic,underline,|,justifyleft,justifycenter,justifyright,justifyfull,|,formatselect,fontselect,fontsize,select",
|
||||
theme_advanced_buttons2 : "search,replace,|,bullist,numlist,|,undo,redo,|,link,unlink,image,|,cleanup,code,preview,|,forecolor,backcolor",
|
||||
theme_advanced_buttons3 : "",
|
||||
theme_advanced_toolbar_location : "top",
|
||||
theme_advanced_toolbar_align : "left",
|
||||
theme_advanced_resizing : true,
|
||||
theme_advanced_statusbar_location : "bottom",
|
||||
force_p_newlines : false,
|
||||
forced_root_block : '',
|
||||
inline_styles : true,
|
||||
valid_children : "+body[style]",
|
||||
element_format : "html"
|
||||
});
|
||||
var added_config = {
|
||||
"selector": 'textarea.tiny-mce-editor',
|
||||
"plugins": "preview, print, table, searchreplace, nonbreaking, xhtmlxtras, noneditable",
|
||||
"theme_advanced_buttons1": "bold,italic,underline,|,cut,copy,paste,|,justifyleft,justifycenter,justifyright,|,forecolor,backcolor,|,formatselect,fontselect,fontsizeselect",
|
||||
"theme_advanced_buttons2": "search,replace,|,bullist,numlist,|,undo,redo,|,link,unlink,image,|,cleanup,code,preview",
|
||||
"force_p_newlines" : false,
|
||||
"forced_root_block" : '',
|
||||
"inline_styles": true,
|
||||
"valid_children": "+body[style]",
|
||||
}
|
||||
|
||||
defineTinyMCE(added_config);
|
||||
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
|
|
|
@ -135,7 +135,7 @@ if (is_ajax()) {
|
|||
}
|
||||
|
||||
if ($search != '') {
|
||||
$filter['string'] = $search;
|
||||
$filter['aliasRegex'] = $search;
|
||||
}
|
||||
|
||||
if ($status_agents != AGENT_STATUS_ALL) {
|
||||
|
@ -170,6 +170,15 @@ if (is_ajax()) {
|
|||
$force_serialized
|
||||
);
|
||||
|
||||
$agents_aux = [];
|
||||
foreach ($agents as $key => $value) {
|
||||
if (preg_match('/'.$search.'/', io_safe_output($value))) {
|
||||
$agents_aux[$key] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
$agents = $agents_aux;
|
||||
|
||||
$agents_disabled = [];
|
||||
// Add keys prefix.
|
||||
if ($keys_prefix !== '') {
|
||||
|
|
|
@ -14,7 +14,8 @@
|
|||
// Load global vars
|
||||
check_login();
|
||||
|
||||
if (! check_acl($config['id_user'], 0, 'PM')) {
|
||||
|
||||
if (!check_acl($config['id_user'], 0, 'UM')) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
'Trying to access massive profile addition'
|
||||
|
@ -108,24 +109,50 @@ $table->size[2] = '33%';
|
|||
|
||||
$data = [];
|
||||
$data[0] = '<form method="post" id="form_profiles" action="index.php?sec=gmassive&sec2=godmode/massive/massive_operations&tab=massive_users&option=add_profiles">';
|
||||
$data[0] .= html_print_select(
|
||||
profile_get_profiles(),
|
||||
'profiles_id[]',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
true,
|
||||
true,
|
||||
false,
|
||||
'',
|
||||
false,
|
||||
'width: 100%'
|
||||
);
|
||||
$display_all_group = true;
|
||||
if (check_acl($config['id_user'], 0, 'PM')) {
|
||||
$data[0] .= html_print_select(
|
||||
profile_get_profiles(),
|
||||
'profiles_id[]',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
true,
|
||||
true,
|
||||
false,
|
||||
'',
|
||||
false,
|
||||
'width: 100%'
|
||||
);
|
||||
} else {
|
||||
$display_all_group = false;
|
||||
$data[0] .= html_print_select(
|
||||
profile_get_profiles(
|
||||
[
|
||||
'pandora_management' => '<> 1',
|
||||
'db_management' => '<> 1',
|
||||
'user_management' => '<> 1',
|
||||
]
|
||||
),
|
||||
'profiles_id[]',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
true,
|
||||
true,
|
||||
false,
|
||||
'',
|
||||
false,
|
||||
'width: 100%'
|
||||
);
|
||||
}
|
||||
|
||||
$data[1] = html_print_select_groups(
|
||||
$config['id_user'],
|
||||
'UM',
|
||||
true,
|
||||
$display_all_group,
|
||||
'groups_id[]',
|
||||
'',
|
||||
'',
|
||||
|
@ -146,8 +173,25 @@ $users_order = [
|
|||
'field' => 'id_user',
|
||||
'order' => 'ASC',
|
||||
];
|
||||
|
||||
$info_users = [];
|
||||
// Is admin or has group permissions all.
|
||||
if (check_acl($config['id_user'], 0, 'PM') || isset($group_um[0])) {
|
||||
$info_users = users_get_info($users_order, 'id_user');
|
||||
} else {
|
||||
$info = [];
|
||||
$group_um = users_get_groups_UM($config['id_user']);
|
||||
foreach ($group_um as $group => $value) {
|
||||
$info = array_merge($info, users_get_users_by_group($group, $value));
|
||||
}
|
||||
|
||||
foreach ($info as $key => $value) {
|
||||
$info_users[$key] = $value['id_user'];
|
||||
}
|
||||
}
|
||||
|
||||
$data[2] .= html_print_select(
|
||||
users_get_info($users_order, 'id_user'),
|
||||
$info_users,
|
||||
'users_id[]',
|
||||
'',
|
||||
'',
|
||||
|
@ -161,7 +205,6 @@ $data[2] .= html_print_select(
|
|||
'width: 100%'
|
||||
);
|
||||
|
||||
|
||||
array_push($table->data, $data);
|
||||
|
||||
html_print_table($table);
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
// Load global vars
|
||||
check_login();
|
||||
|
||||
if (! check_acl($config['id_user'], 0, 'PM')) {
|
||||
if (! check_acl($config['id_user'], 0, 'UM')) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
'Trying to access massive profile deletion'
|
||||
|
@ -48,37 +48,27 @@ $delete_profiles = (int) get_parameter('delete_profiles');
|
|||
if ($delete_profiles) {
|
||||
$profiles_id = get_parameter('profiles_id', -1);
|
||||
$groups_id = get_parameter('groups_id', -1);
|
||||
$users_id = get_parameter('users_id', -1);
|
||||
$users = get_parameter('users_id', -1);
|
||||
|
||||
if ($profiles_id == -1 || $groups_id == -1 || $users_id == -1) {
|
||||
if ($profiles_id == -1 || $groups_id == -1 || $users == -1) {
|
||||
$result = false;
|
||||
} else {
|
||||
foreach ($profiles_id as $profile) {
|
||||
foreach ($groups_id as $group) {
|
||||
foreach ($users_id as $id_up) {
|
||||
if ($id_up == 0) {
|
||||
ui_print_error_message(__('Not deleted. You must select an existing user'));
|
||||
$result = '';
|
||||
} else {
|
||||
$user = (string) db_get_value_filter('id_usuario', 'tusuario_perfil', ['id_up' => $id_up]);
|
||||
foreach ($users as $user) {
|
||||
db_pandora_audit(
|
||||
'User management',
|
||||
'Deleted profile for user '.io_safe_input($user)
|
||||
);
|
||||
|
||||
db_pandora_audit(
|
||||
'User management',
|
||||
'Deleted profile for user '.io_safe_input($user)
|
||||
);
|
||||
|
||||
$result = profile_delete_user_profile($user, $id_up);
|
||||
}
|
||||
}
|
||||
}
|
||||
$result = profile_delete_user_profile_group($user, $profiles_id[0], $groups_id[0]);
|
||||
}
|
||||
}
|
||||
|
||||
$info = [
|
||||
'Profiles' => implode(',', $profiles_id),
|
||||
'Groups' => implode(',', $groups_id),
|
||||
'Users' => implode(',', $users_id),
|
||||
'Users' => implode(',', $users),
|
||||
];
|
||||
|
||||
if ($result) {
|
||||
db_pandora_audit('Massive management', 'Delete profile ', false, false, json_encode($info));
|
||||
} else {
|
||||
|
@ -115,24 +105,50 @@ $table->size[2] = '33%';
|
|||
|
||||
$data = [];
|
||||
$data[0] = '<form method="post" id="form_profiles" action="index.php?sec=gmassive&sec2=godmode/massive/massive_operations&tab=massive_users&option=delete_profiles">';
|
||||
$data[0] .= html_print_select(
|
||||
profile_get_profiles(),
|
||||
'profiles_id[]',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
true,
|
||||
false,
|
||||
false,
|
||||
'',
|
||||
false,
|
||||
'width: 100%'
|
||||
);
|
||||
$display_all_group = true;
|
||||
if (check_acl($config['id_user'], 0, 'PM')) {
|
||||
$data[0] .= html_print_select(
|
||||
profile_get_profiles(),
|
||||
'profiles_id[]',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
true,
|
||||
false,
|
||||
false,
|
||||
'',
|
||||
false,
|
||||
'width: 100%'
|
||||
);
|
||||
} else {
|
||||
$display_all_group = false;
|
||||
$data[0] .= html_print_select(
|
||||
profile_get_profiles(
|
||||
[
|
||||
'pandora_management' => '<> 1',
|
||||
'db_management' => '<> 1',
|
||||
'user_management' => '<> 1',
|
||||
]
|
||||
),
|
||||
'profiles_id[]',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
true,
|
||||
false,
|
||||
false,
|
||||
'',
|
||||
false,
|
||||
'width: 100%'
|
||||
);
|
||||
}
|
||||
|
||||
$data[1] = html_print_select_groups(
|
||||
$config['id_user'],
|
||||
'UM',
|
||||
true,
|
||||
$display_all_group,
|
||||
'groups_id[]',
|
||||
'',
|
||||
'',
|
||||
|
@ -153,8 +169,9 @@ $users_order = [
|
|||
'field' => 'id_user',
|
||||
'order' => 'ASC',
|
||||
];
|
||||
|
||||
$data[2] .= html_print_select(
|
||||
users_get_info($users_order, 'id_user'),
|
||||
[],
|
||||
'users_id[]',
|
||||
'',
|
||||
'',
|
||||
|
@ -168,7 +185,6 @@ $data[2] .= html_print_select(
|
|||
'width: 100%'
|
||||
);
|
||||
|
||||
|
||||
array_push($table->data, $data);
|
||||
|
||||
html_print_table($table);
|
||||
|
@ -192,11 +208,13 @@ ui_require_jquery_file('pandora.controls');
|
|||
<script type="text/javascript">
|
||||
/* <![CDATA[ */
|
||||
$(document).ready (function () {
|
||||
|
||||
update_users();
|
||||
|
||||
function update_users() {
|
||||
var $select = $("#users_id").disable ();
|
||||
$("#users_loading").show ();
|
||||
$("option", $select).remove ();
|
||||
console.log($("#groups_id").val());
|
||||
jQuery.post ("ajax.php",
|
||||
{"page" : "godmode/massive/massive_delete_profiles",
|
||||
"get_users" : 1,
|
||||
|
@ -206,7 +224,7 @@ $(document).ready (function () {
|
|||
function (data, status) {
|
||||
options = "";
|
||||
jQuery.each (data, function (id, value) {
|
||||
options += "<option value=\""+id+"\">"+value+"</option>";
|
||||
options += "<option value=\""+value+"\">"+value+"</option>";
|
||||
});
|
||||
$("#users_id").append (options);
|
||||
$("#users_loading").hide ();
|
||||
|
@ -215,11 +233,11 @@ $(document).ready (function () {
|
|||
"json"
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
$("#groups_id").change (function () {
|
||||
update_users();
|
||||
});
|
||||
|
||||
|
||||
$("#profiles_id").change (function () {
|
||||
update_users();
|
||||
});
|
||||
|
|
|
@ -767,7 +767,7 @@ $table->data['edit1'][1] = '<table width="100%">';
|
|||
$table->data['edit35'][2] = __('SNMP version');
|
||||
$table->data['edit35'][3] = html_print_select(
|
||||
$snmp_versions,
|
||||
'tcp_send',
|
||||
'snmp_version',
|
||||
'',
|
||||
'',
|
||||
__('No change'),
|
||||
|
@ -1933,6 +1933,7 @@ function process_manage_edit($module_name, $agents_select=null, $module_status='
|
|||
'command_text',
|
||||
'command_credential_identifier',
|
||||
'command_os',
|
||||
'snmp_version',
|
||||
];
|
||||
$values = [];
|
||||
|
||||
|
@ -2028,9 +2029,7 @@ function process_manage_edit($module_name, $agents_select=null, $module_status='
|
|||
break;
|
||||
|
||||
case 'tcp_send2':
|
||||
if ($value != '') {
|
||||
$values['tcp_send'] = $value;
|
||||
}
|
||||
$tcp_send2 = $value;
|
||||
break;
|
||||
|
||||
case 'plugin_parameter_text':
|
||||
|
@ -2039,6 +2038,10 @@ function process_manage_edit($module_name, $agents_select=null, $module_status='
|
|||
}
|
||||
break;
|
||||
|
||||
case 'snmp_version':
|
||||
$snmp_version = $value;
|
||||
break;
|
||||
|
||||
default:
|
||||
if ($value != '') {
|
||||
$values[$field] = $value;
|
||||
|
@ -2096,7 +2099,10 @@ function process_manage_edit($module_name, $agents_select=null, $module_status='
|
|||
$modules = db_get_all_rows_filter(
|
||||
'tagente_modulo',
|
||||
$filter_modules,
|
||||
['id_agente_modulo']
|
||||
[
|
||||
'id_agente_modulo',
|
||||
'id_tipo_modulo',
|
||||
]
|
||||
);
|
||||
} else {
|
||||
if ($module_name == '0') {
|
||||
|
@ -2104,7 +2110,10 @@ function process_manage_edit($module_name, $agents_select=null, $module_status='
|
|||
$modules = db_get_all_rows_filter(
|
||||
'tagente_modulo',
|
||||
['id_agente' => $agents_select],
|
||||
['id_agente_modulo']
|
||||
[
|
||||
'id_agente_modulo',
|
||||
'id_tipo_modulo',
|
||||
]
|
||||
);
|
||||
} else {
|
||||
$modules = db_get_all_rows_filter(
|
||||
|
@ -2113,7 +2122,10 @@ function process_manage_edit($module_name, $agents_select=null, $module_status='
|
|||
'id_agente' => $agents_select,
|
||||
'nombre' => $module_name,
|
||||
],
|
||||
['id_agente_modulo']
|
||||
[
|
||||
'id_agente_modulo',
|
||||
'id_tipo_modulo',
|
||||
]
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -2137,6 +2149,21 @@ function process_manage_edit($module_name, $agents_select=null, $module_status='
|
|||
}
|
||||
|
||||
foreach ($modules as $module) {
|
||||
// Set tcp_send value according to module type since the purpose of this field in database varies in case of SNMP modules.
|
||||
if ($module['id_tipo_modulo'] >= 15 && $module['id_tipo_modulo'] <= 18) {
|
||||
if ($snmp_version != '') {
|
||||
$values['tcp_send'] = $snmp_version;
|
||||
} else {
|
||||
unset($values['tcp_send']);
|
||||
}
|
||||
} else {
|
||||
if ($tcp_send2 != '') {
|
||||
$values['tcp_send'] = $tcp_send2;
|
||||
} else {
|
||||
unset($values['tcp_send']);
|
||||
}
|
||||
}
|
||||
|
||||
$result = modules_update_agent_module(
|
||||
$module['id_agente_modulo'],
|
||||
$values,
|
||||
|
|
|
@ -47,7 +47,7 @@ $options_agents = [
|
|||
'delete_agents' => __('Bulk agent delete'),
|
||||
];
|
||||
|
||||
if (check_acl($config['id_user'], 0, 'PM')) {
|
||||
if (check_acl($config['id_user'], 0, 'UM')) {
|
||||
$options_users = [
|
||||
'add_profiles' => __('Bulk profile add'),
|
||||
'delete_profiles' => __('Bulk profile delete'),
|
||||
|
@ -263,7 +263,7 @@ $onheader = [];
|
|||
$onheader['massive_agents'] = $agentstab;
|
||||
$onheader['massive_modules'] = $modulestab;
|
||||
$onheader['massive_plugins'] = $pluginstab;
|
||||
if (check_acl($config['id_user'], 0, 'PM')) {
|
||||
if (check_acl($config['id_user'], 0, 'UM')) {
|
||||
$onheader['user_agents'] = $userstab;
|
||||
}
|
||||
|
||||
|
|
|
@ -184,7 +184,7 @@ if (check_acl($config['id_user'], 0, 'AW')) {
|
|||
$sub2['godmode/massive/massive_operations&tab=massive_agents']['text'] = __('Agents operations');
|
||||
$sub2['godmode/massive/massive_operations&tab=massive_modules']['text'] = __('Modules operations');
|
||||
$sub2['godmode/massive/massive_operations&tab=massive_plugins']['text'] = __('Plugins operations');
|
||||
if (check_acl($config['id_user'], 0, 'PM')) {
|
||||
if (check_acl($config['id_user'], 0, 'UM')) {
|
||||
$sub2['godmode/massive/massive_operations&tab=massive_users']['text'] = __('Users operations');
|
||||
}
|
||||
|
||||
|
|
|
@ -81,8 +81,8 @@ if (defined('METACONSOLE')) {
|
|||
}
|
||||
|
||||
$type = (int) get_parameter('type');
|
||||
$name = (string) get_parameter('name');
|
||||
$description = (string) get_parameter('description');
|
||||
$name = io_safe_input(strip_tags(io_safe_output((string) get_parameter('name'))));
|
||||
$description = io_safe_input(strip_tags(io_safe_output((string) get_parameter('description'))));
|
||||
$max = (int) get_parameter('max');
|
||||
$min = (int) get_parameter('min');
|
||||
$tcp_send = (string) get_parameter('tcp_send');
|
||||
|
|
|
@ -1024,7 +1024,7 @@ $class = 'databox filters';
|
|||
</td>
|
||||
<td style="">
|
||||
<?php
|
||||
html_print_checkbox(
|
||||
html_print_checkbox_switch(
|
||||
'last_value',
|
||||
'1',
|
||||
((int) $period === 0),
|
||||
|
@ -1110,7 +1110,7 @@ $class = 'databox filters';
|
|||
<td style="font-weight:bold;"><?php echo __('Only display wrong SLAs'); ?></td>
|
||||
<td>
|
||||
<?php
|
||||
html_print_checkbox(
|
||||
html_print_checkbox_switch(
|
||||
'checkbox_only_display_wrong',
|
||||
1,
|
||||
$only_display_wrong
|
||||
|
@ -1125,7 +1125,13 @@ $class = 'databox filters';
|
|||
</td>
|
||||
|
||||
<td style="font-weight:bold;">
|
||||
<?php html_print_checkbox('current_month', 1, $current_month); ?>
|
||||
<?php
|
||||
html_print_checkbox_switch(
|
||||
'current_month',
|
||||
1,
|
||||
$current_month
|
||||
);
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
@ -1138,46 +1144,60 @@ $class = 'databox filters';
|
|||
<table border="0">
|
||||
<tr>
|
||||
<td>
|
||||
<?php
|
||||
echo __('Monday');
|
||||
html_print_checkbox('monday', 1, $monday);
|
||||
?>
|
||||
<p style="margin-right:30px;">
|
||||
<?php
|
||||
echo __('Monday')."<br>";
|
||||
html_print_checkbox_switch('monday', 1, $monday);
|
||||
?>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<?php
|
||||
echo __('Tuesday');
|
||||
html_print_checkbox('tuesday', 1, $tuesday);
|
||||
?>
|
||||
<p style="margin-right:30px;">
|
||||
<?php
|
||||
echo __('Tuesday')."<br>";
|
||||
html_print_checkbox_switch('tuesday', 1, $tuesday);
|
||||
?>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<?php
|
||||
echo __('Wednesday');
|
||||
html_print_checkbox('wednesday', 1, $wednesday);
|
||||
?>
|
||||
<p style="margin-right:30px;">
|
||||
<?php
|
||||
echo __('Wednesday')."<br>";
|
||||
html_print_checkbox_switch('wednesday', 1, $wednesday);
|
||||
?>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<?php
|
||||
echo __('Thursday');
|
||||
html_print_checkbox('thursday', 1, $thursday);
|
||||
?>
|
||||
<p style="margin-right:30px;">
|
||||
<?php
|
||||
echo __('Thursday')."<br>";
|
||||
html_print_checkbox_switch('thursday', 1, $thursday);
|
||||
?>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<?php
|
||||
echo __('Friday');
|
||||
html_print_checkbox('friday', 1, $friday);
|
||||
?>
|
||||
<p style="margin-right:30px;">
|
||||
<?php
|
||||
echo __('Friday')."<br>";
|
||||
html_print_checkbox_switch('friday', 1, $friday);
|
||||
?>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<?php
|
||||
echo __('Saturday');
|
||||
html_print_checkbox('saturday', 1, $saturday);
|
||||
?>
|
||||
<p style="margin-right:30px;">
|
||||
<?php
|
||||
echo __('Saturday')."<br>";
|
||||
html_print_checkbox_switch('saturday', 1, $saturday);
|
||||
?>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<?php
|
||||
echo __('Sunday');
|
||||
html_print_checkbox('sunday', 1, $sunday);
|
||||
?>
|
||||
<p style="margin-right:30px;">
|
||||
<?php
|
||||
echo __('Sunday')."<br>";
|
||||
html_print_checkbox_switch('sunday', 1, $sunday);
|
||||
?>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -1224,7 +1244,7 @@ $class = 'databox filters';
|
|||
</td>
|
||||
<td colspan="6">
|
||||
<?php
|
||||
html_print_checkbox(
|
||||
html_print_checkbox_switch(
|
||||
'compare_work_time',
|
||||
1,
|
||||
$compare_work_time
|
||||
|
@ -1260,7 +1280,7 @@ $class = 'databox filters';
|
|||
);
|
||||
}
|
||||
|
||||
echo ' '.__('Recursion').html_print_checkbox(
|
||||
echo ' '.__('Recursion').' '.html_print_checkbox_switch(
|
||||
'recursion',
|
||||
1,
|
||||
$recursion,
|
||||
|
@ -1922,6 +1942,7 @@ $class = 'databox filters';
|
|||
250
|
||||
);
|
||||
?>
|
||||
<span id="url_warning_text" class="error" style="display: none; font-weight: bold;"><?php echo __('Protocol must be specified in URL (e.g.: "https://")'); ?></span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="row_field_separator" style="" class="datos">
|
||||
|
@ -1974,7 +1995,7 @@ $class = 'databox filters';
|
|||
</td>
|
||||
<td>
|
||||
<?php
|
||||
html_print_checkbox(
|
||||
html_print_checkbox_switch(
|
||||
'checkbox_row_group_by_agent',
|
||||
1,
|
||||
$group_by_agent
|
||||
|
@ -2078,7 +2099,7 @@ $class = 'databox filters';
|
|||
</td>
|
||||
<td>
|
||||
<?php
|
||||
html_print_checkbox(
|
||||
html_print_checkbox_switch(
|
||||
'time_compare_overlapped',
|
||||
1,
|
||||
$time_compare_overlapped
|
||||
|
@ -2096,7 +2117,14 @@ $class = 'databox filters';
|
|||
);
|
||||
?>
|
||||
</td>
|
||||
<td><?php html_print_checkbox('fullscale', 1, $fullscale); ?></td>
|
||||
<td><?php
|
||||
html_print_checkbox_switch(
|
||||
'fullscale',
|
||||
1,
|
||||
$fullscale
|
||||
);
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr id="row_percentil" style="" class="datos">
|
||||
|
@ -2166,32 +2194,32 @@ $class = 'databox filters';
|
|||
<td>
|
||||
<p style="margin-right:30px;">
|
||||
<?php
|
||||
echo __('Total time');
|
||||
html_print_checkbox('total_time', 1, $total_time);
|
||||
echo __('Total time')."<br>";
|
||||
html_print_checkbox_switch('total_time', 1, $total_time);
|
||||
?>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p style="margin-right:30px;">
|
||||
<?php
|
||||
echo __('Time failed');
|
||||
html_print_checkbox('time_failed', 1, $time_failed);
|
||||
echo __('Time failed')."<br>";
|
||||
html_print_checkbox_switch('time_failed', 1, $time_failed);
|
||||
?>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p style="margin-right:30px;">
|
||||
<?php
|
||||
echo __('Time in OK status');
|
||||
html_print_checkbox('time_in_ok_status', 1, $time_in_ok_status);
|
||||
echo __('Time in OK status')."<br>";
|
||||
html_print_checkbox_switch('time_in_ok_status', 1, $time_in_ok_status);
|
||||
?>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p style="margin-right:30px;">
|
||||
<?php
|
||||
echo __('Time in unknown status');
|
||||
html_print_checkbox(
|
||||
echo __('Time in unknown status')."<br>";
|
||||
html_print_checkbox_switch(
|
||||
'time_in_unknown_status',
|
||||
1,
|
||||
$time_in_unknown_status
|
||||
|
@ -2202,8 +2230,8 @@ $class = 'databox filters';
|
|||
<td>
|
||||
<p style="margin-right:30px;">
|
||||
<?php
|
||||
echo __('Time of not initialized module');
|
||||
html_print_checkbox(
|
||||
echo __('Time of not initialized module')."<br>";
|
||||
html_print_checkbox_switch(
|
||||
'time_of_not_initialized_module',
|
||||
1,
|
||||
$time_of_not_initialized_module
|
||||
|
@ -2214,8 +2242,8 @@ $class = 'databox filters';
|
|||
<td>
|
||||
<p style="margin-right:30px;">
|
||||
<?php
|
||||
echo __('Time of downtime');
|
||||
html_print_checkbox('time_of_downtime', 1, $time_of_downtime);
|
||||
echo __('Time of downtime')."<br>";
|
||||
html_print_checkbox_switch('time_of_downtime', 1, $time_of_downtime);
|
||||
?>
|
||||
</p>
|
||||
</td>
|
||||
|
@ -2348,7 +2376,7 @@ $class = 'databox filters';
|
|||
</td>
|
||||
<td>
|
||||
<?php
|
||||
html_print_checkbox(
|
||||
html_print_checkbox_switch(
|
||||
'show_summary_group',
|
||||
true,
|
||||
$show_summary_group
|
||||
|
@ -2446,7 +2474,7 @@ $class = 'databox filters';
|
|||
</td>
|
||||
<td>
|
||||
<?php
|
||||
html_print_checkbox(
|
||||
html_print_checkbox_switch(
|
||||
'include_extended_events',
|
||||
true,
|
||||
$include_extended_events
|
||||
|
@ -2460,8 +2488,8 @@ $class = 'databox filters';
|
|||
<td>
|
||||
<span id="row_event_graph_by_agent">
|
||||
<?php
|
||||
echo __('By agent');
|
||||
html_print_checkbox(
|
||||
echo __('By agent ');
|
||||
html_print_checkbox_switch(
|
||||
'event_graph_by_agent',
|
||||
true,
|
||||
$event_graph_by_agent
|
||||
|
@ -2470,8 +2498,8 @@ $class = 'databox filters';
|
|||
</span>
|
||||
<span id="row_event_graph_by_user">
|
||||
<?php
|
||||
echo __('By user validator');
|
||||
html_print_checkbox(
|
||||
echo __('By user validator ');
|
||||
html_print_checkbox_switch(
|
||||
'event_graph_by_user_validator',
|
||||
true,
|
||||
$event_graph_by_user_validator
|
||||
|
@ -2480,8 +2508,8 @@ $class = 'databox filters';
|
|||
</span>
|
||||
<span id="row_event_graph_by_criticity">
|
||||
<?php
|
||||
echo __('By criticity');
|
||||
html_print_checkbox(
|
||||
echo __('By criticity ');
|
||||
html_print_checkbox_switch(
|
||||
'event_graph_by_criticity',
|
||||
true,
|
||||
$event_graph_by_criticity
|
||||
|
@ -2490,8 +2518,8 @@ $class = 'databox filters';
|
|||
</span>
|
||||
<span id="row_event_graph_by_validated">
|
||||
<?php
|
||||
echo __('Validated vs unvalidated');
|
||||
html_print_checkbox(
|
||||
echo __('Validated vs unvalidated ');
|
||||
html_print_checkbox_switch(
|
||||
'event_graph_validated_vs_unvalidated',
|
||||
true,
|
||||
$event_graph_validated_vs_unvalidated
|
||||
|
@ -2512,7 +2540,7 @@ $class = 'databox filters';
|
|||
</td>
|
||||
<td style="">
|
||||
<?php
|
||||
html_print_checkbox('historical_db_check', 1, $historical_db);
|
||||
html_print_checkbox_switch('historical_db_check', 1, $historical_db);
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -2547,7 +2575,7 @@ $class = 'databox filters';
|
|||
</td>
|
||||
<td style="">
|
||||
<?php
|
||||
html_print_checkbox(
|
||||
html_print_checkbox_switch(
|
||||
'show_in_same_row',
|
||||
'1',
|
||||
$show_in_same_row,
|
||||
|
@ -2683,7 +2711,7 @@ $class = 'databox filters';
|
|||
</td>
|
||||
<td style="">
|
||||
<?php
|
||||
html_print_checkbox('lapse_calc', 1, $lapse_calc);
|
||||
html_print_checkbox_switch('lapse_calc', 1, $lapse_calc);
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -2783,7 +2811,7 @@ $class = 'databox filters';
|
|||
</td>
|
||||
<td style="">
|
||||
<?php
|
||||
html_print_checkbox('uncompressed_module', 1, $item['uncompressed_module'], false, false, '', false);
|
||||
html_print_checkbox_switch('uncompressed_module', 1, $item['uncompressed_module'], false, false, '', false);
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -2794,7 +2822,7 @@ $class = 'databox filters';
|
|||
echo __('Show item in landscape format (only PDF)');
|
||||
?>
|
||||
</td>
|
||||
<td><?php html_print_checkbox('landscape', 1, $landscape); ?></td>
|
||||
<td><?php html_print_checkbox_switch('landscape', 1, $landscape); ?></td>
|
||||
</tr>
|
||||
|
||||
<tr id="row_pagebreak" style="" class="datos">
|
||||
|
@ -2803,7 +2831,7 @@ $class = 'databox filters';
|
|||
echo __('Page break at the end of the item (only PDF)');
|
||||
?>
|
||||
</td>
|
||||
<td><?php html_print_checkbox('pagebreak', 1, $pagebreak); ?></td>
|
||||
<td><?php html_print_checkbox_switch('pagebreak', 1, $pagebreak); ?></td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
|
@ -3671,6 +3699,18 @@ $(document).ready (function () {
|
|||
$("#inventory_modules").html('');
|
||||
})
|
||||
|
||||
$("#text-url").keyup (
|
||||
function () {
|
||||
const user_typed_url = $(this).val();
|
||||
|
||||
if (user_typed_url.match('^.+:\/\/')) {
|
||||
$("#url_warning_text").hide();
|
||||
} else {
|
||||
$("#url_warning_text").show();
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
$("#combo_group").change (
|
||||
function () {
|
||||
$("#id_agents").html('');
|
||||
|
@ -3878,7 +3918,6 @@ $(document).ready (function () {
|
|||
case 'historical_data':
|
||||
case 'agent_configuration':
|
||||
case 'module_histogram_graph':
|
||||
case 'event_report_log':
|
||||
case 'increment':
|
||||
if ($("#hidden-id_agent").val() == 0) {
|
||||
dialog_message('#message_no_agent');
|
||||
|
@ -3898,6 +3937,12 @@ $(document).ready (function () {
|
|||
return false;
|
||||
}
|
||||
break;
|
||||
case 'event_report_log':
|
||||
if ($("#id_agents3").val() == '') {
|
||||
dialog_message('#message_no_agent');
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -195,54 +195,21 @@ ui_require_javascript_file('encode_decode_base64');
|
|||
id_visual_console = <?php echo $visualConsole['id']; ?>;
|
||||
visual_map_main();
|
||||
|
||||
tinyMCE.init({
|
||||
mode : "exact",
|
||||
elements: "text-label",
|
||||
convert_urls: false,
|
||||
theme : "advanced",
|
||||
<?php
|
||||
if ($config['style'] == 'pandora_legacy') {
|
||||
echo 'content_css: "'.ui_get_full_url('include/styles/pandora_legacy.css', false, false, false).'",'."\n";
|
||||
} else {
|
||||
echo 'content_css: "'.ui_get_full_url('include/styles/pandora.css', false, false, false).'",'."\n";
|
||||
}
|
||||
?>
|
||||
theme_advanced_font_sizes :
|
||||
"4pt=.visual_font_size_4pt, " +
|
||||
"6pt=.visual_font_size_6pt, " +
|
||||
"8pt=.visual_font_size_8pt, " +
|
||||
"10pt=.visual_font_size_10pt, " +
|
||||
"12pt=.visual_font_size_12pt, " +
|
||||
"14pt=.visual_font_size_14pt, " +
|
||||
"18pt=.visual_font_size_18pt, " +
|
||||
"24pt=.visual_font_size_24pt, " +
|
||||
"28pt=.visual_font_size_28pt, " +
|
||||
"36pt=.visual_font_size_36pt, " +
|
||||
"48pt=.visual_font_size_48pt, " +
|
||||
"60pt=.visual_font_size_60pt, " +
|
||||
"72pt=.visual_font_size_72pt, " +
|
||||
"84pt=.visual_font_size_84pt, " +
|
||||
"96pt=.visual_font_size_96pt, " +
|
||||
"116pt=.visual_font_size_116pt, " +
|
||||
"128pt=.visual_font_size_128pt, " +
|
||||
"140pt=.visual_font_size_140pt, " +
|
||||
"154pt=.visual_font_size_154pt, " +
|
||||
"196pt=.visual_font_size_196pt",
|
||||
theme_advanced_toolbar_location : "top",
|
||||
theme_advanced_toolbar_align : "left",
|
||||
theme_advanced_buttons1 : "bold,italic, |, justifyleft, justifycenter, justifyright, |,undo, redo, |, image, link, |, fontselect, |, forecolor, fontsizeselect, |, code",
|
||||
theme_advanced_buttons2 : "",
|
||||
theme_advanced_buttons3 : "",
|
||||
theme_advanced_statusbar_location : "none",
|
||||
width: "400",
|
||||
height: "200",
|
||||
nowrap: true,
|
||||
plugins : "noneditable",
|
||||
inline_styles : true,
|
||||
valid_children : "+body[style]",
|
||||
element_format : "html",
|
||||
editor_deselector : "noselected"
|
||||
});
|
||||
var added_config = {
|
||||
"plugins": "noneditable",
|
||||
"elements": "text-label",
|
||||
"theme_advanced_buttons1":
|
||||
"bold,italic,|,justifyleft,justifycenter,justifyright,|,undo,redo,|,image,link,|,fontselect,|,forecolor,fontsizeselect,|,code",
|
||||
"valid_children": "+body[style]",
|
||||
"theme_advanced_font_sizes": "true",
|
||||
"content_css": <?php echo '"'.ui_get_full_url('include/styles/pandora.css', false, false, false).'"'; ?>,
|
||||
"editor_deselector": "noselected",
|
||||
"inline_styles": true,
|
||||
"nowrap": true,
|
||||
"width": "50%",
|
||||
"height": "100%",
|
||||
}
|
||||
defineTinyMCE(added_config);
|
||||
|
||||
$('.item img').each(function(){
|
||||
|
||||
|
|
|
@ -710,48 +710,25 @@ ui_require_javascript_file('tiny_mce', 'include/javascript/tiny_mce/');
|
|||
|
||||
<script type="text/javascript">
|
||||
$(document).ready (function () {
|
||||
|
||||
tinymce.init({
|
||||
selector: "#tinyMCE_editor",
|
||||
theme : "advanced",
|
||||
<?php
|
||||
if ($config['style'] == 'pandora_legacy') {
|
||||
echo 'content_css: "'.ui_get_full_url('include/styles/pandora_legacy.css', false, false, false).'",'."\n";
|
||||
} else {
|
||||
echo 'content_css: "'.ui_get_full_url('include/styles/pandora.css', false, false, false).'",'."\n";
|
||||
}
|
||||
?>
|
||||
theme_advanced_font_sizes :
|
||||
"4pt=.visual_font_size_4pt, " +
|
||||
"6pt=.visual_font_size_6pt, " +
|
||||
"8pt=.visual_font_size_8pt, " +
|
||||
"10pt=.visual_font_size_10pt, " +
|
||||
"12pt=.visual_font_size_12pt, " +
|
||||
"14pt=.visual_font_size_14pt, " +
|
||||
"18pt=.visual_font_size_18pt, " +
|
||||
"24pt=.visual_font_size_24pt, " +
|
||||
"28pt=.visual_font_size_28pt, " +
|
||||
"36pt=.visual_font_size_36pt, " +
|
||||
"48pt=.visual_font_size_48pt, " +
|
||||
"60pt=.visual_font_size_60pt, " +
|
||||
"72pt=.visual_font_size_72pt, " +
|
||||
"84pt=.visual_font_size_84pt, " +
|
||||
"96pt=.visual_font_size_96pt, " +
|
||||
"116pt=.visual_font_size_116pt, " +
|
||||
"128pt=.visual_font_size_128pt, " +
|
||||
"140pt=.visual_font_size_140pt, " +
|
||||
"154pt=.visual_font_size_154pt, " +
|
||||
"196pt=.visual_font_size_196pt",
|
||||
theme_advanced_toolbar_location : "top",
|
||||
theme_advanced_toolbar_align : "left",
|
||||
theme_advanced_buttons1 : "bold,italic, |, image, link, |, forecolor, fontsizeselect",
|
||||
theme_advanced_buttons2 : "",
|
||||
theme_advanced_buttons3 : "",
|
||||
theme_advanced_statusbar_location : "none",
|
||||
width: "400",
|
||||
height: "200",
|
||||
nowrap: true
|
||||
});
|
||||
|
||||
var added_config = {
|
||||
"selector": "#tinyMCE_editor",
|
||||
"elements": "text-label",
|
||||
"plugins": "noneditable",
|
||||
"theme_advanced_buttons1":
|
||||
"bold,italic,|,justifyleft,justifycenter,justifyright,|,undo,redo,|,image,link,|,fontselect,|,forecolor,fontsizeselect,|,code",
|
||||
"valid_children": "+body[style]",
|
||||
"theme_advanced_font_sizes": "true",
|
||||
"content_css":
|
||||
<?php echo '"'.ui_get_full_url('include/styles/pandora.css', false, false, false).'"'; ?>,
|
||||
"editor_deselector": "noselected",
|
||||
"inline_styles": true,
|
||||
"nowrap": true,
|
||||
"width": "400",
|
||||
"height": "200",
|
||||
}
|
||||
|
||||
defineTinyMCE(added_config);
|
||||
|
||||
$("#dialog_label_editor").hide ()
|
||||
.dialog ({
|
||||
|
|
|
@ -302,6 +302,7 @@ ui_require_jquery_file('ui.datepicker-'.get_user_language(), 'include/javascript
|
|||
|
||||
// Include tiny for wysiwyg editor
|
||||
ui_require_javascript_file('tiny_mce', 'include/javascript/tiny_mce/');
|
||||
ui_require_javascript_file('pandora');
|
||||
|
||||
?>
|
||||
<script language="javascript" type="text/javascript">
|
||||
|
@ -325,20 +326,8 @@ ui_require_javascript_file('tiny_mce', 'include/javascript/tiny_mce/');
|
|||
changeMonth: true,
|
||||
changeYear: true,
|
||||
showAnim: "slideDown"});
|
||||
|
||||
|
||||
tinyMCE.init({
|
||||
mode : "exact",
|
||||
elements: "textarea_text",
|
||||
theme : "advanced",
|
||||
theme_advanced_toolbar_location : "top",
|
||||
theme_advanced_toolbar_align : "left",
|
||||
theme_advanced_buttons1 : "bold,italic, |, image, link, |, cut, copy, paste, |, undo, redo, |, forecolor, |, fontsizeselect, |, justifyleft, justifycenter, justifyright, | ,code",
|
||||
theme_advanced_buttons2 : "",
|
||||
theme_advanced_buttons3 : "",
|
||||
convert_urls : false,
|
||||
theme_advanced_statusbar_location : "none"
|
||||
});
|
||||
|
||||
defineTinyMCE({"elements": "textarea_text",});
|
||||
|
||||
$("#checkbox-expire").click(function() {
|
||||
check_expire();
|
||||
|
|
|
@ -37,8 +37,8 @@ if ($idOS) {
|
|||
$description = $os['description'];
|
||||
$icon = $os['icon_name'];
|
||||
} else {
|
||||
$name = get_parameter('name', '');
|
||||
$description = get_parameter('description', '');
|
||||
$name = io_safe_input(strip_tags(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);
|
||||
}
|
||||
|
||||
|
@ -91,8 +91,8 @@ switch ($action) {
|
|||
break;
|
||||
|
||||
case 'update':
|
||||
$name = get_parameter('name', '');
|
||||
$description = get_parameter('description', '');
|
||||
$name = io_safe_input(strip_tags(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);
|
||||
|
||||
$values = [];
|
||||
|
|
|
@ -685,8 +685,8 @@ function change_macro_fields() {
|
|||
if (value <= 0) {
|
||||
$("#text-max_macro_fields").val(1);
|
||||
}
|
||||
else if (value > 15) {
|
||||
$("#text-max_macro_fields").val(15);
|
||||
else if (value > 20) {
|
||||
$("#text-max_macro_fields").val(20);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -996,7 +996,7 @@ $row++;
|
|||
$table_report->width = '100%';
|
||||
$table_report->class = 'databox filters';
|
||||
$table_report->style[0] = 'font-weight: bold;';
|
||||
$table_report->size[0] = '50%';
|
||||
$table_report->size[0] = '20%';
|
||||
|
||||
$table_report->data = [];
|
||||
|
||||
|
@ -1097,7 +1097,7 @@ $row++;
|
|||
5,
|
||||
15,
|
||||
io_safe_output($config['custom_report_front_header']),
|
||||
'style="width: 38em;"',
|
||||
'style="width: 90%; height: 300px !important;"',
|
||||
true
|
||||
);
|
||||
|
||||
|
@ -1120,7 +1120,7 @@ $row++;
|
|||
15,
|
||||
15,
|
||||
$custom_report_front_firstpage,
|
||||
'style="width: 38em; height: 20em;"',
|
||||
'style="width: 90%; height: 300px !important;"',
|
||||
true
|
||||
);
|
||||
|
||||
|
@ -1133,7 +1133,7 @@ $row++;
|
|||
5,
|
||||
15,
|
||||
io_safe_output($config['custom_report_front_footer']),
|
||||
'style="width: 38em;"',
|
||||
'style="width: 90%; height: 300px !important;"',
|
||||
true
|
||||
);
|
||||
|
||||
|
@ -1474,30 +1474,17 @@ function change_servicetree_nodes_padding () {
|
|||
}
|
||||
}
|
||||
|
||||
tinyMCE.init({
|
||||
mode : "exact",
|
||||
elements: "textarea_custom_report_front_header, textarea_custom_report_front_footer",
|
||||
theme : "advanced",
|
||||
theme_advanced_toolbar_location : "top",
|
||||
theme_advanced_toolbar_align : "left",
|
||||
theme_advanced_buttons1 : "bold,italic, |, image, |, cut, copy, paste, |, undo, redo, |, forecolor, |, fontsizeselect, |, justifyleft, justifycenter, justifyright",
|
||||
theme_advanced_buttons2 : "",
|
||||
theme_advanced_buttons3 : "",
|
||||
theme_advanced_statusbar_location : "none"
|
||||
});
|
||||
var added_config1 = {
|
||||
"elements":"textarea_custom_report_front_header, textarea_custom_report_front_footer",
|
||||
}
|
||||
|
||||
tinyMCE.init({
|
||||
mode : "exact",
|
||||
elements: "textarea_custom_report_front_firstpage",
|
||||
theme : "advanced",
|
||||
theme_advanced_toolbar_location : "top",
|
||||
theme_advanced_toolbar_align : "left",
|
||||
theme_advanced_buttons1 : "bold,italic, |, image, |, cut, copy, paste, |, undo, redo, |, forecolor, |, fontsizeselect, |, justifyleft, justifycenter, justifyright",
|
||||
theme_advanced_buttons2 : "",
|
||||
theme_advanced_buttons3 : "",
|
||||
convert_urls : false,
|
||||
theme_advanced_statusbar_location : "none"
|
||||
});
|
||||
defineTinyMCE(added_config1);
|
||||
|
||||
var added_config2 = {
|
||||
"elements":"textarea_custom_report_front_firstpage",
|
||||
}
|
||||
|
||||
defineTinyMCE(added_config2);
|
||||
|
||||
$(document).ready (function () {
|
||||
|
||||
|
|
|
@ -1470,6 +1470,7 @@ if ($create_alert || $update_alert) {
|
|||
unset($table);
|
||||
}
|
||||
|
||||
ui_require_javascript_file('pandora', 'include/javascript/', true);
|
||||
ui_require_javascript_file('tiny_mce', 'include/javascript/tiny_mce/');
|
||||
?>
|
||||
<script language="javascript" type="text/javascript">
|
||||
|
@ -1575,24 +1576,19 @@ $(document).ready (function () {
|
|||
}
|
||||
});
|
||||
|
||||
tinyMCE.init({
|
||||
selector: 'textarea.tiny-mce-editor',
|
||||
theme : "advanced",
|
||||
plugins : "preview, print, table, searchreplace, nonbreaking, xhtmlxtras, noneditable",
|
||||
theme_advanced_buttons1 : "bold,italic,underline,|,justifyleft,justifycenter,justifyright,justifyfull,|,formatselect,fontselect,fontsize,select",
|
||||
theme_advanced_buttons2 : "search,replace,|,bullist,numlist,|,undo,redo,|,link,unlink,image,|,cleanup,code,preview,|,forecolor,backcolor",
|
||||
theme_advanced_buttons3 : "",
|
||||
theme_advanced_toolbar_location : "top",
|
||||
theme_advanced_toolbar_align : "left",
|
||||
theme_advanced_resizing : true,
|
||||
theme_advanced_statusbar_location : "bottom",
|
||||
force_p_newlines : false,
|
||||
forced_root_block : '',
|
||||
inline_styles : true,
|
||||
valid_children : "+body[style]",
|
||||
element_format : "html"
|
||||
});
|
||||
var added_config = {
|
||||
"selector": "textarea.tiny-mce-editor",
|
||||
"plugins": "preview, print, table, searchreplace, nonbreaking, xhtmlxtras, noneditable",
|
||||
"theme_advanced_buttons1" : "bold,italic,underline,|,justifyleft,justifycenter,justifyright,justifyfull,|,formatselect,fontselect,fontsize,select",
|
||||
"theme_advanced_buttons2" : "search,replace,|,bullist,numlist,|,undo,redo,|,link,unlink,image,|,cleanup,code,preview,|,forecolor,backcolor",
|
||||
"force_p_newlines": false,
|
||||
"forced_root_block": '',
|
||||
"inline_styles": true,
|
||||
"valid_children": "+body[style]",
|
||||
"element_format": "html",
|
||||
}
|
||||
|
||||
defineTinyMCE(added_config);
|
||||
});
|
||||
|
||||
function show_add_action_snmp(id_alert_snmp) {
|
||||
|
|
|
@ -179,7 +179,7 @@ if ($id_profile || $new_profile) {
|
|||
|
||||
$id_audit = db_pandora_audit(
|
||||
'User management',
|
||||
'Edit profile '.$name
|
||||
'Edit profile '.io_safe_output($name)
|
||||
);
|
||||
enterprise_include_once('include/functions_audit.php');
|
||||
|
||||
|
|
|
@ -101,6 +101,7 @@ $id = get_parameter('id', get_parameter('id_user', ''));
|
|||
$pure = get_parameter('pure', 0);
|
||||
|
||||
$user_info = get_user_info($id);
|
||||
$is_err = false;
|
||||
|
||||
if (! check_acl($config['id_user'], 0, 'UM')) {
|
||||
db_pandora_audit(
|
||||
|
@ -124,7 +125,7 @@ if (is_ajax()) {
|
|||
|
||||
db_pandora_audit(
|
||||
'User management',
|
||||
'Deleted profile for user '.io_safe_input($id2),
|
||||
'Deleted profile for user '.io_safe_output($id2),
|
||||
false,
|
||||
false,
|
||||
'The profile with id '.$id_perfil.' in the group '.$perfilUser['id_grupo']
|
||||
|
@ -145,7 +146,7 @@ if (is_ajax()) {
|
|||
if ($result) {
|
||||
db_pandora_audit(
|
||||
'User management',
|
||||
__('Deleted user %s', io_safe_input($id_user))
|
||||
__('Deleted user %s', io_safe_output($id_user))
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -167,7 +168,7 @@ if (is_ajax()) {
|
|||
if ($result) {
|
||||
db_pandora_audit(
|
||||
'User management',
|
||||
__('Deleted user %s from metaconsole', io_safe_input($id_user))
|
||||
__('Deleted user %s from metaconsole', io_safe_output($id_user))
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -313,7 +314,7 @@ if ($create_user) {
|
|||
$password_confirm = (string) get_parameter('password_confirm', '');
|
||||
$values['email'] = (string) get_parameter('email');
|
||||
$values['phone'] = (string) get_parameter('phone');
|
||||
$values['comments'] = (string) get_parameter('comments');
|
||||
$values['comments'] = io_safe_input(strip_tags(io_safe_output((string) get_parameter('comments'))));
|
||||
$values['is_admin'] = $user_is_admin;
|
||||
$values['language'] = get_parameter('language', 'default');
|
||||
$values['timezone'] = (string) get_parameter('timezone');
|
||||
|
@ -370,23 +371,27 @@ if ($create_user) {
|
|||
|
||||
if ($id == '') {
|
||||
ui_print_error_message(__('User ID cannot be empty'));
|
||||
$is_err = true;
|
||||
$user_info = $values;
|
||||
$password_new = '';
|
||||
$password_confirm = '';
|
||||
$new_user = true;
|
||||
} else if (preg_match('/^\s+|\s+$/', io_safe_output($id))) {
|
||||
ui_print_error_message(__('Invalid user ID: leading or trailing blank spaces not allowed'));
|
||||
$is_err = true;
|
||||
$user_info = $values;
|
||||
$password_new = '';
|
||||
$password_confirm = '';
|
||||
$new_user = true;
|
||||
} else if ($password_new == '') {
|
||||
$is_err = true;
|
||||
ui_print_error_message(__('Passwords cannot be empty'));
|
||||
$user_info = $values;
|
||||
$password_new = '';
|
||||
$password_confirm = '';
|
||||
$new_user = true;
|
||||
} else if ($password_new != $password_confirm) {
|
||||
$is_err = true;
|
||||
ui_print_error_message(__('Passwords didn\'t match'));
|
||||
$user_info = $values;
|
||||
$password_new = '';
|
||||
|
@ -422,7 +427,7 @@ if ($create_user) {
|
|||
|
||||
db_pandora_audit(
|
||||
'User management',
|
||||
'Created user '.io_safe_input($id),
|
||||
'Created user '.io_safe_output($id),
|
||||
false,
|
||||
false,
|
||||
$info
|
||||
|
@ -465,7 +470,7 @@ if ($create_user) {
|
|||
|
||||
db_pandora_audit(
|
||||
'User management',
|
||||
'Added profile for user '.io_safe_input($id2),
|
||||
'Added profile for user '.io_safe_output($id2),
|
||||
false,
|
||||
false,
|
||||
'Profile: '.$profile2.' Group: '.$group2.' Tags: '.$tags
|
||||
|
@ -500,7 +505,7 @@ if ($update_user) {
|
|||
$values['lastname'] = (string) get_parameter('lastname');
|
||||
$values['email'] = (string) get_parameter('email');
|
||||
$values['phone'] = (string) get_parameter('phone');
|
||||
$values['comments'] = (string) get_parameter('comments');
|
||||
$values['comments'] = io_safe_input(strip_tags(io_safe_output((string) get_parameter('comments'))));
|
||||
$values['is_admin'] = get_parameter('is_admin', 0);
|
||||
$values['language'] = (string) get_parameter('language');
|
||||
$values['timezone'] = (string) get_parameter('timezone');
|
||||
|
@ -656,7 +661,7 @@ if ($update_user) {
|
|||
|
||||
db_pandora_audit(
|
||||
'User management',
|
||||
'Updated user '.io_safe_input($id),
|
||||
'Updated user '.io_safe_output($id),
|
||||
false,
|
||||
false,
|
||||
$info
|
||||
|
@ -724,7 +729,7 @@ if ($add_profile && empty($json_profile)) {
|
|||
|
||||
db_pandora_audit(
|
||||
'User management',
|
||||
'Added profile for user '.io_safe_input($id2),
|
||||
'Added profile for user '.io_safe_output($id2),
|
||||
false,
|
||||
false,
|
||||
'Profile: '.$profile2.' Group: '.$group2.' Tags: '.$tags
|
||||
|
@ -1143,7 +1148,7 @@ if ($meta) {
|
|||
$metaconsole_access_node .= html_print_checkbox('metaconsole_access_node', 1, $user_info['metaconsole_access_node'], true).'</div>';
|
||||
}
|
||||
|
||||
echo '<form id="user_profile_form" method="post" autocomplete="off">';
|
||||
echo '<form id="user_profile_form" name="user_profile_form" method="post" autocomplete="off" action="#">';
|
||||
|
||||
|
||||
if (!$id) {
|
||||
|
@ -1160,13 +1165,17 @@ if (is_metaconsole()) {
|
|||
$access_or_pagination = $size_pagination;
|
||||
}
|
||||
|
||||
if ($id != '' && !$is_err) {
|
||||
$div_user_info = '<div class="edit_user_info_left">'.$avatar.$user_id_create.'</div>
|
||||
<div class="edit_user_info_right">'.$user_id_update_view.$full_name.$new_pass.$new_pass_confirm.$global_profile.'</div>';
|
||||
} else {
|
||||
$div_user_info = '<div class="edit_user_info_left">'.$avatar.'</div>
|
||||
<div class="edit_user_info_right">'.$user_id_create.$user_id_update_view.$full_name.$new_pass.$new_pass_confirm.$global_profile.'</div>';
|
||||
}
|
||||
|
||||
echo '<div id="user_form">
|
||||
<div class="user_edit_first_row">
|
||||
<div class="edit_user_info white_box">
|
||||
<div class="edit_user_info_left">'.$avatar.$user_id_create.'</div>
|
||||
<div class="edit_user_info_right">'.$user_id_update_view.$full_name.$new_pass.$new_pass_confirm.$global_profile.'</div>
|
||||
</div>
|
||||
<div class="edit_user_info white_box">'.$div_user_info.'</div>
|
||||
<div class="edit_user_autorefresh white_box"><p style="font-weight:bold;">Extra info</p>'.$email.$phone.$not_login.$session_time.'</div>
|
||||
</div>
|
||||
<div class="user_edit_second_row white_box">
|
||||
|
@ -1195,30 +1204,44 @@ if (!empty($ehorus)) {
|
|||
|
||||
echo '</div>';
|
||||
|
||||
profile_print_profile_table($id);
|
||||
|
||||
echo '<div style="width: 100%" class="action-buttons">';
|
||||
if ($config['admin_can_add_user']) {
|
||||
html_print_csrf_hidden();
|
||||
if ($new_user) {
|
||||
html_print_input_hidden('create_user', 1);
|
||||
html_print_submit_button(__('Create'), 'crtbutton', false, 'class="sub wand"');
|
||||
} else {
|
||||
html_print_input_hidden('update_user', 1);
|
||||
html_print_submit_button(__('Update'), 'uptbutton', false, 'class="sub upd"');
|
||||
}
|
||||
}
|
||||
|
||||
echo '</div>';
|
||||
|
||||
html_print_input_hidden('json_profile', '');
|
||||
|
||||
echo '</div>';
|
||||
echo '</form>';
|
||||
|
||||
|
||||
profile_print_profile_table($id);
|
||||
|
||||
echo '<br />';
|
||||
|
||||
echo '<div style="width: 100%" class="action-buttons">';
|
||||
if ($config['admin_can_add_user']) {
|
||||
if ($new_user) {
|
||||
html_print_submit_button(__('Create'), 'crtbutton', false, 'class="sub wand" form="user_profile_form"');
|
||||
} else {
|
||||
html_print_submit_button(__('Update'), 'uptbutton', false, 'class="sub upd" form="user_profile_form"');
|
||||
}
|
||||
}
|
||||
|
||||
echo '</div>';
|
||||
|
||||
|
||||
echo '</div>';
|
||||
|
||||
enterprise_hook('close_meta_frame');
|
||||
$delete_image = html_print_input_image('del', 'images/cross.png', 1, '', true, ['onclick' => 'delete_profile(event, this)']);
|
||||
|
||||
|
||||
if (!is_metaconsole()) {
|
||||
?>
|
||||
|
||||
|
@ -1289,7 +1312,7 @@ $(document).ready (function () {
|
|||
$('#checkbox-ehorus_user_level_enabled').trigger('change');
|
||||
|
||||
var img_delete = '<?php echo $delete_image; ?>';
|
||||
var id_user = '<?php echo $id; ?>';
|
||||
var id_user = '<?php echo io_safe_output($id); ?>';
|
||||
var data = [];
|
||||
|
||||
$('input:image[name="add"]').click(function (e) {
|
||||
|
@ -1335,7 +1358,7 @@ $(document).ready (function () {
|
|||
e.preventDefault();
|
||||
var rows = $("#table_profiles tr").length;
|
||||
if (rows <= 3) {
|
||||
if (!confirm('<?php echo __('Deleting last profile'); ?>' + '. ' + '<?php echo __('Are you sure?'); ?>')) {
|
||||
if (!confirm('<?php echo __('Deleting last profile will delete this user'); ?>' + '. ' + '<?php echo __('Are you sure?'); ?>')) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -81,7 +81,7 @@ if ($delete_profile) {
|
|||
} else {
|
||||
db_pandora_audit(
|
||||
'Profile management',
|
||||
'Delete profile '.$profile['name']
|
||||
'Delete profile '.io_safe_output($profile['name'])
|
||||
);
|
||||
ui_print_success_message(__('Successfully deleted'));
|
||||
}
|
||||
|
@ -196,7 +196,7 @@ if ($update_profile) {
|
|||
|
||||
db_pandora_audit(
|
||||
'User management',
|
||||
'Update profile '.$name,
|
||||
'Update profile '.io_safe_output($name),
|
||||
false,
|
||||
false,
|
||||
$info
|
||||
|
@ -247,7 +247,7 @@ if ($create_profile) {
|
|||
|
||||
db_pandora_audit(
|
||||
'User management',
|
||||
'Created profile '.$name,
|
||||
'Created profile '.io_safe_output($name),
|
||||
false,
|
||||
false,
|
||||
$info
|
||||
|
|
|
@ -171,7 +171,7 @@ if (isset($_GET['user_del'])) {
|
|||
if ($result) {
|
||||
db_pandora_audit(
|
||||
'User management',
|
||||
__('Deleted user %s', io_safe_input($id_user))
|
||||
__('Deleted user %s', io_safe_output($id_user))
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -366,16 +366,12 @@ if (!defined('METACONSOLE')) {
|
|||
}
|
||||
|
||||
$group_um = users_get_groups_UM($config['id_user']);
|
||||
if (isset($group_um[0])) {
|
||||
$group_um_string = implode(',', array_keys(users_get_groups($config['id_user'], 'um', true)));
|
||||
} else {
|
||||
$group_um_string = implode(',', array_keys($group_um));
|
||||
}
|
||||
|
||||
|
||||
$info1 = [];
|
||||
|
||||
$user_is_admin = users_is_admin();
|
||||
// Is admin or has group permissions all.
|
||||
if (users_is_admin() || isset($group_um[0])) {
|
||||
if ($user_is_admin || isset($group_um[0])) {
|
||||
$info1 = get_users($order);
|
||||
} else {
|
||||
foreach ($group_um as $group => $value) {
|
||||
|
@ -434,13 +430,13 @@ $rowPair = true;
|
|||
$iterator = 0;
|
||||
$cont = 0;
|
||||
foreach ($info as $user_id => $user_info) {
|
||||
if (!users_is_admin() && $user_info['is_admin']) {
|
||||
if (!$user_is_admin && $user_info['is_admin']) {
|
||||
// If user is not admin then don't display admin users.
|
||||
continue;
|
||||
}
|
||||
|
||||
// User profiles.
|
||||
if (users_is_admin() || $user_id == $config['id_user'] || isset($group_um[0])) {
|
||||
if ($user_is_admin || $user_id == $config['id_user'] || isset($group_um[0])) {
|
||||
$user_profiles = db_get_all_rows_field_filter('tusuario_perfil', 'id_usuario', $user_id);
|
||||
} else {
|
||||
$user_profiles_aux = users_get_user_profile($user_id);
|
||||
|
@ -492,7 +488,7 @@ foreach ($info as $user_id => $user_info) {
|
|||
|
||||
$iterator++;
|
||||
|
||||
if (users_is_admin() || $config['id_user'] == $user_info['id_user'] || (!$user_info['is_admin'] && (!isset($user_info['edit']) || isset($group_um[0]) || (isset($user_info['edit']) && $user_info['edit'])))) {
|
||||
if ($user_is_admin || $config['id_user'] == $user_info['id_user'] || (!$user_info['is_admin'] && (!isset($user_info['edit']) || isset($group_um[0]) || (isset($user_info['edit']) && $user_info['edit'])))) {
|
||||
$data[0] = '<a href="index.php?sec='.$sec.'&sec2=godmode/users/configure_user&pure='.$pure.'&id='.$user_id.'">'.$user_id.'</a>';
|
||||
} else {
|
||||
$data[0] = $user_id;
|
||||
|
@ -560,7 +556,7 @@ foreach ($info as $user_id => $user_info) {
|
|||
|
||||
$table->cellclass[][6] = 'action_buttons';
|
||||
$data[6] = '';
|
||||
if (users_is_admin() || $config['id_user'] == $user_info['id_user'] || isset($group_um[0]) || (!$user_info['is_admin'] && (!isset($user_info['edit']) || (isset($user_info['edit']) && $user_info['edit'])))) {
|
||||
if ($user_is_admin || $config['id_user'] == $user_info['id_user'] || isset($group_um[0]) || (!$user_info['is_admin'] && (!isset($user_info['edit']) || (isset($user_info['edit']) && $user_info['edit'])))) {
|
||||
if (!isset($user_info['not_delete'])) {
|
||||
if ($user_info['disabled'] == 0) {
|
||||
$data[6] = '<a href="index.php?sec='.$sec.'&sec2=godmode/users/user_list&disable_user=1&pure='.$pure.'&id='.$user_info['id_user'].'">'.html_print_image('images/lightbulb.png', true, ['title' => __('Disable')]).'</a>';
|
||||
|
|
After Width: | Height: | Size: 286 KiB |
After Width: | Height: | Size: 2.6 MiB |
After Width: | Height: | Size: 117 KiB |
After Width: | Height: | Size: 239 KiB |
After Width: | Height: | Size: 239 KiB |
After Width: | Height: | Size: 334 KiB |
After Width: | Height: | Size: 146 KiB |
After Width: | Height: | Size: 195 KiB |
After Width: | Height: | Size: 789 KiB |
After Width: | Height: | Size: 21 KiB |
After Width: | Height: | Size: 248 KiB |
After Width: | Height: | Size: 176 KiB |
After Width: | Height: | Size: 301 KiB |