diff options
| author | 2023-03-26 14:17:22 +0200 | |
|---|---|---|
| committer | 2023-03-26 14:17:22 +0200 | |
| commit | 5f898dcc5ee244e4adbd6aa83b607c844d432fb6 (patch) | |
| tree | 3511bcb3f78d053f4488e70000ab55fee7bb688a /app/Models | |
| parent | df24fa2207f56909084c613495b6f235b351c640 (diff) | |
Modernize Constants and use new constant for string 'currentUser' (#5089)
* Modernize Constants and use new constant 'currentUser'
* Add FreshRSS_Context::currentUser() function and use
* Add FreshRSS_Context::currentUser() function and use
* Add FreshRSS_Context::currentUser() function and use
* Add FreshRSS_Context::currentUser() function and use
* Add FreshRSS_Context::currentUser() function and use
* Update app/Controllers/userController.php
* Update app/Controllers/userController.php
* Update app/Controllers/userController.php
* Update app/Models/Auth.php
* Update p/api/greader.php
* Update p/api/greader.php
* Update p/api/greader.php
* Update app/Models/Context.php
* Update app/Models/LogDAO.php
* Update lib/Minz/Log.php
* Update p/api/greader.php
* Update app/layout/header.phtml
* Update app/views/helpers/export/articles.phtml
* Update cli/do-install.php
* Remarque's from Alkarex
* Remarque's from Alkarex
* Refactor using new Minz_User class
* Consistent naming of public constants
---------
Co-authored-by: Luc <sanchezluc+freshrss@gmail.com>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
Diffstat (limited to 'app/Models')
| -rw-r--r-- | app/Models/Auth.php | 16 | ||||
| -rw-r--r-- | app/Models/Context.php | 21 | ||||
| -rw-r--r-- | app/Models/Feed.php | 2 | ||||
| -rw-r--r-- | app/Models/LogDAO.php | 14 | ||||
| -rw-r--r-- | app/Models/UserDAO.php | 2 |
5 files changed, 32 insertions, 23 deletions
diff --git a/app/Models/Auth.php b/app/Models/Auth.php index 90fb128d4..65e761fb8 100644 --- a/app/Models/Auth.php +++ b/app/Models/Auth.php @@ -21,11 +21,11 @@ class FreshRSS_Auth { } self::$login_ok = Minz_Session::param('loginOk', false); - $current_user = Minz_Session::param('currentUser', ''); - if ($current_user == '') { + $current_user = Minz_User::name(); + if ($current_user === null) { $current_user = FreshRSS_Context::$system_conf->default_user; Minz_Session::_params([ - 'currentUser' => $current_user, + Minz_User::CURRENT_USER => $current_user, 'csrf' => false, ]); } @@ -58,7 +58,7 @@ class FreshRSS_Auth { if (isset($credentials[1])) { $current_user = trim($credentials[0]); Minz_Session::_params([ - 'currentUser' => $current_user, + Minz_User::CURRENT_USER => $current_user, 'passwordHash' => trim($credentials[1]), 'csrf' => false, ]); @@ -84,7 +84,7 @@ class FreshRSS_Auth { } if ($login_ok) { Minz_Session::_params([ - 'currentUser' => $current_user, + Minz_User::CURRENT_USER => $current_user, 'csrf' => false, ]); } @@ -112,7 +112,7 @@ class FreshRSS_Auth { self::$login_ok = Minz_Session::param('passwordHash') === FreshRSS_Context::$user_conf->passwordHash; break; case 'http_auth': - $current_user = Minz_Session::param('currentUser'); + $current_user = Minz_User::name(); self::$login_ok = strcasecmp($current_user, httpAuthUser()) === 0; break; case 'none': @@ -140,7 +140,7 @@ class FreshRSS_Auth { if (FreshRSS_Context::$user_conf == null) { return false; } - $currentUser = Minz_Session::param('currentUser'); + $currentUser = Minz_User::name(); $isAdmin = FreshRSS_Context::$user_conf->is_admin; $default_user = FreshRSS_Context::$system_conf->default_user; $ok = self::$login_ok; @@ -181,7 +181,7 @@ class FreshRSS_Auth { if ($username == '') { $username = FreshRSS_Context::$system_conf->default_user; } - Minz_Session::_param('currentUser', $username); + Minz_User::change($username); switch (FreshRSS_Context::$system_conf->auth_type) { case 'form': diff --git a/app/Models/Context.php b/app/Models/Context.php index 734458d7f..35bd192d7 100644 --- a/app/Models/Context.php +++ b/app/Models/Context.php @@ -4,7 +4,7 @@ * The context object handles the current configuration file and different * useful functions associated to the current view state. */ -class FreshRSS_Context { +final class FreshRSS_Context { /** * @var FreshRSS_UserConfiguration|null @@ -55,7 +55,7 @@ class FreshRSS_Context { /** * Initialize the context for the global system. */ - public static function initSystem($reload = false) { + public static function initSystem(bool $reload = false): FreshRSS_SystemConfiguration { if ($reload || FreshRSS_Context::$system_conf == null) { //TODO: Keep in session what we need instead of always reloading from disk FreshRSS_Context::$system_conf = FreshRSS_SystemConfiguration::init(DATA_PATH . '/config.php', FRESHRSS_PATH . '/config.default.php'); @@ -68,8 +68,9 @@ class FreshRSS_Context { /** * Initialize the context for the current user. + * @return FreshRSS_UserConfiguration|false */ - public static function initUser($username = '', $userMustExist = true) { + public static function initUser(string $username = '', bool $userMustExist = true) { FreshRSS_Context::$user_conf = null; if (!isset($_SESSION)) { Minz_Session::init('FreshRSS'); @@ -77,9 +78,9 @@ class FreshRSS_Context { Minz_Session::lock(); if ($username == '') { - $username = Minz_Session::param('currentUser', ''); + $username = Minz_User::name() ?? ''; } - if (($username === '_' || FreshRSS_user_Controller::checkUsername($username)) && + if (($username === Minz_User::INTERNAL_USER || FreshRSS_user_Controller::checkUsername($username)) && (!$userMustExist || FreshRSS_user_Controller::userExists($username))) { try { //TODO: Keep in session what we need instead of always reloading from disk @@ -88,7 +89,7 @@ class FreshRSS_Context { FRESHRSS_PATH . '/config-user.default.php', FreshRSS_Context::$system_conf->configurationSetter()); - Minz_Session::_param('currentUser', $username); + Minz_User::change($username); } catch (Exception $ex) { Minz_Log::warning($ex->getMessage(), USERS_PATH . '/_/' . LOG_FILENAME); } @@ -96,7 +97,7 @@ class FreshRSS_Context { if (FreshRSS_Context::$user_conf == null) { Minz_Session::_params([ 'loginOk' => false, - 'currentUser' => false, + Minz_User::CURRENT_USER => false, ]); } Minz_Session::unlock(); @@ -212,6 +213,7 @@ class FreshRSS_Context { * * If $array is true, the first item of the returned value is 'f' or 'c' and * the second is the id. + * @return string|array{string,bool|int} */ public static function currentGet($array = false) { if (self::$current_get['all']) { @@ -239,6 +241,7 @@ class FreshRSS_Context { } elseif (self::$current_get['tags']) { return 'T'; } + return ''; } /** @@ -272,8 +275,8 @@ class FreshRSS_Context { /** * @return bool true if $get parameter correspond to the $current_get attribute. */ - public static function isCurrentGet($get): bool { - $type = $get[0]; + public static function isCurrentGet(string $get): bool { + $type = substr($get, 0, 1); $id = substr($get, 2); switch($type) { diff --git a/app/Models/Feed.php b/app/Models/Feed.php index 7c46199a5..0b16bc796 100644 --- a/app/Models/Feed.php +++ b/app/Models/Feed.php @@ -1011,7 +1011,7 @@ class FreshRSS_Feed extends Minz_Model { Minz_Log::debug($text); Minz_Log::debug($text, PSHB_LOG); } - $currentUser = Minz_Session::param('currentUser'); + $currentUser = Minz_User::name(); if (FreshRSS_user_Controller::checkUsername($currentUser) && !file_exists($path . '/' . $currentUser . '.txt')) { touch($path . '/' . $currentUser . '.txt'); } diff --git a/app/Models/LogDAO.php b/app/Models/LogDAO.php index 787945af4..6e5bf171b 100644 --- a/app/Models/LogDAO.php +++ b/app/Models/LogDAO.php @@ -1,9 +1,15 @@ <?php class FreshRSS_LogDAO { - public static function lines() { + + private static function logPath(): string { + return USERS_PATH . '/' . (Minz_User::name() ?? Minz_User::INTERNAL_USER) . '/' . LOG_FILENAME; + } + + /** @return array<FreshRSS_Log> */ + public static function lines(): array { $logs = array(); - $handle = @fopen(join_path(DATA_PATH, 'users', Minz_Session::param('currentUser', '_'), LOG_FILENAME), 'r'); + $handle = @fopen(self::logPath(), 'r'); if ($handle) { while (($line = fgets($handle)) !== false) { if (preg_match('/^\[([^\[]+)\] \[([^\[]+)\] --- (.*)$/', $line, $matches)) { @@ -19,8 +25,8 @@ class FreshRSS_LogDAO { return array_reverse($logs); } - public static function truncate() { - file_put_contents(join_path(DATA_PATH, 'users', Minz_Session::param('currentUser', '_'), LOG_FILENAME), ''); + public static function truncate(): void { + file_put_contents(self::logPath(), ''); if (FreshRSS_Auth::hasAccess('admin')) { file_put_contents(ADMIN_LOG, ''); file_put_contents(API_LOG, ''); diff --git a/app/Models/UserDAO.php b/app/Models/UserDAO.php index 67498f5cd..9f91df80e 100644 --- a/app/Models/UserDAO.php +++ b/app/Models/UserDAO.php @@ -44,7 +44,7 @@ class FreshRSS_UserDAO extends Minz_ModelPdo { public static function touch($username = '') { if (!FreshRSS_user_Controller::checkUsername($username)) { - $username = Minz_Session::param('currentUser', '_'); + $username = Minz_User::name() ?? Minz_User::INTERNAL_USER; } return touch(USERS_PATH . '/' . $username . '/config.php'); } |
