diff options
| author | Charles <sircharlesaze@gmail.com> | 2020-01-09 10:55:03 +0100 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2020-01-09 13:09:38 +0100 |
| commit | 04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa (patch) | |
| tree | 5c691241355c943a3c68ddb06b8cf8c60aa11319 /srcs/phpmyadmin/libraries/classes/Logging.php | |
| parent | 7e0d85db834d6351ed85d01e5126ac31dc510b86 (diff) | |
| download | ft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.tar.gz ft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.tar.bz2 ft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.zip | |
phpmyadmin working
Diffstat (limited to 'srcs/phpmyadmin/libraries/classes/Logging.php')
| -rw-r--r-- | srcs/phpmyadmin/libraries/classes/Logging.php | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/srcs/phpmyadmin/libraries/classes/Logging.php b/srcs/phpmyadmin/libraries/classes/Logging.php new file mode 100644 index 0000000..7318583 --- /dev/null +++ b/srcs/phpmyadmin/libraries/classes/Logging.php @@ -0,0 +1,102 @@ +<?php +/* vim: set expandtab sw=4 ts=4 sts=4: */ +/** + * Logging functionality for webserver. + * + * This includes web server specific code to log some information. + * + * @package PhpMyAdmin + */ +declare(strict_types=1); + +namespace PhpMyAdmin; + +use PhpMyAdmin\Core; + +/** + * Misc logging functions + * + * @package PhpMyAdmin + */ +class Logging +{ + /** + * Get authentication logging destination + * + * @return string + */ + public static function getLogDestination() + { + $log_file = $GLOBALS['PMA_Config']->get('AuthLog'); + + /* Autodetect */ + if ($log_file == 'auto') { + if (function_exists('syslog')) { + $log_file = 'syslog'; + } elseif (function_exists('error_log')) { + $log_file = 'php'; + } else { + $log_file = ''; + } + } + return $log_file; + } + + /** + * Generate log message for authentication logging + * + * @param string $user user name + * @param string $status status message + * + * @return string + */ + public static function getLogMessage($user, $status) + { + if ($status == 'ok') { + return 'user authenticated: ' . $user . ' from ' . Core::getIp(); + } + return 'user denied: ' . $user . ' (' . $status . ') from ' . Core::getIp(); + } + + /** + * Logs user information to webserver logs. + * + * @param string $user user name + * @param string $status status message + * + * @return void + */ + public static function logUser($user, $status = 'ok') + { + if (function_exists('apache_note')) { + apache_note('userID', $user); + apache_note('userStatus', $status); + } + /* Do not log successful authentications */ + if (! $GLOBALS['PMA_Config']->get('AuthLogSuccess') && $status == 'ok') { + return; + } + $log_file = self::getLogDestination(); + if (empty($log_file)) { + return; + } + $message = self::getLogMessage($user, $status); + if ($log_file == 'syslog') { + if (function_exists('syslog')) { + @openlog('phpMyAdmin', LOG_NDELAY | LOG_PID, LOG_AUTHPRIV); + @syslog(LOG_WARNING, $message); + closelog(); + } + } elseif ($log_file == 'php') { + @error_log($message); + } elseif ($log_file == 'sapi') { + @error_log($message, 4); + } else { + @error_log( + date('M d H:i:s') . ' phpmyadmin: ' . $message . "\n", + 3, + $log_file + ); + } + } +} |
