aboutsummaryrefslogtreecommitdiff
path: root/app/Models
diff options
context:
space:
mode:
authorGravatar Luc SANCHEZ <4697568+ColonelMoutarde@users.noreply.github.com> 2023-03-26 14:17:22 +0200
committerGravatar GitHub <noreply@github.com> 2023-03-26 14:17:22 +0200
commit5f898dcc5ee244e4adbd6aa83b607c844d432fb6 (patch)
tree3511bcb3f78d053f4488e70000ab55fee7bb688a /app/Models
parentdf24fa2207f56909084c613495b6f235b351c640 (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.php16
-rw-r--r--app/Models/Context.php21
-rw-r--r--app/Models/Feed.php2
-rw-r--r--app/Models/LogDAO.php14
-rw-r--r--app/Models/UserDAO.php2
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');
}