]> git.mxchange.org Git - friendica.git/blobdiff - src/Module/Admin/Logs/View.php
Fix security vulnerability in admin modules
[friendica.git] / src / Module / Admin / Logs / View.php
index 45b19bfacf6fe14f018dc9f988ad7820d537ae15..3a60ed99ed94035c86e23883a1d20ea1140b48db 100644 (file)
@@ -1,52 +1,70 @@
-<?php\r
-\r
-namespace Friendica\Module\Admin\Logs;\r
-\r
-use Friendica\Core\Config;\r
-use Friendica\Core\L10n;\r
-use Friendica\Core\Renderer;\r
-use Friendica\Module\BaseAdminModule;\r
-use Friendica\Util\Strings;\r
-\r
-class View extends BaseAdminModule\r
-{\r
-       public static function content()\r
-       {\r
-               parent::content();\r
-\r
-               $t = Renderer::getMarkupTemplate('admin/logs/view.tpl');\r
-               $f = Config::get('system', 'logfile');\r
-               $data = '';\r
-\r
-               if (!file_exists($f)) {\r
-                       $data = L10n::t('Error trying to open <strong>%1$s</strong> log file.\r\n<br/>Check to see if file %1$s exist and is readable.', $f);\r
-               } else {\r
-                       $fp = fopen($f, 'r');\r
-                       if (!$fp) {\r
-                               $data = L10n::t('Couldn\'t open <strong>%1$s</strong> log file.\r\n<br/>Check to see if file %1$s is readable.', $f);\r
-                       } else {\r
-                               $fstat = fstat($fp);\r
-                               $size = $fstat['size'];\r
-                               if ($size != 0) {\r
-                                       if ($size > 5000000 || $size < 0) {\r
-                                               $size = 5000000;\r
-                                       }\r
-                                       $seek = fseek($fp, 0 - $size, SEEK_END);\r
-                                       if ($seek === 0) {\r
-                                               $data = Strings::escapeHtml(fread($fp, $size));\r
-                                               while (!feof($fp)) {\r
-                                                       $data .= Strings::escapeHtml(fread($fp, 4096));\r
-                                               }\r
-                                       }\r
-                               }\r
-                               fclose($fp);\r
-                       }\r
-               }\r
-               return Renderer::replaceMacros($t, [\r
-                       '$title' => L10n::t('Administration'),\r
-                       '$page' => L10n::t('View Logs'),\r
-                       '$data' => $data,\r
-                       '$logname' => Config::get('system', 'logfile')\r
-               ]);\r
-       }\r
-}\r
+<?php
+/**
+ * @copyright Copyright (C) 2020, Friendica
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero 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 Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+
+namespace Friendica\Module\Admin\Logs;
+
+use Friendica\Core\Renderer;
+use Friendica\DI;
+use Friendica\Module\BaseAdmin;
+use Friendica\Util\Strings;
+
+class View extends BaseAdmin
+{
+       public static function content(array $parameters = [])
+       {
+               parent::content($parameters);
+
+               $t = Renderer::getMarkupTemplate('admin/logs/view.tpl');
+               $f = DI::config()->get('system', 'logfile');
+               $data = '';
+
+               if (!file_exists($f)) {
+                       $data = DI::l10n()->t('Error trying to open <strong>%1$s</strong> log file.\r\n<br/>Check to see if file %1$s exist and is readable.', $f);
+               } else {
+                       $fp = fopen($f, 'r');
+                       if (!$fp) {
+                               $data = DI::l10n()->t('Couldn\'t open <strong>%1$s</strong> log file.\r\n<br/>Check to see if file %1$s is readable.', $f);
+                       } else {
+                               $fstat = fstat($fp);
+                               $size = $fstat['size'];
+                               if ($size != 0) {
+                                       if ($size > 5000000 || $size < 0) {
+                                               $size = 5000000;
+                                       }
+                                       $seek = fseek($fp, 0 - $size, SEEK_END);
+                                       if ($seek === 0) {
+                                               $data = Strings::escapeHtml(fread($fp, $size));
+                                               while (!feof($fp)) {
+                                                       $data .= Strings::escapeHtml(fread($fp, 4096));
+                                               }
+                                       }
+                               }
+                               fclose($fp);
+                       }
+               }
+               return Renderer::replaceMacros($t, [
+                       '$title' => DI::l10n()->t('Administration'),
+                       '$page' => DI::l10n()->t('View Logs'),
+                       '$data' => $data,
+                       '$logname' => DI::config()->get('system', 'logfile')
+               ]);
+       }
+}