aboutsummaryrefslogtreecommitdiff
path: root/srcs/phpmyadmin/libraries/classes/Logging.php
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2020-01-09 10:55:03 +0100
committerCharles <sircharlesaze@gmail.com>2020-01-09 13:09:38 +0100
commit04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa (patch)
tree5c691241355c943a3c68ddb06b8cf8c60aa11319 /srcs/phpmyadmin/libraries/classes/Logging.php
parent7e0d85db834d6351ed85d01e5126ac31dc510b86 (diff)
downloadft_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.php102
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
+ );
+ }
+ }
+}