2020-10-13 22:57:39 +00:00
< ? php
2022-09-11 10:18:43 +00:00
/* Copyright ( C ) 2013 - 2022 Laurent Destailleur < eldy @ users . sourceforge . net >
2026-02-12 15:29:11 +00:00
* Copyright ( C ) 2024 - 2026 MDW < mdeweerd @ users . noreply . github . com >
2025-10-17 00:31:07 +00:00
* Copyright ( C ) 2024 - 2025 Frédéric France < frederic . france @ free . fr >
2020-10-13 22:57:39 +00:00
*
* 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 3 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 , see < https :// www . gnu . org / licenses />.
*/
/**
* \file htdocs / admin / system / security . php
* \brief Page to show Security information
*/
2022-09-07 18:08:59 +00:00
// Load Dolibarr environment
2020-10-13 22:57:39 +00:00
require '../../main.inc.php' ;
2024-11-04 22:53:20 +00:00
/**
* @ var Conf $conf
* @ var DoliDB $db
* @ var HookManager $hookmanager
2026-06-21 18:16:21 +00:00
* @ var Societe $mysoc
2024-11-04 22:53:20 +00:00
* @ var Translate $langs
* @ var User $user
2024-12-14 20:15:27 +00:00
*
2025-06-19 10:50:41 +00:00
* @ var string [] $arrayofstreamtodisable // $arrayofstreamtodisable is defined into filefunc.inc.php
* @ var string $conffile // $conffile is defined into filefunc.inc.php
* @ var string $dolibarr_main_prod
* @ var string $dolibarr_main_document_root
2025-11-25 17:18:02 +00:00
* @ var string $dolibarr_main_restrict_os_commands
* @ var string $dolibarr_main_restrict_eval_methods
* @ var string $dolibarr_main_restrict_ip
* @ var string $dolibarr_main_db_pass
* @ var string $dolibarr_main_db_encrypted_pass
2026-02-11 20:07:06 +00:00
* @ var string $dolibarr_website_allow_custom_php
2025-11-26 23:05:04 +00:00
* @ var string $dolibarr_nocsrfcheck
2026-02-11 20:07:06 +00:00
* @ var string | string [] $dolibarr_main_stream_to_disable
2024-11-04 22:53:20 +00:00
*/
2026-02-12 20:43:54 +00:00
require_once DOL_DOCUMENT_ROOT . '/core/lib/admin.lib.php' ;
2025-11-12 18:45:09 +00:00
require_once DOL_DOCUMENT_ROOT . '/core/lib/memory.lib.php' ;
require_once DOL_DOCUMENT_ROOT . '/core/lib/date.lib.php' ;
require_once DOL_DOCUMENT_ROOT . '/core/lib/files.lib.php' ;
require_once DOL_DOCUMENT_ROOT . '/core/lib/geturl.lib.php' ;
require_once DOL_DOCUMENT_ROOT . '/core/lib/functions2.lib.php' ;
require_once DOL_DOCUMENT_ROOT . '/core/lib/security2.lib.php' ;
require_once DOL_DOCUMENT_ROOT . '/core/class/events.class.php' ;
2024-11-04 22:53:20 +00:00
2020-10-13 22:57:39 +00:00
// Load translation files required by the page
2025-08-27 00:26:38 +00:00
$langs -> loadLangs ( array ( " install " , " other " , " admin " , " errors " , " website " ));
2020-10-13 22:57:39 +00:00
2021-02-26 21:04:03 +00:00
if ( ! $user -> admin ) {
2020-10-13 22:57:39 +00:00
accessforbidden ();
2021-02-26 21:04:03 +00:00
}
2020-10-13 22:57:39 +00:00
2021-02-26 21:04:03 +00:00
if ( GETPOST ( 'action' , 'aZ09' ) == 'donothing' ) {
2020-10-13 22:57:39 +00:00
exit ;
}
2022-12-22 12:21:46 +00:00
$execmethod = getDolGlobalInt ( 'MAIN_EXEC_USE_POPEN' , 1 );
2021-05-12 17:55:16 +00:00
2020-10-13 22:57:39 +00:00
/*
* View
*/
2023-07-25 10:38:27 +00:00
$form = new Form ( $db );
2024-06-08 15:03:08 +00:00
llxHeader ( '' , '' , '' , '' , 0 , 0 , '' , '' , '' , 'mod-admin page-system_security' );
2020-10-13 22:57:39 +00:00
print load_fiche_titre ( $langs -> trans ( " Security " ), '' , 'title_setup' );
2026-06-15 21:00:35 +00:00
print '<div class="info">' ;
print '<span class="">' . $langs -> trans ( " YouMayFindSecurityAdviceHere " , 'hhttps://wiki.dolibarr.org/index.php/Security_information' ) . '</span>' ;
2022-12-22 12:21:46 +00:00
print ' ' ;
print '<a href="' . $_SERVER [ " PHP_SELF " ] . '">' ;
print img_picto ( $langs -> trans ( " Reload " ), 'refresh' ) . ' ' ;
print $langs -> trans ( " Reload " );
print '</a>' ;
2026-06-15 21:00:35 +00:00
print '</div>' ;
2020-10-27 14:06:16 +00:00
2024-05-31 12:59:16 +00:00
print '<br>' ;
2020-11-12 18:15:44 +00:00
print load_fiche_titre ( $langs -> trans ( " PHPSetup " ), '' , 'folder' );
2020-10-13 22:57:39 +00:00
2024-05-31 12:59:16 +00:00
print '<div class="divsection wordbreak">' ;
2023-12-02 14:18:10 +00:00
2020-10-27 14:06:16 +00:00
// Get version of PHP
2020-10-13 22:57:39 +00:00
$phpversion = version_php ();
2021-03-16 15:02:15 +00:00
print " <strong>PHP</strong>: " . $langs -> trans ( " Version " ) . " : " . $phpversion ;
if ( function_exists ( 'php_ini_loaded_file' )) {
$inipath = php_ini_loaded_file ();
print " - <strong>INI</strong>: " . $inipath ;
}
print " <br> \n " ;
2020-10-13 22:57:39 +00:00
2021-05-30 15:10:38 +00:00
// Get version of web server
2021-05-30 15:04:12 +00:00
print " <br><strong>Web server - " . $langs -> trans ( " Version " ) . " </strong>: " . $_SERVER [ " SERVER_SOFTWARE " ] . " <br> \n " ;
print '<strong>' . $langs -> trans ( " DataRootServer " ) . " </strong>: " . DOL_DATA_ROOT . " <br> \n " ;
// Web user group by default
$labeluser = dol_getwebuser ( 'user' );
$labelgroup = dol_getwebuser ( 'group' );
if ( $labeluser && $labelgroup ) {
print '<strong>' . $langs -> trans ( " WebUserGroup " ) . " (env vars)</strong> : " . $labeluser . ':' . $labelgroup ;
if ( function_exists ( 'posix_geteuid' ) && function_exists ( 'posix_getpwuid' )) {
$arrayofinfoofuser = posix_getpwuid ( posix_geteuid ());
print ' <span class="opacitymedium">(POSIX ' . $arrayofinfoofuser [ 'name' ] . ':' . $arrayofinfoofuser [ 'gecos' ] . ':' . $arrayofinfoofuser [ 'dir' ] . ':' . $arrayofinfoofuser [ 'shell' ] . ')</span><br>' . " \n " ;
}
}
// Web user group real (detected by 'id' external command)
if ( function_exists ( 'exec' )) {
2023-12-04 10:41:14 +00:00
$arrayout = array ();
$varout = 0 ;
2021-05-30 15:04:12 +00:00
exec ( 'id' , $arrayout , $varout );
if ( empty ( $varout )) { // Test command is ok. Work only on Linux OS.
Qual: Apply automatic phan fixes (deprecations, unneeded imports) (#28154)
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
2024-02-13 20:46:12 +00:00
print '<strong>' . $langs -> trans ( " WebUserGroup " ) . " (real, 'id' command)</strong> : " . implode ( ',' , $arrayout ) . " <br> \n " ;
2021-05-30 15:04:12 +00:00
}
}
2020-10-13 22:57:39 +00:00
print '<br>' ;
2025-06-19 10:50:41 +00:00
print ( ini_get ( 'session.use_strict_mode' ) ? img_picto ( '' , 'tick' , 'class="pictofixedwidth"' ) : img_warning ( '' , '' , 'pictofixedwidth nopaddingleft' )) . " <strong>PHP session.use_strict_mode</strong> = " . ( ini_get ( 'session.use_strict_mode' ) ? ini_get ( 'session.use_strict_mode' ) : yn ( 0 )) . ' <span class="opacitymedium">(' . $langs -> trans ( " RecommendedValueIs " , '1' ) . " )</span><br> \n " ;
print ( ini_get ( 'session.use_only_cookies' ) ? img_picto ( '' , 'tick' , 'class="pictofixedwidth"' ) : img_warning ( '' , '' , 'pictofixedwidth nopaddingleft' )) . " <strong>PHP session.use_only_cookies</strong> = " . ( ini_get ( 'session.use_only_cookies' ) ? ini_get ( 'session.use_only_cookies' ) : yn ( 0 )) . ' <span class="opacitymedium">(' . $langs -> trans ( " RecommendedValueIs " , '1' ) . " )</span><br> \n " ;
print ( ini_get ( 'session.cookie_httponly' ) ? img_picto ( '' , 'tick' , 'class="pictofixedwidth"' ) : img_warning ( '' , '' , 'pictofixedwidth nopaddingleft' )) . " <strong>PHP session.cookie_httponly</strong> = " . ( ini_get ( 'session.cookie_httponly' ) ? ini_get ( 'session.cookie_httponly' ) : '' ) . ' <span class="opacitymedium">(' . $langs -> trans ( " RecommendedValueIs " , '1' ) . " )</span><br> \n " ;
print ( ini_get ( 'session.cookie_samesite' ) ? img_picto ( '' , 'tick' , 'class="pictofixedwidth"' ) : img_warning ( '' , '' , 'pictofixedwidth nopaddingleft' )) . " <strong>PHP session.cookie_samesite</strong> = " . ( ini_get ( 'session.cookie_samesite' ) ? ini_get ( 'session.cookie_samesite' ) : 'None' );
2021-08-21 22:44:51 +00:00
if ( ! ini_get ( 'session.cookie_samesite' ) || ini_get ( 'session.cookie_samesite' ) == 'Lax' ) {
print ' <span class="opacitymedium">(' . $langs -> trans ( " RecommendedValueIs " , 'Lax' ) . " )</span> " ;
} elseif ( ini_get ( 'session.cookie_samesite' ) == 'Strict' ) {
print ' ' . img_warning () . ' <span class="opacitymedium">' . $langs -> trans ( " WarningPaypalPaymentNotCompatibleWithStrict " ) . " </span> " ;
}
print " <br> \n " ;
2024-06-05 12:53:38 +00:00
2025-06-19 10:50:41 +00:00
print ( ini_get ( 'open_basedir' ) ? img_picto ( '' , 'tick' , 'class="pictofixedwidth"' ) : img_warning ( '' , '' , 'pictofixedwidth nopaddingleft' )) . " <strong>PHP open_basedir</strong> = " . ( ini_get ( 'open_basedir' ) ? ini_get ( 'open_basedir' ) : yn ( 0 ) . ' <span class="opacitymedium">(' . $langs -> trans ( " RecommendedValueIs " , $langs -> transnoentitiesnoconv ( " ARestrictedPath " ) . ', ' . $langs -> transnoentitiesnoconv ( " Example " ) . ': ' . $_SERVER [ " DOCUMENT_ROOT " ] . ',' . DOL_DATA_ROOT ) . ')</span>' ) . " <br> \n " ;
2024-06-05 12:53:38 +00:00
2025-06-19 10:50:41 +00:00
print (( empty ( ini_get ( 'short_open_tag' )) || ini_get ( 'short_open_tag' ) == 'Off' ) ? img_picto ( '' , 'tick' , 'class="pictofixedwidth"' ) : img_warning ( '' , '' , 'pictofixedwidth nopaddingleft' )) . " <strong>PHP short_open_tag</strong> = " . (( empty ( ini_get ( 'short_open_tag' )) || ini_get ( 'short_open_tag' ) == 'Off' ) ? yn ( 0 ) : yn ( 1 )) . ' <span class="opacitymedium">(' . $langs -> trans ( " RecommendedValueIs " , $langs -> transnoentitiesnoconv ( " No " )) . ')</span>' . " <br> \n " ;
2024-06-05 12:53:38 +00:00
2025-06-19 10:50:41 +00:00
print ( ini_get ( 'allow_url_fopen' ) ? img_picto ( $langs -> trans ( " YouShouldSetThisToOff " ), 'warning' , 'class="pictofixedwidth nopaddingleft"' ) : img_picto ( '' , 'tick' , 'class="pictofixedwidth"' )) . " <strong>PHP allow_url_fopen</strong> = " . ( ini_get ( 'allow_url_fopen' ) ? ini_get ( 'allow_url_fopen' ) : yn ( 0 )) . ' <span class="opacitymedium">(' . $langs -> trans ( " RecommendedValueIs " , $langs -> transnoentitiesnoconv ( " No " )) . " , except if Yes is required by some external modules)</span><br> \n " ;
2024-06-05 12:53:38 +00:00
2025-06-19 10:50:41 +00:00
print ( ini_get ( 'allow_url_include' ) ? img_picto ( $langs -> trans ( " YouShouldSetThisToOff " ), 'warning' , 'class="pictofixedwidth nopaddingleft"' ) : img_picto ( '' , 'tick' , 'class="pictofixedwidth"' )) . " <strong>PHP allow_url_include</strong> = " . ( ini_get ( 'allow_url_include' ) ? ini_get ( 'allow_url_include' ) : yn ( 0 )) . ' <span class="opacitymedium">(' . $langs -> trans ( " RecommendedValueIs " , $langs -> transnoentitiesnoconv ( " No " )) . " )</span><br> \n " ;
2021-08-07 11:59:07 +00:00
//print "<strong>PHP safe_mode</strong> = ".(ini_get('safe_mode') ? ini_get('safe_mode') : yn(0)).' <span class="opacitymedium">'.$langs->trans("Deprecated")." (removed in PHP 5.4)</span><br>\n";
2024-06-05 12:53:38 +00:00
2024-08-18 13:39:02 +00:00
if ( getDolGlobalString ( 'MAIN_SECURITY_SHOW_MORE_INFO' )) {
print " <strong>PHP auto_prepend_file</strong> = " . ( ini_get ( 'auto_prepend_file' ) ? ini_get ( 'auto_prepend_file' ) : '' ) . " </span><br> \n " ;
print " <strong>PHP sendmail_path</strong> = " . ( ini_get ( 'sendmail_path' ) ? ini_get ( 'sendmail_path' ) : '' ) . " </span><br> \n " ;
}
2025-06-19 10:50:41 +00:00
print '<br>' ;
print " <strong>PHP disable_functions</strong>: " ;
2026-02-11 20:07:06 +00:00
// The original value is...
$disablefunctionorign = '' ;
$phparray = phpinfo_array ();
foreach ( $phparray as $key => $value ) {
foreach ( $value as $keyparam => $keyvalue ) {
if ( $keyparam == 'disable_functions' ) {
if ( ! empty ( $keyvalue [ 'master' ])) {
$disablefunctionorign = $keyvalue [ 'master' ];
break ;
}
}
}
}
/*
if ( empty ( $disablefunctionorign )) {
$disablefunctionorign = ini_get ( 'disable_functions' ); // Not always the real value
}
*/
$arrayoffunctionsdisabled = explode ( ',' , $disablefunctionorign );
2023-12-21 18:39:02 +00:00
$arrayoffunctionstodisable = explode ( ',' , 'dl,apache_note,apache_setenv,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,show_source,virtual' );
2023-07-25 10:30:09 +00:00
//$arrayoffunctionstodisable[] = 'stream_wrapper_restore';
//$arrayoffunctionstodisable[] = 'stream_wrapper_register';
2021-05-12 17:55:16 +00:00
if ( $execmethod == 1 ) {
$arrayoffunctionstodisable2 = explode ( ',' , 'passthru,shell_exec,system,proc_open,popen' );
$functiontokeep = 'exec' ;
} else {
$arrayoffunctionstodisable2 = explode ( ',' , 'exec,passthru,shell_exec,system,proc_open' );
$functiontokeep = 'popen' ;
}
2021-04-06 11:09:00 +00:00
$i = 0 ;
foreach ( $arrayoffunctionsdisabled as $functionkey ) {
if ( $i > 0 ) {
print ', ' ;
}
print '<span class="opacitymedium">' . $functionkey . '</span>' ;
$i ++ ;
}
2021-03-16 15:02:15 +00:00
print " <br> \n " ;
$todisabletext = '' ;
2021-04-06 11:09:00 +00:00
$i = 0 ;
2021-03-16 15:02:15 +00:00
foreach ( $arrayoffunctionstodisable as $functiontodisable ) {
2024-08-27 04:51:12 +00:00
if ( \function_exists ( $functiontodisable )) {
2021-04-06 11:09:00 +00:00
if ( $i > 0 ) {
$todisabletext .= ', ' ;
}
2024-07-12 23:09:22 +00:00
$todisabletext .= ' <span class="opacitymedium">' . $functiontodisable . '</span>' ;
2021-04-06 11:09:00 +00:00
$i ++ ;
2021-03-16 15:02:15 +00:00
}
}
if ( $todisabletext ) {
2025-06-19 10:50:41 +00:00
print img_picto ( '' , 'warning' , 'class="pictofixedwidth nopaddingleft"' ) . $langs -> trans ( " YouShouldDisablePHPFunctions " ) . ': ' . $todisabletext ;
2021-03-16 15:02:15 +00:00
print '<br>' ;
}
$todisabletext = '' ;
2021-04-06 11:09:00 +00:00
$i = 0 ;
2021-03-16 15:02:15 +00:00
foreach ( $arrayoffunctionstodisable2 as $functiontodisable ) {
2024-08-27 04:51:12 +00:00
if ( \function_exists ( $functiontodisable )) {
2021-04-06 11:09:00 +00:00
if ( $i > 0 ) {
$todisabletext .= ', ' ;
}
2024-07-12 23:09:22 +00:00
$todisabletext .= ' <span class="opacitymedium">' . $functiontodisable . '</span>' ;
2021-04-06 11:09:00 +00:00
$i ++ ;
2021-03-16 15:02:15 +00:00
}
}
if ( $todisabletext ) {
2025-06-19 10:50:41 +00:00
print img_picto ( '' , 'warning' , 'class="pictofixedwidth nopaddingleft"' ) . $langs -> trans ( " IfCLINotRequiredYouShouldDisablePHPFunctions " ) . ': ' . $todisabletext ;
2021-03-16 15:02:15 +00:00
print '<br>' ;
}
2025-10-20 13:12:35 +00:00
if ( ! function_exists ( $functiontokeep )) {
2024-07-12 23:09:22 +00:00
print img_picto ( $langs -> trans ( " PHPFunctionsRequiredForCLI " ), 'warning' , 'class="pictofixedwidth"' );
} else {
print img_picto ( '' , 'tick' , 'class="pictofixedwidth"' );
2021-05-12 17:55:16 +00:00
}
2024-07-12 23:09:22 +00:00
print $langs -> trans ( " PHPFunctionsRequiredForCLI " ) . ': ' ;
2025-10-20 13:12:35 +00:00
print '<span class="opacitymedium" title="exec or popen can be used depending on MAIN_EXEC_USE_POPEN option, currently to ' . getDolGlobalInt ( 'MAIN_EXEC_USE_POPEN' ) . '">' . $functiontokeep . '</span>' ;
2021-05-12 17:55:16 +00:00
print '<br>' ;
2024-06-01 10:41:19 +00:00
print '<br>' ;
// JSON
$loadedExtensions = array_map ( 'strtolower' , get_loaded_extensions ( false ));
2024-06-01 13:12:35 +00:00
$test = ! in_array ( 'json' , $loadedExtensions );
2024-07-11 23:43:53 +00:00
if ( $test || function_exists ( 'dol_json_decode' )) {
2025-06-19 10:50:41 +00:00
print img_picto ( '' , 'error' , 'class="pictofixedwidth nopaddingleft"' );
} else {
print img_picto ( '' , 'tick' , 'class="pictofixedwidth"' );
}
print '<strong>JSON</strong>: ' ;
if ( $test || function_exists ( 'dol_json_decode' )) {
print $langs -> trans ( " NotInstalled " ) . ' - ' . $langs -> trans ( " VulnerableToRCEAttack " );
2024-06-01 10:41:19 +00:00
} else {
2025-06-19 10:50:41 +00:00
print $langs -> trans ( " Available " ) . ' <span class="opacitymedium">(PHP native so not emulated, safe)</span>' ;
2024-06-01 10:41:19 +00:00
}
print '<br>' ;
2020-10-13 22:57:39 +00:00
2020-11-05 09:03:53 +00:00
// XDebug
2021-10-23 19:53:04 +00:00
$test = ! function_exists ( 'xdebug_is_enabled' ) && ! extension_loaded ( 'xdebug' );
2021-02-26 21:04:03 +00:00
if ( $test ) {
2025-06-19 10:50:41 +00:00
print img_picto ( '' , 'tick' , 'class="pictofixedwidth"' );
} else {
print img_picto ( '' , 'warning' , 'class="pictofixedwidth nopaddingleft"' );
}
print '<strong>XDebug</strong>: ' ;
if ( $test ) {
print $langs -> trans ( " NotInstalled " ) . ' - ' . $langs -> trans ( " NotRiskOfLeakWithThis " );
2021-02-26 21:04:03 +00:00
} else {
2025-06-19 10:50:41 +00:00
print $langs -> trans ( " ModuleActivatedMayExposeInformation " , $langs -> transnoentities ( " XDebug " ));
2020-11-05 09:03:53 +00:00
print ' - ' . $langs -> trans ( " MoreInformation " ) . ' <a href="' . DOL_URL_ROOT . '/admin/system/xdebug.php">XDebug admin page</a>' ;
}
2023-12-02 14:18:10 +00:00
print '</div>' ;
2020-11-05 09:03:53 +00:00
print '<br>' ;
2020-10-13 22:57:39 +00:00
2025-06-19 10:50:41 +00:00
// OS Setup - Permissions on files
2020-10-13 22:57:39 +00:00
print '<br>' ;
2021-04-30 09:45:45 +00:00
print load_fiche_titre ( $langs -> trans ( " OSSetup " ) . ' - ' . $langs -> trans ( " PermissionsOnFiles " ), '' , 'folder' );
2020-10-13 22:57:39 +00:00
2024-05-31 12:59:16 +00:00
print '<div class="divsection wordbreak">' ;
2023-12-02 14:18:10 +00:00
2020-11-04 15:07:59 +00:00
print '<strong>' . $langs -> trans ( " PermissionsOnFilesInWebRoot " ) . '</strong>: ' ;
2021-08-06 16:35:16 +00:00
$arrayoffilesinroot = dol_dir_list ( DOL_DOCUMENT_ROOT , 'all' , 1 , '' , array ( '\/custom' ), 'name' , SORT_ASC , 4 , 1 , '' , 1 );
2021-04-06 11:56:33 +00:00
$fileswithwritepermission = array ();
foreach ( $arrayoffilesinroot as $fileinroot ) {
2021-05-20 15:02:22 +00:00
// Test if there is at least one write permission file. If yes, add the entry into array $fileswithwritepermission
2021-05-20 15:40:44 +00:00
if ( isset ( $fileinroot [ 'perm' ]) && ( $fileinroot [ 'perm' ] & 0222 )) {
2021-04-06 11:56:33 +00:00
$fileswithwritepermission [] = $fileinroot [ 'relativename' ];
}
}
if ( empty ( $fileswithwritepermission )) {
print img_picto ( '' , 'tick' ) . ' ' . $langs -> trans ( " NoWritableFilesFoundIntoRootDir " );
} else {
print img_warning () . ' ' . $langs -> trans ( " SomeFilesOrDirInRootAreWritable " );
2025-06-19 10:50:41 +00:00
print ' - <span class="classlink cursorpointer" onclick="javascript: console.log(\'Toggle examples\'); jQuery(\'#examplewritablefiles\').toggle();">' . $langs -> trans ( " Examples " ) . '</span>' ;
print '<span id="examplewritablefiles" class="hideobject"><br>' . $langs -> trans ( " Example " ) . ': ' ;
2021-04-06 11:56:33 +00:00
$i = 0 ;
foreach ( $fileswithwritepermission as $filewithwritepermission ) {
if ( $i > 0 ) {
print ', ' ;
}
print '<span class="opacitymedium">' . $filewithwritepermission . '</span>' ;
if ( $i > 20 ) {
print ' ...' ;
break ;
}
$i ++ ;
}
2025-06-19 10:50:41 +00:00
print '</span>' ;
2021-04-06 11:56:33 +00:00
}
2020-10-13 22:57:39 +00:00
print '<br>' ;
2021-07-29 21:47:59 +00:00
print '<br>' ;
2020-11-04 15:07:59 +00:00
2021-02-02 08:44:51 +00:00
print '<strong>' . $langs -> trans ( " PermissionsOnFile " , $conffile ) . '</strong>: ' ; // $conffile is defined into filefunc.inc.php
$perms = fileperms ( $dolibarr_main_document_root . '/' . $conffile );
if ( $perms ) {
if (( $perms & 0x0004 ) || ( $perms & 0x0002 )) {
print img_warning () . ' ' . $langs -> trans ( " ConfFileIsReadableOrWritableByAnyUsers " );
2021-03-16 15:02:15 +00:00
// Web user group by default
$labeluser = dol_getwebuser ( 'user' );
$labelgroup = dol_getwebuser ( 'group' );
print ' ' . $langs -> trans ( " User " ) . ': ' . $labeluser . ':' . $labelgroup ;
if ( function_exists ( 'posix_geteuid' ) && function_exists ( 'posix_getpwuid' )) {
$arrayofinfoofuser = posix_getpwuid ( posix_geteuid ());
print ' <span class="opacitymedium">(POSIX ' . $arrayofinfoofuser [ 'name' ] . ':' . $arrayofinfoofuser [ 'gecos' ] . ':' . $arrayofinfoofuser [ 'dir' ] . ':' . $arrayofinfoofuser [ 'shell' ] . ')</span>' ;
}
2021-02-02 08:44:51 +00:00
} else {
print img_picto ( '' , 'tick' );
}
} else {
print img_warning () . ' ' . $langs -> trans ( " FailedToReadFile " , $conffile );
}
2020-10-13 22:57:39 +00:00
print '<br>' ;
2021-07-29 21:47:59 +00:00
print '<br>' ;
$installlock = DOL_DATA_ROOT . '/install.lock' ;
2023-03-21 00:43:09 +00:00
$upgradeunlock = DOL_DATA_ROOT . '/upgrade.unlock' ;
$installmoduleslock = DOL_DATA_ROOT . '/installmodules.lock' ;
// Is install (upgrade) locked
2025-06-19 10:50:41 +00:00
$test = file_exists ( $installlock );
2021-07-29 21:47:59 +00:00
print '<strong>' . $langs -> trans ( " DolibarrSetup " ) . '</strong>: ' ;
2025-06-19 10:50:41 +00:00
if ( $test ) {
2023-03-21 00:43:09 +00:00
if ( file_exists ( $upgradeunlock )) {
print img_picto ( '' , 'tick' ) . ' ' . $langs -> trans ( " InstallLockedBy " , $installlock );
} else {
print img_picto ( '' , 'tick' ) . ' ' . $langs -> trans ( " InstallAndUpgradeLockedBy " , $installlock );
}
2021-07-29 21:47:59 +00:00
} else {
print img_warning () . ' ' . $langs -> trans ( " WarningLockFileDoesNotExists " , DOL_DATA_ROOT );
}
2024-09-02 20:39:42 +00:00
print '<br>' ;
2021-07-29 21:47:59 +00:00
print '<br>' ;
2020-10-13 22:57:39 +00:00
2023-03-21 00:43:09 +00:00
// Is upgrade unlocked
if ( file_exists ( $installlock )) { // If install not locked, no need to show this.
if ( file_exists ( $upgradeunlock )) {
print '<strong>' . $langs -> trans ( " DolibarrUpgrade " ) . '</strong>: ' ;
2024-03-06 00:40:06 +00:00
print img_warning () . ' ' . $langs -> trans ( " WarningUpgradeHasBeenUnlocked " , $upgradeunlock );
2023-03-21 00:43:09 +00:00
print '<br>' ;
2024-09-02 20:39:42 +00:00
print '<br>' ;
2023-03-21 00:43:09 +00:00
}
}
// Is addon install locked ?
2025-06-19 10:50:41 +00:00
$test = file_exists ( $installmoduleslock );
2023-03-21 00:43:09 +00:00
print '<strong>' . $langs -> trans ( " DolibarrAddonInstall " ) . '</strong>: ' ;
2025-06-19 10:50:41 +00:00
if ( $test ) {
2023-03-21 00:43:09 +00:00
print img_picto ( '' , 'tick' ) . ' ' . $langs -> trans ( " InstallAndUpgradeLockedBy " , $installmoduleslock );
} else {
print $langs -> trans ( " InstallOfAddonIsNotBlocked " , DOL_DATA_ROOT );
}
2023-12-02 14:18:10 +00:00
print '</div>' ;
2023-03-21 00:43:09 +00:00
2021-08-06 16:35:16 +00:00
2024-05-31 12:59:16 +00:00
2021-04-30 09:45:45 +00:00
// File conf.php
2020-10-13 22:57:39 +00:00
2020-11-04 15:07:59 +00:00
print '<br>' ;
2021-04-30 09:45:45 +00:00
print '<br>' ;
print load_fiche_titre ( $langs -> trans ( " ConfigurationFile " ) . ' (' . $conffile . ')' , '' , 'folder' );
2020-10-13 22:57:39 +00:00
2024-05-31 12:59:16 +00:00
print '<div class="divsection wordbreak">' ;
2021-06-09 11:56:03 +00:00
print '<strong>$dolibarr_main_prod</strong>: ' . ( $dolibarr_main_prod ? $dolibarr_main_prod : '0' );
2021-04-30 09:45:45 +00:00
if ( empty ( $dolibarr_main_prod )) {
2023-12-07 13:56:06 +00:00
print ' ' . img_picto ( '' , 'warning' ) . ' ' . $langs -> trans ( " IfYouAreOnAProductionSetThis " , 1 );
2020-10-13 22:57:39 +00:00
}
print '<br>' ;
2021-04-30 09:45:45 +00:00
if ( ! empty ( $dolibarr_nocsrfcheck )) {
2026-02-11 20:07:06 +00:00
print '<strong>$dolibarr_nocsrfcheck</strong>: ' . ( empty ( $dolibarr_nocsrfcheck ) ? '0' : $dolibarr_nocsrfcheck );
2023-12-07 13:56:06 +00:00
print ' ' . img_picto ( '' , 'error' ) . ' ' . $langs -> trans ( " IfYouAreOnAProductionSetThis " , 0 );
2026-02-11 20:07:06 +00:00
print '<br>' ;
2020-10-13 22:57:39 +00:00
}
2021-04-30 09:45:45 +00:00
print '<strong>$dolibarr_main_restrict_ip</strong>: ' ;
if ( empty ( $dolibarr_main_restrict_ip )) {
2024-07-12 23:09:22 +00:00
print $langs -> trans ( " None " );
print ' <span class="opacitymedium">(' . $langs -> trans ( " RecommendedValueIs " , $langs -> transnoentitiesnoconv ( " StaticIPsOfUsers " )) . ')</span>' ;
2022-04-06 19:14:35 +00:00
} else {
print $dolibarr_main_restrict_ip ;
2021-04-30 09:45:45 +00:00
}
2022-04-06 19:14:35 +00:00
print '<br>' ;
2021-06-09 11:02:17 +00:00
2026-02-11 20:07:06 +00:00
2022-04-06 19:14:35 +00:00
print '<strong>$dolibarr_main_restrict_os_commands</strong>: ' ;
if ( empty ( $dolibarr_main_restrict_os_commands )) {
print $langs -> trans ( " None " );
} else {
print $dolibarr_main_restrict_os_commands ;
}
2026-02-11 20:07:06 +00:00
print ' <span class="opacitymedium">(' . $langs -> trans ( " RecommendedValueIs " , 'mariadb-dump, mariadb, mysqldump, mysql, pg_dump, pg_restore, clamdscan' ) . ')</span>' ;
2021-04-30 09:45:45 +00:00
print '<br>' ;
2026-02-11 20:07:06 +00:00
2025-11-25 17:18:02 +00:00
print '<strong>$dolibarr_main_restrict_eval_methods</strong>: ' ;
if ( empty ( $dolibarr_main_restrict_eval_methods )) {
print $langs -> trans ( " None " );
} else {
print $dolibarr_main_restrict_eval_methods ;
}
2026-03-07 19:56:33 +00:00
print ' <span class="opacitymedium">(' . $langs -> trans ( " RecommendedValueIs " , 'getDolGlobalString, getDolGlobalInt, getDolCurrency, getDolEntity, getDolDBType, fetchNoCompute, hasRight, isAdmin, isExternalUser, isModEnabled, isStringVarMatching, abs, min, max, round, dol_now, dol_concat, preg_match' ) . ')</span>' ;
2025-11-25 17:18:02 +00:00
print '<br>' ;
2026-02-11 20:07:06 +00:00
print '<strong>$dolibarr_website_allow_custom_php</strong>: ' ;
if ( ! empty ( $dolibarr_website_allow_custom_php ) && $dolibarr_website_allow_custom_php == 2 ) {
print img_picto ( '' , 'warning' ) . ' ' ;
}
if ( empty ( $dolibarr_website_allow_custom_php )) {
print '0' ;
} else {
print $dolibarr_website_allow_custom_php ;
}
print ' <span class="opacitymedium">(' ;
if ( isModEnabled ( 'website' )) {
print $langs -> trans ( " RecommendedValueIs " , '0 if you don\'t include PHP in your websites, else 1' );
} else {
print $langs -> trans ( " RecommendedValueIs " , '0' );
}
print ')</span>' ;
print '<br>' ;
2023-10-24 15:00:13 +00:00
if ( ! getDolGlobalString ( 'SECURITY_DISABLE_TEST_ON_OBFUSCATED_CONF' )) {
2021-06-09 11:02:17 +00:00
print '<strong>$dolibarr_main_db_pass</strong>: ' ;
2021-06-09 11:31:00 +00:00
if ( ! empty ( $dolibarr_main_db_pass ) && empty ( $dolibarr_main_db_encrypted_pass )) {
2023-12-07 13:56:06 +00:00
print img_picto ( '' , 'warning' ) . ' ' . $langs -> trans ( " DatabasePasswordNotObfuscated " ) . ' <span class="opacitymedium">(' . $langs -> trans ( " Recommended " ) . ': ' . $langs -> trans ( " SetOptionTo " , $langs -> transnoentitiesnoconv ( " MainDbPasswordFileConfEncrypted " ), yn ( 1 )) . ')</span>' ;
2023-12-13 11:46:23 +00:00
//print ' <span class="opacitymedium">('.$langs->trans("RecommendedValueIs", $langs->transnoentitiesnoconv("IPsOfUsers")).')</span>';
2021-06-09 11:02:17 +00:00
} else {
2021-06-09 11:31:00 +00:00
print img_picto ( '' , 'tick' ) . ' ' . $langs -> trans ( " DatabasePasswordObfuscated " );
2021-06-09 11:02:17 +00:00
}
print '<br>' ;
}
2023-12-07 13:56:06 +00:00
print '<strong>$dolibarr_main_stream_to_disable</strong>: ' ;
2024-03-07 15:16:49 +00:00
// $arrayofstreamtodisable is defined into filefunc.inc.php
2024-09-18 01:27:25 +00:00
'@phan-var-force string[] $arrayofstreamtodisable' ;
2023-12-07 13:56:06 +00:00
if ( empty ( $dolibarr_main_stream_to_disable )) {
Qual: Apply automatic phan fixes (deprecations, unneeded imports) (#28154)
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
2024-02-13 20:46:12 +00:00
print '<span class="opacitymedium">' . $langs -> trans ( " Undefined " ) . ' = ' . implode ( ', ' , $arrayofstreamtodisable ) . '</span>' ;
2023-12-07 13:56:06 +00:00
} else {
Qual: Apply automatic phan fixes (deprecations, unneeded imports) (#28154)
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)
# Qual: Apply automatic phan fixes (deprecations, unneeded imports)
This applies automatic fixes by phan for deprecated functions, unneeded imports).
2024-02-13 20:46:12 +00:00
print implode ( ', ' , $dolibarr_main_stream_to_disable );
2023-12-07 13:56:06 +00:00
}
2024-09-17 12:00:21 +00:00
print '<span class="bold"> -> Current PHP streams allowed = </span>' ;
2023-12-07 13:56:06 +00:00
$arrayofstreams = stream_get_wrappers ();
if ( ! empty ( $arrayofstreams )) {
sort ( $arrayofstreams );
2025-03-09 21:05:36 +00:00
print '<span class="wordbreak">' . implode ( ',' , $arrayofstreams ) . '</span>' ;
2024-09-19 22:19:36 +00:00
print ' <span class="opacitymedium">(' . $langs -> trans ( " Recommended " ) . ': ' . $langs -> trans ( " TryToKeepOnly " , 'file,http,https,php,zip' ) . ')</span>' . " \n " ;
2023-12-07 13:56:06 +00:00
}
2024-05-31 12:59:16 +00:00
print '</div>' ;
2023-12-07 13:56:06 +00:00
2021-06-09 11:02:17 +00:00
2023-12-07 13:56:06 +00:00
/*
if ( ! empty ( $dolibarr_main_stream_do_not_disable )) {
print '<strong>$dolibarr_main_stream_do_not_disable</strong>: ' ;
if ( empty ( $dolibarr_main_stream_do_not_disable )) {
print '<span class="opacitymedium">' . $langs -> trans ( " Undefined " ) . '</span>' ;
} else {
print join ( ', ' , $dolibarr_main_stream_do_not_disable );
}
print ' -> PHP stream allowed = ' ;
$arrayofstreams = stream_get_wrappers ();
if ( ! empty ( $arrayofstreams )) {
sort ( $arrayofstreams );
print ( join ( ',' , $arrayofstreams )) . ' <span class="opacitymedium">(' . $langs -> trans ( " RecommendedValueIs " , 'Undefined' ) . ')</span>' . " \n " ;
}
print '<br>' ;
}
*/
2021-04-30 09:45:45 +00:00
2025-08-27 00:26:38 +00:00
2022-09-11 10:35:40 +00:00
// Menu Home - Setup - Security
2021-04-30 09:45:45 +00:00
2020-11-04 15:07:59 +00:00
print '<br>' ;
print '<br>' ;
2020-10-13 22:57:39 +00:00
2021-07-06 00:07:58 +00:00
print load_fiche_titre ( $langs -> trans ( " Menu " ) . ' ' . $langs -> trans ( " SecuritySetup " ), '' , 'folder' );
2021-04-19 13:26:24 +00:00
2024-05-31 12:59:16 +00:00
print '<div class="divsection wordbreak">' ;
2021-04-19 13:26:24 +00:00
2025-04-01 19:32:56 +00:00
print '<strong>' . $langs -> trans ( " UseCaptchaCode " ) . ' - Login</strong>: ' ;
2023-10-24 15:00:13 +00:00
print ! getDolGlobalString ( 'MAIN_SECURITY_ENABLECAPTCHA' ) ? '' : img_picto ( '' , 'tick' ) . ' ' ;
print yn ( ! getDolGlobalString ( 'MAIN_SECURITY_ENABLECAPTCHA' ) ? 0 : 1 );
2021-05-24 17:46:19 +00:00
print '<br>' ;
2021-05-12 17:55:16 +00:00
print '<br>' ;
2025-04-01 19:32:56 +00:00
print '<strong>' . $langs -> trans ( " UseCaptchaCode " ) . ' - Ticket</strong>: ' ;
print ! getDolGlobalString ( 'MAIN_SECURITY_ENABLECAPTCHA_TICKET' ) ? '' : img_picto ( '' , 'tick' ) . ' ' ;
print yn ( ! getDolGlobalString ( 'MAIN_SECURITY_ENABLECAPTCHA_TICKET' ) ? 0 : 1 );
print '<br>' ;
print '<br>' ;
print '<strong>' . $langs -> trans ( " UseCaptchaCode " ) . ' - Thirdparty public contact form</strong>: ' ;
print ! getDolGlobalString ( 'MAIN_SECURITY_ENABLECAPTCHA_THIRPARTY' ) ? '' : img_picto ( '' , 'tick' ) . ' ' ;
print yn ( ! getDolGlobalString ( 'MAIN_SECURITY_ENABLECAPTCHA_THIRPARTY' ) ? 0 : 1 );
print '<br>' ;
print '<br>' ;
print '<strong>' . $langs -> trans ( " UseCaptchaCode " ) . ' - Membership subscription</strong>: ' ;
print ! getDolGlobalString ( 'MAIN_SECURITY_ENABLECAPTCHA_MEMBER' ) ? '' : img_picto ( '' , 'tick' ) . ' ' ;
print yn ( ! getDolGlobalString ( 'MAIN_SECURITY_ENABLECAPTCHA_MEMBER' ) ? 0 : 1 );
print '<br>' ;
print '<br>' ;
2022-11-29 09:24:21 +00:00
$sessiontimeout = ini_get ( " session.gc_maxlifetime " );
2023-10-24 15:00:13 +00:00
if ( ! getDolGlobalString ( 'MAIN_SESSION_TIMEOUT' )) {
2022-11-29 09:24:21 +00:00
$conf -> global -> MAIN_SESSION_TIMEOUT = $sessiontimeout ;
}
print '<strong>' . $langs -> trans ( " SessionTimeOut " ) . '</strong>' ;
2023-07-25 10:00:50 +00:00
if ( ! ini_get ( " session.gc_probability " )) {
2022-11-29 09:24:21 +00:00
print $form -> textwithpicto ( '' , $langs -> trans ( " SessionsPurgedByExternalSystem " , ini_get ( " session.gc_maxlifetime " )));
} else {
print $form -> textwithpicto ( '' , $langs -> trans ( " SessionExplanation " , ini_get ( " session.gc_probability " ), ini_get ( " session.gc_divisor " ), ini_get ( " session.gc_maxlifetime " )));
}
print ': ' . getDolGlobalInt ( 'MAIN_SESSION_TIMEOUT' ) . ' ' . strtolower ( $langs -> trans ( " Seconds " ));
print '<br><br>' ;
print '<strong>' . $langs -> trans ( " MaxNumberOfImagesInGetPost " ) . '</strong>: ' ;
2023-12-04 10:41:14 +00:00
print ( getDolGlobalInt ( 'MAIN_SECURITY_MAX_IMG_IN_HTML_CONTENT' ) ? img_picto ( '' , 'tick' ) . ' ' : '' ) . getDolGlobalInt ( 'MAIN_SECURITY_MAX_IMG_IN_HTML_CONTENT' ) . ' ' . strtolower ( $langs -> trans ( " Images " ));
2022-11-29 09:24:21 +00:00
print '<br><br>' ;
print '<strong>' . $langs -> trans ( " MaxNumberOfPostOnPublicPagesByIP " ) . '</strong>: ' ;
2023-12-04 10:41:14 +00:00
print ( getDolGlobalInt ( 'MAIN_SECURITY_MAX_POST_ON_PUBLIC_PAGES_BY_IP_ADDRESS' , 200 ) ? img_picto ( '' , 'tick' ) . ' ' : '' ) . getDolGlobalInt ( 'MAIN_SECURITY_MAX_POST_ON_PUBLIC_PAGES_BY_IP_ADDRESS' , 200 ) . ' ' . strtolower ( $langs -> trans ( " Posts " ));
2022-11-29 09:24:21 +00:00
print '<br><br>' ;
print '<strong>' . $langs -> trans ( " MaxNumberOfAttachementOnForms " ) . '</strong>: ' ;
2023-12-04 10:41:14 +00:00
print ( getDolGlobalInt ( 'MAIN_SECURITY_MAX_ATTACHMENT_ON_FORMS' , 10 ) ? img_picto ( '' , 'tick' ) . ' ' : '' ) . getDolGlobalInt ( " MAIN_SECURITY_MAX_ATTACHMENT_ON_FORMS " , 10 ) . ' ' . strtolower ( $langs -> trans ( " Files " ));
2022-11-29 09:24:21 +00:00
print '<br><br>' ;
2025-04-01 15:53:33 +00:00
// Clear password ?
2022-09-11 10:18:43 +00:00
print '<strong>' . $langs -> trans ( " DoNotStoreClearPassword " ) . '</strong>: ' ;
2023-10-24 15:00:13 +00:00
print ! getDolGlobalString ( 'DATABASE_PWD_ENCRYPTED' ) ? '' : img_picto ( '' , 'tick' ) . ' ' ;
print yn ( ! getDolGlobalString ( 'DATABASE_PWD_ENCRYPTED' ) ? 0 : 1 );
if ( ! getDolGlobalString ( 'DATABASE_PWD_ENCRYPTED' )) {
2022-09-11 10:18:43 +00:00
print ' <span class="opacitymedium">(' . $langs -> trans ( " Recommended " ) . ' ' . yn ( 1 ) . ')</span>' ;
}
print '<br>' ;
print '<br>' ;
2025-04-01 15:53:33 +00:00
// Mask by default in upload
$umask = getDolGlobalString ( 'MAIN_UMASK' );
print '<strong>' . $langs -> trans ( " UMask " ) . '</strong>: ' ;
if ( ! in_array ( $umask , array ( '600' , '660' , '0600' , '0660' ))) {
print img_warning () . ' ' ;
}
print $umask ;
if ( ! in_array ( $umask , array ( '600' , '660' , '0600' , '0660' ))) {
print ' <span class="opacitymedium">(' . $langs -> trans ( " Recommended " ) . ': 0600 | 0660)</span>' ;
}
print '<br>' ;
print '<br>' ;
2022-09-11 10:18:43 +00:00
/* Already into section conf file */
/*
$usepassinconfencrypted = 0 ;
global $dolibarr_main_db_pass , $dolibarr_main_db_encrypted_pass ;
2025-07-28 23:14:42 +00:00
if ( preg_match ( '/(crypted|dolcrypt):/i' , $dolibarr_main_db_pass ) || ! empty ( $dolibarr_main_db_encrypted_pass )) {
2022-09-11 10:18:43 +00:00
$usepassinconfencrypted = 1 ;
}
print '<strong>' . $langs -> trans ( " MainDbPasswordFileConfEncrypted " ) . '</strong>: ' ;
print $usepassinconfencrypted ? img_picto ( '' , 'tick' ) . ' ' : img_warning () . ' ' ;
print yn ( $usepassinconfencrypted );
if ( empty ( $usepassinconfencrypted )) {
print ' <span class="opacitymedium">(' . $langs -> trans ( " Recommended " ) . ' ' . yn ( 1 ) . ')</span>' ;
}
print '<br>' ;
print '<br>' ;
*/
2022-09-11 10:35:40 +00:00
/* Password length
// Stored into $tabconf[0] if module generator is "Perso" or specific to the module generator.
$tabConf = explode ( " ; " , getDolGlobalString ( 'USER_PASSWORD_PATTERN' ));
2022-09-11 10:18:43 +00:00
print '<strong>' . $langs -> trans ( " PasswordLength " ) . '</strong>: ' ;
print empty ( $conf -> global -> DATABASE_PWD_ENCRYPTED ) ? '' : img_picto ( '' , 'tick' ) . ' ' ;
print yn ( empty ( $conf -> global -> DATABASE_PWD_ENCRYPTED ) ? 0 : 1 );
if ( empty ( $conf -> global -> DATABASE_PWD_ENCRYPTED )) {
print ' <span class="opacitymedium">(' . $langs -> trans ( " Recommended " ) . ' ' . yn ( 1 ) . ')</span>' ;
}
print '<br>' ;
print '<br>' ;
2022-09-11 10:35:40 +00:00
*/
2021-05-12 17:55:16 +00:00
2020-10-13 22:57:39 +00:00
print '<strong>' . $langs -> trans ( " AntivirusEnabledOnUpload " ) . '</strong>: ' ;
2025-08-30 15:14:57 +00:00
print getDolGlobalString ( 'MAIN_ANTIVIRUS_UPLOAD_ON' ) ? img_picto ( '' , 'tick' ) . ' ' : img_warning () . ' ' ;
print yn ( ! getDolGlobalString ( 'MAIN_ANTIVIRUS_UPLOAD_ON' ) ? 0 : 1 );
if ( ! getDolGlobalString ( 'MAIN_ANTIVIRUS_UPLOAD_ON' ) || ! getDolGlobalString ( 'MAIN_ANTIVIRUS_COMMAND' )) {
2022-09-23 14:05:11 +00:00
print ' - <span class="opacitymedium">' . $langs -> trans ( " Recommended " ) . ': ' . $langs -> trans ( " DefinedAPathForAntivirusCommandIntoSetup " , $langs -> transnoentitiesnoconv ( " Home " ) . " - " . $langs -> transnoentitiesnoconv ( " Setup " ) . " - " . $langs -> transnoentitiesnoconv ( " Security " )) . '</span>' ;
2022-09-11 10:18:43 +00:00
} else {
2023-10-11 17:44:06 +00:00
print ' - ' . getDolGlobalString ( 'MAIN_ANTIVIRUS_COMMAND' );
2021-10-19 10:36:33 +00:00
if ( defined ( 'MAIN_ANTIVIRUS_COMMAND' ) && ! defined ( 'MAIN_ANTIVIRUS_BYPASS_COMMAND_AND_PARAM' )) {
2020-11-04 15:07:59 +00:00
print ' - <span class="opacitymedium">' . $langs -> trans ( " ValueIsForcedBySystem " ) . '</span>' ;
}
}
2020-10-13 22:57:39 +00:00
print '<br>' ;
2020-10-27 14:06:16 +00:00
print '<br>' ;
2025-04-01 15:53:33 +00:00
// File extension locked in upload by default
2022-09-11 10:35:40 +00:00
2025-04-01 15:53:33 +00:00
print '<strong>' . $langs -> trans ( " UploadExtensionRestriction " ) . '</strong>: ' ;
2026-05-05 12:44:11 +00:00
print implode ( ', ' , explode ( ',' , getDolGlobalString ( 'MAIN_FILE_EXTENSION_UPLOAD_RESTRICTION' , implode ( ',' , getExecutableContent ()))));
2025-04-01 15:53:33 +00:00
print ' <span class="opacitymedium">(' . $langs -> trans ( " Recommended " ) . ': ' . implode ( ', ' , getExecutableContent ()) . ')</span>' ;
2022-09-11 10:35:40 +00:00
print '<br>' ;
print '<br>' ;
2022-09-11 10:18:43 +00:00
2025-04-01 17:56:50 +00:00
print '<strong>' . $langs -> trans ( " MAIN_SECURITY_MAXFILESIZE_DOWNLOADED " ) . '</strong> = ' . getDolGlobalString ( 'MAIN_SECURITY_MAXFILESIZE_DOWNLOADED' , '<span class="opacitymedium">' . $langs -> trans ( " Undefined " ) . ' (' . $langs -> trans ( " Recommended " ) . ': < 100000)</span>' ) . " <br> " ;
print '<br>' ;
2025-04-01 15:53:33 +00:00
2020-11-12 18:15:44 +00:00
$securityevent = new Events ( $db );
$eventstolog = $securityevent -> eventstolog ;
2020-10-13 22:57:39 +00:00
2021-04-06 11:56:33 +00:00
print '<strong>' . $langs -> trans ( " AuditedSecurityEvents " ) . '</strong>: ' ;
2021-06-19 23:54:55 +00:00
$out = '' ;
2021-04-06 11:56:33 +00:00
if ( ! empty ( $eventstolog ) && is_array ( $eventstolog )) {
// Loop on each event type
$i = 0 ;
foreach ( $eventstolog as $key => $arr ) {
if ( $arr [ 'id' ]) {
$key = 'MAIN_LOGEVENTS_' . $arr [ 'id' ];
2023-08-05 13:44:28 +00:00
$value = getDolGlobalString ( $key );
2021-04-06 11:56:33 +00:00
if ( $value ) {
if ( $i > 0 ) {
2021-06-19 23:54:55 +00:00
$out .= ', ' ;
2021-04-06 11:56:33 +00:00
}
2021-06-19 23:54:55 +00:00
$out .= '<span class="opacitymedium">' . $key . '</span>' ;
2021-04-06 11:56:33 +00:00
$i ++ ;
2021-04-06 11:09:00 +00:00
}
2021-02-26 21:04:03 +00:00
}
2020-11-12 18:15:44 +00:00
}
2021-06-19 23:54:55 +00:00
print $out ;
}
if ( empty ( $out )) {
2021-06-19 23:56:26 +00:00
print img_warning () . ' ' . $langs -> trans ( " NoSecurityEventsAreAduited " , $langs -> transnoentities ( " Home " ) . ' - ' . $langs -> transnoentities ( " Setup " ) . ' - ' . $langs -> transnoentities ( " Security " ) . ' - ' . $langs -> transnoentities ( " Audit " )) . '<br>' ;
2023-12-02 14:49:29 +00:00
} else {
2025-04-01 16:12:04 +00:00
$s = $langs -> trans ( " SeeSetupPage " , ' {s1}' . $langs -> transnoentities ( " Home " ) . ' - ' . $langs -> transnoentities ( " Setup " ) . ' - ' . $langs -> transnoentities ( " Security " ) . ' - ' . $langs -> transnoentities ( " Audit " ) . '{s2}' );
print ' - ' . str_replace ( '{s2}' , '</a>' , str_replace ( '{s1}' , '<a href="' . DOL_URL_ROOT . '/admin/events.php" target="_blank">' . img_picto ( '' , 'url' , 'class="pictofixedwidth"' ), $s ));
2020-11-12 18:15:44 +00:00
}
2020-10-13 22:57:39 +00:00
2025-08-27 00:26:38 +00:00
print '<br>' ;
print '<br>' ;
print '<strong>MAIN_SECURITY_FORCERP</strong> = ' . getDolGlobalString ( 'MAIN_SECURITY_FORCERP' , '<span class="opacitymedium">' . $langs -> trans ( " Undefined " ) . '</span>' ) . ' <span class="opacitymedium">(' . $langs -> trans ( " Recommended " ) . ': ' . $langs -> trans ( " Undefined " ) . ' ' . $langs -> trans ( " or " ) . " \" strict-origin-when-cross-origin \" or \" same-origin \" so browser doesn't send any referrer when going into another web site domain)</span><br> " ;
print '<br>' ;
print '<strong>MAIN_SECURITY_FORCESTS</strong> = ' . getDolGlobalString ( 'MAIN_SECURITY_FORCESTS' , '<span class="opacitymedium">' . $langs -> trans ( " Undefined " ) . '</span>' ) . ' <span class="opacitymedium">(' . $langs -> trans ( " Recommended " ) . " : max-age=31536000; includeSubDomains)</span><br> " ;
print '<br>' ;
print '<strong>MAIN_SECURITY_FORCEPP</strong> = ' . getDolGlobalString ( 'MAIN_SECURITY_FORCEPP' , '<span class="opacitymedium">' . $langs -> trans ( " Undefined " ) . '</span>' ) . ' <span class="opacitymedium">(' . $langs -> trans ( " Recommended " ) . " : camera=*, microphone=(), geolocation=*)</span><br> " ;
print '<br>' ;
if ( getDolGlobalString ( 'MAIN_SECURITY_FORCECSPRO' )) {
$examplecsprule = " frame-ancestors 'self'; img-src * data:; font-src *; default-src 'self' 'unsafe-inline' 'unsafe-eval' *.paypal.com *.stripe.com *.google.com *.googleapis.com *.google-analytics.com *.googletagmanager.com *.dolistore.com *.githubusercontent.com " ;
print '<strong>MAIN_SECURITY_FORCECSPRO</strong> = ' . getDolGlobalString ( 'MAIN_SECURITY_FORCECSPRO' , '<span class="opacitymedium">' . $langs -> trans ( " Undefined " ) . '</span>' ) . ' <span class="opacitymedium">(' . $langs -> trans ( " Example " ) . ': "' . $examplecsprule . '")</span><br>' ;
print '<br>' ;
}
$examplecsprule = " frame-ancestors 'self'; img-src * data:; font-src *; default-src 'self' 'unsafe-inline' 'unsafe-eval' *.paypal.com *.stripe.com *.google.com *.googleapis.com *.google-analytics.com *.googletagmanager.com *.dolistore.com *.githubusercontent.com " ;
print '<strong>MAIN_SECURITY_FORCECSP</strong> = ' . getDolGlobalString ( 'MAIN_SECURITY_FORCECSP' , '<span class="opacitymedium">' . $langs -> trans ( " Undefined " ) . '</span>' ) . ' <span class="opacitymedium">(' . $langs -> trans ( " Example " ) . ': "' . $examplecsprule . '")</span><br>' ;
print '<br>' ;
$tmpurl = constant ( 'DOL_MAIN_URL_ROOT' );
$tmpurl = preg_replace ( '/^(https?:\/\/[^\/]+)\/.*$/' , '\1' , $tmpurl );
print '<strong>MAIN_SECURITY_FORCE_ACCESS_CONTROL_ALLOW_ORIGIN</strong> = ' . getDolGlobalString ( 'MAIN_SECURITY_FORCE_ACCESS_CONTROL_ALLOW_ORIGIN' , '<span class="opacitymedium">' . $langs -> trans ( " Undefined " ) . '</span>' ) . ' <span class="opacitymedium">(' . $langs -> trans ( " Recommended " ) . " : 1 so browsers will accept answers of a page only if page was requested from the domain " . $tmpurl . " . Note: it is not possible to limit to several domains)</span><br> " ;
2023-12-02 14:18:10 +00:00
print '</div>' ;
2024-05-31 12:59:16 +00:00
print '<br>' ;
2023-12-02 14:18:10 +00:00
2021-09-18 16:28:02 +00:00
2025-08-27 00:26:38 +00:00
2021-09-18 16:28:02 +00:00
// Modules/Applications
print '<br>' ;
print '<br>' ;
print load_fiche_titre ( $langs -> trans ( " Modules " ), '' , 'folder' );
2024-05-31 12:59:16 +00:00
print '<div class="divsection wordbreak">' ;
2023-12-02 14:18:10 +00:00
2021-09-18 16:28:02 +00:00
// Module log
print '<strong>' . $langs -> trans ( " Syslog " ) . '</strong>: ' ;
2023-04-24 11:52:31 +00:00
$test = isModEnabled ( 'syslog' );
if ( ! $test ) {
print img_picto ( '' , 'tick' ) . ' ' . $langs -> trans ( " NotInstalled " ) . ' - ' . $langs -> trans ( " NotRiskOfLeakWithThis " );
2021-09-18 16:28:02 +00:00
} else {
2023-02-21 11:57:36 +00:00
if ( getDolGlobalInt ( 'SYSLOG_LEVEL' ) > LOG_NOTICE ) {
2021-09-18 16:28:02 +00:00
print img_picto ( '' , 'warning' ) . ' ' . $langs -> trans ( " ModuleActivatedWithTooHighLogLevel " , $langs -> transnoentities ( " Syslog " ));
} else {
2023-04-24 11:52:31 +00:00
print img_picto ( '' , 'tick' ) . ' ' . $langs -> trans ( " ModuleSyslogActivatedButLevelNotTooVerbose " , $langs -> transnoentities ( " Syslog " ), getDolGlobalInt ( 'SYSLOG_LEVEL' ));
2021-09-18 16:28:02 +00:00
}
//print ' '.$langs->trans("MoreInformation").' <a href="'.DOL_URL_ROOT.'/admin/system/xdebug.php'.'">XDebug admin page</a>';
}
print '<br>' ;
2023-04-24 11:52:31 +00:00
print '<br>' ;
2021-09-18 16:28:02 +00:00
// Module debugbar
print '<strong>' . $langs -> trans ( " DebugBar " ) . '</strong>: ' ;
2023-04-24 11:52:31 +00:00
$test = isModEnabled ( 'debugbar' );
if ( ! $test ) {
print img_picto ( '' , 'tick' ) . ' ' . $langs -> trans ( " NotInstalled " ) . ' - ' . $langs -> trans ( " NotRiskOfLeakWithThis " );
2021-09-18 16:28:02 +00:00
} else {
print img_picto ( '' , 'error' ) . ' ' . $langs -> trans ( " ModuleActivatedDoNotUseInProduction " , $langs -> transnoentities ( " DebugBar " ));
//print ' '.$langs->trans("MoreInformation").' <a href="'.DOL_URL_ROOT.'/admin/system/xdebug.php'.'">XDebug admin page</a>';
}
print '<br>' ;
2023-04-24 11:52:31 +00:00
// Modules for Payments
2026-04-10 13:21:37 +00:00
/*
2023-04-24 11:52:31 +00:00
$test = isModEnabled ( 'stripe' );
if ( $test ) {
2024-08-20 12:32:25 +00:00
print '<br>' ;
2023-04-24 11:52:31 +00:00
print '<strong>' . $langs -> trans ( " Stripe " ) . '</strong>: ' ;
if ( ! getDolGlobalString ( 'PAYMENT_SECURITY_TOKEN_UNIQUE' )) {
print img_picto ( '' , 'error' ) . ' ' . $langs -> trans ( " OptionXShouldBeEnabledInModuleY " , $langs -> transnoentities ( " SecurityTokenIsUnique " ), $langs -> transnoentities ( " Stripe " ));
} else {
print img_picto ( '' , 'tick' ) . ' ' . $langs -> trans ( " OptionXIsCorrectlyEnabledInModuleY " , $langs -> transnoentities ( " SecurityTokenIsUnique " ), $langs -> transnoentities ( " Stripe " ));
}
print '<br>' ;
} else {
$test = isModEnabled ( 'paypal' );
if ( $test ) {
2024-08-20 12:32:25 +00:00
print '<br>' ;
2023-04-24 11:52:31 +00:00
print '<strong>' . $langs -> trans ( " Paypal " ) . '</strong>: ' ;
if ( ! getDolGlobalString ( 'PAYMENT_SECURITY_TOKEN_UNIQUE' )) {
print img_picto ( '' , 'error' ) . ' ' . $langs -> trans ( " OptionXShouldBeEnabledInModuleY " , $langs -> transnoentities ( " SecurityTokenIsUnique " ), $langs -> transnoentities ( " Paypal " ));
} else {
print img_picto ( '' , 'tick' ) . ' ' . $langs -> trans ( " OptionXIsCorrectlyEnabledInModuleY " , $langs -> transnoentities ( " SecurityTokenIsUnique " ), $langs -> transnoentities ( " Paypal " ));
}
print '<br>' ;
}
}
2026-04-10 13:21:37 +00:00
*/
2023-04-24 11:52:31 +00:00
2024-05-31 12:59:16 +00:00
print '</div>' ;
2021-09-18 16:28:02 +00:00
// APIs
2021-07-06 00:07:58 +00:00
print '<br>' ;
2021-09-18 16:28:02 +00:00
print '<br>' ;
print load_fiche_titre ( $langs -> trans ( " API " ), '' , 'folder' );
2024-05-31 12:59:16 +00:00
print '<div class="divsection wordbreak">' ;
2023-06-09 11:53:58 +00:00
if ( ! isModEnabled ( 'api' ) && ! isModEnabled ( 'webservices' )) {
2021-09-18 16:28:02 +00:00
print $langs -> trans ( " APIsAreNotEnabled " );
} else {
2023-06-09 11:53:58 +00:00
if ( isModEnabled ( 'webservices' )) {
2023-12-02 14:18:10 +00:00
print img_picto ( '' , 'warning' ) . ' ' . $langs -> trans ( 'YouEnableDeprecatedWSAPIsUseRESTAPIsInstead' ) . " <br> \n " ;
2021-09-18 16:28:02 +00:00
print '<br>' ;
}
2023-06-09 11:53:58 +00:00
if ( isModEnabled ( 'api' )) {
2022-12-20 17:22:10 +00:00
print '<strong>API_ENDPOINT_RULES</strong> = ' . getDolGlobalString ( 'API_ENDPOINT_RULES' , '<span class="opacitymedium">' . $langs -> trans ( " Undefined " ) . ' (' . $langs -> trans ( " Example " ) . ': login:0,users:0,setup:1,status:1,tickets:1,...)</span>' ) . " <br> \n " ;
2025-08-26 23:39:15 +00:00
print '<br>' ;
2026-04-19 22:26:46 +00:00
print '<strong>API_ENABLE_LOGIN_API</strong> = ' . getDolGlobalString ( 'API_ENABLE_LOGIN_API' , '0' ) . ' <span class="opacitymedium">(' . $langs -> trans ( " Recommended " ) . ': 0)</span><br>' ;
2021-09-18 16:28:02 +00:00
}
}
2024-08-17 14:29:52 +00:00
2023-12-02 14:18:10 +00:00
print '</div>' ;
2021-09-18 16:28:02 +00:00
2024-05-31 12:59:16 +00:00
print '<br>' ;
2021-07-06 00:07:58 +00:00
print '<br>' ;
2025-04-01 15:53:33 +00:00
// Other setup
2022-03-02 10:37:19 +00:00
print load_fiche_titre ( $langs -> trans ( " OtherSetup " ), '' , 'folder' );
2021-07-06 00:07:58 +00:00
2024-05-31 12:59:16 +00:00
print '<div class="divsection wordbreak">' ;
2023-12-02 14:18:10 +00:00
2022-12-20 17:22:10 +00:00
print '<strong>MAIN_ALLOW_SVG_FILES_AS_IMAGES</strong> = ' . getDolGlobalString ( 'MAIN_ALLOW_SVG_FILES_AS_IMAGES' , '0' ) . ' <span class="opacitymedium">(' . $langs -> trans ( " Recommended " ) . ': 0)</span><br>' ;
2022-08-16 13:19:21 +00:00
print '<br>' ;
2022-12-20 17:22:10 +00:00
print '<strong>MAIN_ALWAYS_CREATE_LOCK_AFTER_LAST_UPGRADE</strong> = ' . getDolGlobalString ( 'MAIN_ALWAYS_CREATE_LOCK_AFTER_LAST_UPGRADE' , '<span class="opacitymedium">' . $langs -> trans ( " Undefined " ) . '</span>' ) . ' <span class="opacitymedium">(' . $langs -> trans ( " Recommended " ) . ': 1)</span><br>' ;
2022-08-16 13:19:21 +00:00
print '<br>' ;
2021-07-06 00:07:58 +00:00
2024-10-24 13:34:02 +00:00
print '<strong>MAIN_SECURITY_ANTI_SSRF_SERVER_IP</strong> = ' . getDolGlobalString ( 'MAIN_SECURITY_ANTI_SSRF_SERVER_IP' , '<span class="opacitymedium">' . $langs -> trans ( " Undefined " ) . '</span> <span class="opacitymedium">(' . $langs -> trans ( " Recommended " ) . ': List of static IPs of server separated with coma - ' . $langs -> trans ( " Note " ) . ': common loopback ip like 127.*.*.*, [::1] are already added)</span>' ) . " <br> " ;
print '<br>' ;
print '<strong>MAIN_SECURITY_CSRF_WITH_TOKEN</strong> = ' . getDolGlobalString ( 'MAIN_SECURITY_CSRF_WITH_TOKEN' , '<span class="opacitymedium">' . $langs -> trans ( " Undefined " ) . '</span>' ) . ' <span class="opacitymedium">(' . $langs -> trans ( " Recommended " ) . ': ' . $langs -> trans ( " Undefined " ) . ' ' . $langs -> trans ( " or " ) . ' 2)</span>' . " <br> " ;
print '</div>' ;
print '<br>' ;
print '<br>' ;
2025-04-01 16:12:04 +00:00
// Database encryption
2024-10-24 13:34:02 +00:00
print load_fiche_titre ( $langs -> trans ( " DatabaseEncryption " ), '' , 'folder' );
print '<div class="divsection wordbreak">' ;
2021-07-06 00:07:58 +00:00
//print '<strong>'.$langs->trans("PasswordEncryption").'</strong>: ';
2025-04-01 16:12:04 +00:00
print '<strong>' . $langs -> trans ( " AlgorithmFor " , $langs -> transnoentitiesnoconv ( " Passwords " ));
print $form -> textwithpicto ( '' , 'non reversible encryption, defined into MAIN_SECURITY_HASH_ALGO' );
2025-08-26 23:42:18 +00:00
print '</strong> = ' . getDolGlobalString ( 'MAIN_SECURITY_HASH_ALGO' , '<span class="opacitymedium">' . $langs -> trans ( " Undefined " ) . '</span>' ) . " " ;
2023-10-24 15:00:13 +00:00
if ( ! getDolGlobalString ( 'MAIN_SECURITY_HASH_ALGO' )) {
2024-07-12 23:09:22 +00:00
print '<span class="opacitymedium"> (If unset: \'md5\')</span>' ;
2021-07-06 00:07:58 +00:00
}
2023-12-13 14:20:53 +00:00
if ( getDolGlobalString ( 'MAIN_SECURITY_HASH_ALGO' ) != 'password_hash' ) {
2022-12-20 17:22:10 +00:00
print '<br><strong>MAIN_SECURITY_SALT</strong> = ' . getDolGlobalString ( 'MAIN_SECURITY_SALT' , '<span class="opacitymedium">' . $langs -> trans ( " Undefined " ) . '</span>' ) . '<br>' ;
2021-07-06 00:07:58 +00:00
} else {
2021-08-06 16:48:05 +00:00
print '<span class="opacitymedium">(' . $langs -> trans ( " Recommended " ) . ': password_hash)</span>' ;
2021-07-06 00:07:58 +00:00
print '<br>' ;
}
2023-12-13 14:20:53 +00:00
if ( getDolGlobalString ( 'MAIN_SECURITY_HASH_ALGO' ) != 'password_hash' ) {
2024-01-11 08:59:52 +00:00
print '<div class="info">The recommended value for MAIN_SECURITY_HASH_ALGO is now \'password_hash\' but setting it now will make ALL existing passwords of all users not valid, so update is not possible.<br>' ;
2021-07-06 00:07:58 +00:00
print 'If you really want to switch, you must:<br>' ;
print '- Go on home - setup - other and add constant MAIN_SECURITY_HASH_ALGO to value \'password_hash\'<br>' ;
print '- In same session, WITHOUT LOGGING OUT, go into your admin user record and set a new password<br>' ;
print '- You can now logout and login with this new password. You must now reset password of all other users.<br>' ;
2024-07-12 23:09:22 +00:00
print '</div>' ;
2021-07-06 00:07:58 +00:00
}
print '<br>' ;
2024-10-24 13:34:02 +00:00
$action = GETPOST ( 'action' );
$exampletodecrypt = GETPOST ( 'exampletodecrypt' , 'password' );
2021-07-06 00:07:58 +00:00
2025-04-01 16:12:04 +00:00
print '<strong>' . $langs -> trans ( " AlgorithmFor " , $langs -> transnoentitiesnoconv ( " SensitiveData " ));
print $form -> textwithpicto ( '' , 'reversible encryption done with dolEncrypt/dolDecrypt' );
2026-03-31 21:54:33 +00:00
print '</strong> = ' . constant ( 'MAIN_SECURITY_REVERSIBLE_ALGO' ) . ' with a random seed + a crypt key defined into the conf.php file (in $dolibarr_main_instance_unique_id or $dolibarr_main_dolcrypt_key)<br>' ;
2026-06-15 21:00:35 +00:00
print '<form method="POST" action="' . dolBuildUrl ( $_SERVER [ " PHP_SELF " ]) . '" spellcheck="false">' ;
2024-10-24 13:34:02 +00:00
print '<input type="hidden" name="action" value="doldecrypt">' ;
print '<input type="hidden" name="token" value="' . newToken () . '">' ;
print '<input type="hidden" name="page_y" value="">' ;
print $langs -> trans ( " ToolToDecryptAString " ) . ': ' ;
2026-04-24 16:54:18 +00:00
print '<input type="text" class="minwidth500 valignmiddle" name="exampletodecrypt" placeholder="dolcrypt:ALGOXXXX:ABCDFEF1234" value="' . $exampletodecrypt . '" spellcheck="false">' ;
print '<input type="submit" class="reposition button small smallpaddingimp valignmiddle" name="submit" value="' . $langs -> transnoentitiesnoconv ( " Decrypt " ) . '">' ;
2024-10-24 13:34:02 +00:00
if ( $action == 'doldecrypt' && $user -> admin && $exampletodecrypt ) {
usleep ( 200 );
2026-06-16 01:48:29 +00:00
$decryptedstring = $exampletodecrypt ;
2026-06-15 21:00:35 +00:00
if ( preg_match ( '/^dolobfuscationv1/' , $exampletodecrypt )) {
2026-06-20 06:07:21 +00:00
// Clear cache
unset ( $_SESSION [ 'obfuscationkey_' . (( int ) $conf -> entity )]);
unset ( $conf -> cache [ 'obfuscationkey_' . (( int ) $conf -> entity )]);
// Reload obfuscationkey
2026-06-15 21:00:35 +00:00
require_once DOL_DOCUMENT_ROOT . '/blockedlog/class/blockedlog.class.php' ;
$b = new BlockedLog ( $db );
$obfuscationkey = $b -> getObfuscationKey ();
2026-06-20 06:07:21 +00:00
include_once DOL_DOCUMENT_ROOT . '/blockedlog/lib/blockedlog.lib.php' ;
$registrationnumber = getHashUniqueIdOfRegistration ();
print '<!-- registrationnumber ' . $registrationnumber . ' -->' . " \n " ;
print '<!-- mysoc->idprof1 = ' . $mysoc -> idprof1 . ' -->' . " \n " ;
print '<!-- session ' . $_SESSION [ 'obfuscationkey_' . (( int ) $conf -> entity )] . ' -->' . " \n " ;
print '<!-- conf->cache = ' . ( string ) $conf -> cache [ 'obfuscationkey_' . (( int ) $conf -> entity )] . ' -->' . " \n " ;
2026-06-21 18:16:21 +00:00
print '<!-- obfuscationkey => ' . $obfuscationkey . ' -->' . " \n " ; // For debug only
2026-06-20 06:07:21 +00:00
2026-06-15 21:00:35 +00:00
$decryptedstring = dolDecrypt ( $exampletodecrypt , $obfuscationkey );
} elseif ( preg_match ( '/^dolcrypt/' , $exampletodecrypt )) {
$decryptedstring = dolDecrypt ( $exampletodecrypt );
}
2025-11-10 23:59:51 +00:00
if ( ascii_check ( $decryptedstring )) {
2025-11-12 18:45:09 +00:00
print '<br> => <textarea rows="' . ROWS_1 . '" class="valignmiddle quatrevingtpercent">' . dolPrintHTMLForTextArea ( $decryptedstring ) . '</textarea>' ;
2025-11-10 23:59:51 +00:00
} else {
print '<br><span class="error"> => Failed to decrypt. The crypting key saved into the conf.php file seems to not be the one used to encrypt the provided encrypted string</span>' ;
}
2024-10-24 13:34:02 +00:00
}
print '</form>' ;
2024-05-31 12:59:16 +00:00
print '</div>' ;
2021-08-06 16:32:40 +00:00
2022-03-02 10:37:19 +00:00
print '<br>' ;
2021-07-06 00:07:58 +00:00
print '<br>' ;
2025-03-08 13:22:06 +00:00
2025-04-01 15:53:33 +00:00
// Websites
2025-03-08 13:22:06 +00:00
2025-04-01 15:53:33 +00:00
if ( isModEnabled ( 'website' )) {
print load_fiche_titre ( $langs -> trans ( " Website " ), '' , 'website' );
print '<div class="divsection wordbreak">' ;
$sql = " SELECT w.rowid as id, w.ref " ;
$sql .= " FROM " . MAIN_DB_PREFIX . " website as w " ;
$sql .= " WHERE w.entity = " . (( int ) $conf -> entity );
$sql .= " AND w.status = 1 " ;
$resql = $db -> query ( $sql );
if ( $resql ) {
$num_rows = $db -> num_rows ( $resql );
if ( $num_rows > 0 ) {
$i = 0 ;
while ( $obj = $db -> fetch_object ( $resql )) {
2025-08-27 00:26:38 +00:00
print " <strong> " . $langs -> trans ( " WebsiteSecurityOptions " ) . " : " . $obj -> ref . " </strong> " ;
2025-04-01 15:53:33 +00:00
print '<br><br>' ;
2025-08-27 00:26:38 +00:00
print '<strong>WEBSITE_' . $obj -> id . '_SECURITY_FORCERP</strong> = ' . getDolGlobalString ( 'WEBSITE_' . $obj -> id . '_SECURITY_FORCERP' , '<span class="opacitymedium">' . $langs -> trans ( " Undefined " ) . '</span>' ) . ' <span class="opacitymedium">(' . $langs -> trans ( " Recommended " ) . ': ' . $langs -> trans ( " Undefined " ) . '="strict-origin-when-cross-origin" ' . $langs -> trans ( " or " ) . ' "same-origin"=more secured)</span><br>' ;
print '<strong>WEBSITE_' . $obj -> id . '_SECURITY_FORCESTS</strong> = ' . getDolGlobalString ( 'WEBSITE_' . $obj -> id . '_SECURITY_FORCESTS' , '<span class="opacitymedium">' . $langs -> trans ( " Undefined " ) . '</span>' ) . ' <span class="opacitymedium">(' . $langs -> trans ( " Example " ) . " : \" max-age=31536000; includeSubDomains \" )</span><br> " ;
print '<strong>WEBSITE_' . $obj -> id . '_SECURITY_FORCEPP</strong> = ' . getDolGlobalString ( 'WEBSITE_' . $obj -> id . '_SECURITY_FORCEPP' , '<span class="opacitymedium">' . $langs -> trans ( " Undefined " ) . '</span>' ) . ' <span class="opacitymedium">(' . $langs -> trans ( " Example " ) . " : \" camera=(), microphone=(), geolocation=* \" )</span><br> " ;
if ( getDolGlobalString ( 'WEBSITE_' . $obj -> id . '_SECURITY_FORCECSPPRO' )) {
print '<strong>WEBSITE_' . $obj -> id . '_SECURITY_FORCECSPPRO</strong> = ' . getDolGlobalString ( 'WEBSITE_' . $obj -> id . '_SECURITY_FORCECSPPRO' , '<span class="opacitymedium">' . $langs -> trans ( " Undefined " ) . '</span>' );
print ' <span class="opacitymedium">(' . $langs -> trans ( " Example " ) . ': "' ;
$examplecsprule = " default-src 'self' 'unsafe-inline' matomo. " . getDomainFromURL ( $_SERVER [ " SERVER_NAME " ], 1 ) . " *.transifex.net *.transifex.com *.cloudflare.com *.cloudflareinsights.com *.google-analytics.com *.googletagmanager.com *.google.com *.gstatic.com *.googleapis.com *.googleadservices.com *.ads-twitter.com *.doubleclick.net; frame-ancestors 'self'; object-src *.youtube.com; frame-src 'self' *.twitter.com *.facebook.com *.youtube.com; img-src * data:; " ;
print $examplecsprule ;
print '")</span><br>' ;
}
2025-04-01 15:53:33 +00:00
print '<strong>WEBSITE_' . $obj -> id . '_SECURITY_FORCECSP</strong> = ' . getDolGlobalString ( 'WEBSITE_' . $obj -> id . '_SECURITY_FORCECSP' , '<span class="opacitymedium">' . $langs -> trans ( " Undefined " ) . '</span>' );
print ' <span class="opacitymedium">(' . $langs -> trans ( " Example " ) . ': "' ;
$examplecsprule = " default-src 'self' 'unsafe-inline' matomo. " . getDomainFromURL ( $_SERVER [ " SERVER_NAME " ], 1 ) . " *.transifex.net *.transifex.com *.cloudflare.com *.cloudflareinsights.com *.google-analytics.com *.googletagmanager.com *.google.com *.gstatic.com *.googleapis.com *.googleadservices.com *.ads-twitter.com *.doubleclick.net; frame-ancestors 'self'; object-src *.youtube.com; frame-src 'self' *.twitter.com *.facebook.com *.youtube.com; img-src * data:; " ;
print $examplecsprule ;
print '")</span><br>' ;
$i ++ ;
if ( $i != $num_rows ) {
print '<br>' ;
}
2025-03-08 13:22:06 +00:00
}
2025-04-01 15:53:33 +00:00
} else {
print '<span class="opacity">' . $langs -> trans ( " NoWebsite " ) . '</span>' ;
2025-03-08 13:22:06 +00:00
}
2025-04-01 15:53:33 +00:00
} else {
dol_print_error ( $db );
2025-03-08 13:22:06 +00:00
}
2025-04-01 15:53:33 +00:00
print '</div>' ;
print '<br>' ;
2025-03-08 13:22:06 +00:00
}
2022-03-02 10:37:19 +00:00
2024-05-31 12:59:16 +00:00
// Other - experimental
2022-03-02 10:37:19 +00:00
print load_fiche_titre ( $langs -> trans ( " OtherSetup " ) . ' (' . $langs -> trans ( " Experimental " ) . ')' , '' , 'folder' );
2024-05-31 12:59:16 +00:00
print '<div class="divsection wordbreak">' ;
2021-07-06 00:07:58 +00:00
print '<strong>MAIN_EXEC_USE_POPEN</strong> = ' ;
2023-10-24 15:00:13 +00:00
if ( ! getDolGlobalString ( 'MAIN_EXEC_USE_POPEN' )) {
2021-07-06 00:07:58 +00:00
print '<span class="opacitymedium">' . $langs -> trans ( " Undefined " ) . '</span>' ;
} else {
2025-04-01 15:53:33 +00:00
print getDolGlobalString ( 'MAIN_EXEC_USE_POPEN' );
2021-07-06 00:07:58 +00:00
}
if ( $execmethod == 1 ) {
2023-02-24 23:48:50 +00:00
print '<span class="opacitymedium"> "exec" PHP method will be used for shell commands' ;
2021-08-06 16:48:05 +00:00
print ' (' . $langs -> trans ( " Recommended " ) . ': ' . $langs -> trans ( " Undefined " ) . ' ' . $langs -> trans ( " or " ) . ' 1)' ;
print '</span>' ;
2021-07-06 00:07:58 +00:00
}
if ( $execmethod == 2 ) {
2023-02-24 23:48:50 +00:00
print '<span class="opacitymedium"> "popen" PHP method will be used for shell commands' ;
2021-08-06 16:48:05 +00:00
print ' (' . $langs -> trans ( " Recommended " ) . ': ' . $langs -> trans ( " Undefined " ) . ' ' . $langs -> trans ( " or " ) . ' 1)' ;
print '</span>' ;
2021-07-06 00:07:58 +00:00
}
2022-08-16 13:19:21 +00:00
print '<br>' ;
print '<br>' ;
2023-11-29 19:19:21 +00:00
print '<strong>MAIN_RESTRICTHTML_ONLY_VALID_HTML</strong> = ' . ( getDolGlobalString ( 'MAIN_RESTRICTHTML_ONLY_VALID_HTML' ) ? '1' : '<span class="opacitymedium">' . $langs -> trans ( " Undefined " ) . '</span>' );
2023-12-03 11:49:52 +00:00
print ' <span class="opacitymedium">(' . $langs -> trans ( " Recommended " ) . " : 1 - does not work on HTML5 with some old libxml libs)</span> " ;
2024-08-20 13:02:33 +00:00
// Test compatibility of MAIN_RESTRICTHTML_ONLY_VALID_HTML
$savMAIN_RESTRICTHTML_REMOVE_ALSO_BAD_ATTRIBUTES = getDolGlobalString ( 'MAIN_RESTRICTHTML_REMOVE_ALSO_BAD_ATTRIBUTES' );
$savMAIN_RESTRICTHTML_ONLY_VALID_HTML = getDolGlobalString ( 'MAIN_RESTRICTHTML_ONLY_VALID_HTML' );
$savMAIN_RESTRICTHTML_ONLY_VALID_HTML_TIDY = getDolGlobalString ( 'MAIN_RESTRICTHTML_ONLY_VALID_HTML_TIDY' );
2023-12-03 11:49:52 +00:00
$conf -> global -> MAIN_RESTRICTHTML_REMOVE_ALSO_BAD_ATTRIBUTES = 0 ;
$conf -> global -> MAIN_RESTRICTHTML_ONLY_VALID_HTML = 1 ;
$conf -> global -> MAIN_RESTRICTHTML_ONLY_VALID_HTML_TIDY = 0 ;
2024-09-18 01:27:25 +00:00
$result = dol_htmlwithnojs ( '<img onerror<=alert(document.domain)> src=>0xbeefed' );
2024-08-20 13:02:33 +00:00
$conf -> global -> MAIN_RESTRICTHTML_REMOVE_ALSO_BAD_ATTRIBUTES = $savMAIN_RESTRICTHTML_REMOVE_ALSO_BAD_ATTRIBUTES ;
$conf -> global -> MAIN_RESTRICTHTML_ONLY_VALID_HTML = $savMAIN_RESTRICTHTML_ONLY_VALID_HTML ;
$conf -> global -> MAIN_RESTRICTHTML_ONLY_VALID_HTML_TIDY = $savMAIN_RESTRICTHTML_ONLY_VALID_HTML_TIDY ;
2023-12-03 11:49:52 +00:00
if ( $result == 'InvalidHTMLStringCantBeCleaned' ) {
print ' - ' . img_warning () . ' Your libxml seems to old to work correctly with this option. Disable it !' ;
} else {
print ' - Test of compatibility with this option seems ok' ;
}
print '<br>' ;
2022-08-16 13:19:21 +00:00
print '<br>' ;
2023-11-29 19:19:21 +00:00
print '<strong>MAIN_RESTRICTHTML_ONLY_VALID_HTML_TIDY</strong> = ' . ( getDolGlobalString ( 'MAIN_RESTRICTHTML_ONLY_VALID_HTML_TIDY' ) ? '1' : '<span class="opacitymedium">' . $langs -> trans ( " Undefined " ) . '</span>' );
2023-12-03 11:49:52 +00:00
print ' <span class="opacitymedium">(' . $langs -> trans ( " Recommended " ) . ': 1)</span> - Module "php-tidy" must be enabled (currently: ' . (( extension_loaded ( 'tidy' ) && class_exists ( " tidy " )) ? 'Enabled' : img_picto ( '' , 'warning' ) . ' Not available' ) . " ) " ;
if ( extension_loaded ( 'tidy' ) && class_exists ( " tidy " )) {
2024-08-20 13:02:33 +00:00
// Test compatibility of MAIN_RESTRICTHTML_ONLY_VALID_HTML_TIDY
$savMAIN_RESTRICTHTML_REMOVE_ALSO_BAD_ATTRIBUTES = getDolGlobalString ( 'MAIN_RESTRICTHTML_REMOVE_ALSO_BAD_ATTRIBUTES' );
$savMAIN_RESTRICTHTML_ONLY_VALID_HTML = getDolGlobalString ( 'MAIN_RESTRICTHTML_ONLY_VALID_HTML' );
$savMAIN_RESTRICTHTML_ONLY_VALID_HTML_TIDY = getDolGlobalString ( 'MAIN_RESTRICTHTML_ONLY_VALID_HTML_TIDY' );
2023-12-03 11:49:52 +00:00
$conf -> global -> MAIN_RESTRICTHTML_REMOVE_ALSO_BAD_ATTRIBUTES = 0 ;
$conf -> global -> MAIN_RESTRICTHTML_ONLY_VALID_HTML = 0 ;
$conf -> global -> MAIN_RESTRICTHTML_ONLY_VALID_HTML_TIDY = 1 ;
2024-09-18 01:27:25 +00:00
$result = dol_htmlwithnojs ( '<img onerror<=alert(document.domain)> src=>0xbeefed' );
2024-08-20 13:02:33 +00:00
$conf -> global -> MAIN_RESTRICTHTML_REMOVE_ALSO_BAD_ATTRIBUTES = $savMAIN_RESTRICTHTML_REMOVE_ALSO_BAD_ATTRIBUTES ;
$conf -> global -> MAIN_RESTRICTHTML_ONLY_VALID_HTML = $savMAIN_RESTRICTHTML_ONLY_VALID_HTML ;
$conf -> global -> MAIN_RESTRICTHTML_ONLY_VALID_HTML_TIDY = $savMAIN_RESTRICTHTML_ONLY_VALID_HTML_TIDY ;
2023-12-03 11:49:52 +00:00
if ( $result == 'InvalidHTMLStringCantBeCleaned' ) {
print ' - ' . img_warning () . ' Your libxml seems to old to work correctly with this option. Disable it !' ;
} else {
print ' - Test of compatibility with this option seems ok' ;
}
}
print '<br>' ;
2023-11-29 19:19:21 +00:00
print '<br>' ;
print '<strong>MAIN_RESTRICTHTML_REMOVE_ALSO_BAD_ATTRIBUTES</strong> = ' . ( getDolGlobalString ( 'MAIN_RESTRICTHTML_REMOVE_ALSO_BAD_ATTRIBUTES' ) ? '1' : '<span class="opacitymedium">' . $langs -> trans ( " Undefined " ) . '</span>' );
2023-11-29 23:06:05 +00:00
print ' <span class="opacitymedium">(' . $langs -> trans ( " Recommended " ) . " : 1 - does not work on HTML5 with some old libxml libs)</span><br> " ;
2022-08-16 13:19:21 +00:00
print '<br>' ;
2025-11-26 20:07:41 +00:00
// MAIN_DISALLOW_URL_INTO_DESCRIPTIONS = 1, disallow url links except if on the local wrapper document.php or viewimage.php
// MAIN_DISALLOW_URL_INTO_DESCRIPTIONS = 2, disallow all urls link
print '<strong>MAIN_DISALLOW_URL_INTO_DESCRIPTIONS</strong> = ' . getDolGlobalString ( 'MAIN_DISALLOW_URL_INTO_DESCRIPTIONS' , '<span class="opacitymedium">' . $langs -> trans ( " Undefined " ) . ' (' . $langs -> trans ( " Recommended " ) . ': 1=only local links allowed (to wrapper document.php or image.php) or 2=no links at all)</span>' ) . " <br> " ;
2023-04-06 11:39:04 +00:00
print '<br>' ;
2023-06-03 09:31:24 +00:00
print '<strong>MAIN_ALLOW_SVG_FILES_AS_EXTERNAL_LINKS</strong> = ' . getDolGlobalString ( 'MAIN_ALLOW_SVG_FILES_AS_EXTERNAL_LINKS' , '<span class="opacitymedium">' . $langs -> trans ( " Undefined " ) . ' (' . $langs -> trans ( " Recommended " ) . ': ' . $langs -> trans ( " Undefined " ) . ' ' . $langs -> trans ( " or " ) . ' 0)</span>' ) . " <br> " ;
print '<br>' ;
2026-03-25 20:36:20 +00:00
print '<strong>MAIN_ALLOW_LINK_STARTING_WITH_FILE</strong> = ' . getDolGlobalString ( 'MAIN_ALLOW_LINK_STARTING_WITH_FILE' , '<span class="opacitymedium">' . $langs -> trans ( " Undefined " ) . ' (' . $langs -> trans ( " Recommended " ) . ': ' . $langs -> trans ( " Undefined " ) . ' ' . $langs -> trans ( " or " ) . ' 0)</span>' ) . " <br> " ;
print '<br>' ;
2025-11-18 22:34:23 +00:00
print '<strong>MAIN_ALLOW_OBFUSCATION_METHODS_IN_DOL_EVAL</strong> = ' . getDolGlobalString ( 'MAIN_ALLOW_OBFUSCATION_METHODS_IN_DOL_EVAL' , '<span class="opacitymedium">' . $langs -> trans ( " Undefined " ) . '</span>' );
2026-01-07 14:10:47 +00:00
print ' <span class="opacitymedium">(' . $langs -> trans ( " Recommended " ) . " : " . $langs -> trans ( " Undefined " ) . ' ' . $langs -> trans ( " or " ) . " 0 - The value 1 allows the use of concatenation functions like . or dol_concat into extra fields conditions or formula but is not secured)</span><br> " ;
print '<br>' ;
2023-06-03 09:31:24 +00:00
// MAIN_ALLOW_LOCAL_LINKS_AS_EXTERNAL_LINKS
2022-12-20 17:22:10 +00:00
print '<strong>MAIN_SECURITY_CSRF_TOKEN_RENEWAL_ON_EACH_CALL</strong> = ' . getDolGlobalString ( 'MAIN_SECURITY_CSRF_TOKEN_RENEWAL_ON_EACH_CALL' , '<span class="opacitymedium">' . $langs -> trans ( " Undefined " ) . ' (' . $langs -> trans ( " Recommended " ) . ': ' . $langs -> trans ( " Undefined " ) . ' ' . $langs -> trans ( " or " ) . ' 0)</span>' ) . " <br> " ;
2022-08-16 13:19:21 +00:00
print '<br>' ;
2023-02-13 11:27:23 +00:00
print '<strong>MAIN_DOCUMENT_IS_OUTSIDE_WEBROOT_SO_NOEXE_NOT_REQUIRED</strong> = ' . getDolGlobalString ( 'MAIN_DOCUMENT_IS_OUTSIDE_WEBROOT_SO_NOEXE_NOT_REQUIRED' , '<span class="opacitymedium">' . $langs -> trans ( " Undefined " ) . ' (' . $langs -> trans ( " Recommended " ) . ': ' . $langs -> trans ( " Undefined " ) . ' ' . $langs -> trans ( " or " ) . ' 0)</span>' ) . " <br> " ;
2023-12-21 12:01:09 +00:00
2026-05-17 12:56:38 +00:00
/*
* If we call URL with param security . php / test / test and security . php / test % 2 Ftest , we can get information if
* AllowEncodedSlashes is enabled or not .
* Note : When there is a string after the page . php /... and before the ? or #, it is available into the $_SERVER["PATH_INFO"].
* Note about $_SERVER :
* REQUEST_URI : / test / before_rewrite / script . php / path / info ? q = helloword
* PHP_SELF : / test / after_rewrite / script . php / path / info
* QUERY_STRING : q = helloword
* SCRIPT_NAME : / test / after_rewrite / script . php
* PATH_INFO : / path / info ( usually not defined because there is no text between page . php /... and before the ? or #)
* SCRIPT_FILENAME : / var / www / test / php / script . php
* __FILE__ : / var / www / test / php / script_included . php
*/
$request = $_SERVER [ 'REQUEST_URI' ];
if ( strpos ( $request , '%2F' ) !== false ) { // It seems than even when AllowEncodedSlashes=NoDecode, behaviour is forced to On on some servers.
echo '<br><strong>AllowEncodedSlashes probably enabled (NoDecode)</strong>' ;
} elseif ( strpos ( $request , '/test/test' ) !== false ) {
echo '<br><strong>AllowEncodedSlashes enabled with decoding On</strong>' ;
} else {
//echo 'Cannot determine';
}
2023-12-02 14:18:10 +00:00
print '</div>' ;
2025-04-01 15:53:33 +00:00
print '<br>' ;
2021-07-06 00:07:58 +00:00
print '<br>' ;
2021-06-19 23:54:55 +00:00
2022-09-11 18:48:23 +00:00
print load_fiche_titre ( $langs -> trans ( " LimitsAndMitigation " ), '' , 'folder' );
2024-05-31 12:59:16 +00:00
print '<div class="divsection wordbreak">' ;
2023-12-02 14:18:10 +00:00
2022-09-11 18:48:23 +00:00
print '<span class="opacitymedium">' ;
2023-07-25 10:56:11 +00:00
print $langs -> trans ( " RecommendMitigationOnURL " ) . '<br>' ;
2022-09-11 18:48:23 +00:00
print '</span>' ;
print '<br>' ;
2022-10-18 10:59:15 +00:00
$urlexamplebase = 'https://github.com/Dolibarr/dolibarr/blob/develop/dev/setup/fail2ban/filter.d/' ;
2023-12-02 14:18:10 +00:00
print '<span class="fas fa-shield-alt"></span> Login or API authentication (see <a target="_blank" rel="noopener" href="' . $urlexamplebase . 'web-dolibarr-rulesbruteforce.conf">fail2ban example on GitHub</a>)<br>' ;
print '<span class="fas fa-shield-alt"></span> ' . DOL_URL_ROOT . '/passwordforgotten.php (see <a target="_blank" rel="noopener" href="' . $urlexamplebase . 'web-dolibarr-rulespassforgotten.conf">fail2ban example on GitHub</a>)<br>' ;
print '<span class="fas fa-shield-alt"></span> ' . DOL_URL_ROOT . '/public/* (see <a target="_blank" rel="noopener" href="' . $urlexamplebase . 'web-dolibarr-limitpublic.conf">fail2ban example on GitHub</a>)<br>' ;
2022-11-22 20:27:30 +00:00
print '<br>' ;
$urlexamplebase = 'https://github.com/Dolibarr/dolibarr/blob/develop/dev/setup/apache/' ;
2023-12-02 14:18:10 +00:00
print '<span class="fas fa-shield-alt"></span> You can also protect the application using a HTTP Basic authentication layer (see <a target="_blank" rel="noopener" href="' . $urlexamplebase . 'virtualhost">apache2 virtualhost example on GitHub</a>)<br>' ;
2022-09-11 18:48:23 +00:00
2023-12-02 14:18:10 +00:00
print '</div>' ;
2022-09-11 18:48:23 +00:00
2020-10-13 22:57:39 +00:00
// End of page
llxFooter ();
$db -> close ();