Implement lint

This commit is contained in:
2026-08-27 12:45:30 +02:00
parent 171db88400
commit 17009b641f
41 changed files with 70402 additions and 580 deletions
+45 -46
View File
@@ -7,23 +7,17 @@ use Franzz\Objects\Db;
class User extends PhpObject {
//DB Tables
const USER_TABLE = 'users';
public const USER_TABLE = 'users';
//Clearance Levels
const CLEARANCE_USER = 0;
const CLEARANCE_ADMIN = 9;
const CLEARANCES = array('user'=>self::CLEARANCE_USER, 'admin'=>self::CLEARANCE_ADMIN);
public const CLEARANCE_USER = 0;
public const CLEARANCE_ADMIN = 9;
public const CLEARANCES = ['user'=>self::CLEARANCE_USER, 'admin'=>self::CLEARANCE_ADMIN];
const USER_SUBSCRIBED = 1;
const USER_UNSUBSCRIBED = 0;
public const USER_SUBSCRIBED = 1;
public const USER_UNSUBSCRIBED = 0;
//Session & Cookie
const SESSION_ID_USER = 'id_user';
const SESSION_ADMIN = 'admin_authenticated';
const COOKIE_TOKEN = 'login';
const COOKIE_DURATION = 60 * 60 * 24 * 365; //1 year
const DEFAULT_USER = array(
public const DEFAULT_USER = [
'id' => 0,
'id_user' => 0,
'name' => '',
@@ -32,7 +26,13 @@ class User extends PhpObject {
'timezone' => '',
'subscribed'=> self::USER_UNSUBSCRIBED,
'clearance' => self::CLEARANCE_USER
);
];
//Session & Cookie
private const SESSION_ID_USER = 'id_user';
private const SESSION_ADMIN = 'admin_authenticated';
private const COOKIE_TOKEN = 'login';
private const COOKIE_DURATION = 60 * 60 * 24 * 365; //1 year
/**
* Database Handle
@@ -73,22 +73,22 @@ class User extends PhpObject {
}
public function getUserById($iUserId) {
$asUsersInfo = array();
$asUsersInfo = [];
if($iUserId > 0) $asUsersInfo = $this->getUsersInfo($iUserId);
return empty($asUsersInfo)?array():array_shift($asUsersInfo);
return empty($asUsersInfo)?[]:array_shift($asUsersInfo);
}
public function getUsersInfo($iUserId=-1) {
//Mapping between user fields and DB fields
$asSelect = array_keys($this->asUserInfo);
$asSelect[array_search('id', $asSelect)] = Db::getId(self::USER_TABLE)." AS id";
$asSelect[array_search('id', $asSelect)] = Db::getId(self::USER_TABLE).' AS id';
$asInfo = array(
$asInfo = [
'select' => $asSelect,
'from' => self::USER_TABLE
);
if($iUserId != -1) $asInfo['constraint'] = array(Db::getId(self::USER_TABLE) => $iUserId);
];
if($iUserId != -1) $asInfo['constraint'] = [Db::getId(self::USER_TABLE) => $iUserId];
return $this->oDb->selectRows($asInfo);
}
@@ -103,7 +103,7 @@ class User extends PhpObject {
$iUserId = $this->oDb->insertRow(
self::USER_TABLE,
array('email'=>$sEmail, 'language'=>$sLang, 'timezone'=>$sTimezone)
['email'=>$sEmail, 'language'=>$sLang, 'timezone'=>$sTimezone]
);
if($iUserId == 0) $sLangId = 'error.commit_db';
@@ -121,7 +121,7 @@ class User extends PhpObject {
public function setSubscription($bSubscribed) {
if($this->getUserId() > 0) {
$iSubscribed = $bSubscribed?1:0;
$iUserId = $this->oDb->updateRow(self::USER_TABLE, $this->getUserId(), array('subscribed'=>$iSubscribed));
$iUserId = $this->oDb->updateRow(self::USER_TABLE, $this->getUserId(), ['subscribed'=>$iSubscribed]);
if(!$iUserId) return Livetrail::getResult(false, 'error.commit_db');
$this->asUserInfo['subscribed'] = $iSubscribed;
return Livetrail::getResult(true, $iSubscribed?'account.subscribed':'account.unsubscribed');
@@ -131,11 +131,11 @@ class User extends PhpObject {
public function getSubscribedUsersInfo() {
$asSelect = array_keys($this->asUserInfo);
$asSelect[array_search('id', $asSelect)] = Db::getId(self::USER_TABLE).' AS id';
return $this->oDb->selectRows(array(
return $this->oDb->selectRows([
'select'=>$asSelect,
'from'=>self::USER_TABLE,
'constraint'=>array('subscribed'=>self::USER_SUBSCRIBED)
));
'constraint'=>['subscribed'=>self::USER_SUBSCRIBED]
]);
}
public function login($sEmail, $sPassword, $sLang, $sTimezone, $sNickName='') {
@@ -152,8 +152,8 @@ class User extends PhpObject {
//Check Email presence in DB
$asDBUser = $this->oDb->selectRow(
self::USER_TABLE,
array('email' => $sEmail),
array(Db::getId(self::USER_TABLE), 'password', 'clearance')
['email' => $sEmail],
[Db::getId(self::USER_TABLE), 'password', 'clearance']
);
$iUserId = $asDBUser[Db::getId(self::USER_TABLE)] ?? 0;
@@ -166,18 +166,18 @@ class User extends PhpObject {
//Set password
elseif(empty($asDBUser['password'])) {
if(!$this->oDb->updateRow(self::USER_TABLE, $iUserId, array('password' => password_hash($sPassword, PASSWORD_DEFAULT)))) $sLangId = 'error.commit_db';
if(!$this->oDb->updateRow(self::USER_TABLE, $iUserId, ['password' => password_hash($sPassword, PASSWORD_DEFAULT)])) $sLangId = 'error.commit_db';
else {
$sLangId = 'account.password_set';
$bSuccess = true;
}
}
}
//Check password
elseif(password_verify($sPassword, $asDBUser['password'])) {
$bSuccess = true;
$sLangId = 'account.logged_in';
}
}
else $sLangId = 'account.invalid_credentials';
}
else {
@@ -192,7 +192,7 @@ class User extends PhpObject {
$bSubscribe = $bSuccess;
$sLangId = $bSuccess?'':$asAddResult['desc_lang_id'];
$iUserId = $asAddResult['data'][Db::getId(self::USER_TABLE)] ?? 0;
}
}
}
if($bSuccess) {
@@ -201,11 +201,11 @@ class User extends PhpObject {
$this->setTokenCookie();
}
return Livetrail::getResult($bSuccess, $sLangId, array('subscribe'=>$bSubscribe));
return Livetrail::getResult($bSuccess, $sLangId, ['subscribe'=>$bSubscribe]);
}
public function logout() {
if($this->getUserId() > 0) $this->oDb->updateRow(self::USER_TABLE, $this->getUserId(), array('token' => '', 'token_exp' => '0000-00-00 00:00:00'));
if($this->getUserId() > 0) $this->oDb->updateRow(self::USER_TABLE, $this->getUserId(), ['token' => '', 'token_exp' => '0000-00-00 00:00:00']);
$this->clearSession();
$this->clearCookie();
$this->setUserId(0);
@@ -213,38 +213,37 @@ class User extends PhpObject {
}
public function updateNickname($sNickname) {
if($this->getUserId() > 0 && $sNickname!='') $this->oDb->updateRow(self::USER_TABLE, $this->getUserId(), array('name'=>$sNickname));
if($this->getUserId() > 0 && $sNickname!='') $this->oDb->updateRow(self::USER_TABLE, $this->getUserId(), ['name'=>$sNickname]);
}
private function updateGravatar($iUserId, $sEmail) {
$sImage = ($sEmail != '')?@file_get_contents('https://www.gravatar.com/avatar/'.md5($sEmail).'.png?d=404&s=24'):'';
$this->oDb->updateRow(self::USER_TABLE, $iUserId, array('gravatar' => base64_encode($sImage)));
$this->oDb->updateRow(self::USER_TABLE, $iUserId, ['gravatar' => base64_encode($sImage)]);
}
public function checkUserClearance($iClearance)
{
public function checkUserClearance($iClearance) {
return ($this->asUserInfo['clearance'] >= $iClearance);
}
public function setUserClearance($iUserId, $iClearance) {
$bSuccess = false;
$sLangId = '';
$asLangParams = array();
$asLangParams = [];
if(!$this->checkUserClearance(self::CLEARANCE_ADMIN)) $sLangId = 'error.no_auth';
else {
if(!in_array($iClearance, self::CLEARANCES)) {
$sLangId = 'error.impossible_value';
$asLangParams = array($iClearance, 'clearance');
$asLangParams = [$iClearance, 'clearance'];
}
else {
$iUserId = $this->oDb->updateRow(self::USER_TABLE, $iUserId, array('clearance'=>$iClearance));
$iUserId = $this->oDb->updateRow(self::USER_TABLE, $iUserId, ['clearance'=>$iClearance]);
if(!$iUserId) $sLangId = 'error.commit_db';
else $bSuccess = true;
}
}
return Livetrail::getResult($bSuccess, $sLangId, array(), $asLangParams);
return Livetrail::getResult($bSuccess, $sLangId, [], $asLangParams);
}
/* Session */
@@ -285,7 +284,7 @@ class User extends PhpObject {
$asUser = $this->oDb->selectRow(
self::USER_TABLE,
$iUserId,
array('clearance', 'token', 'token_exp')
['clearance', 'token', 'token_exp']
);
//Check token value
@@ -308,10 +307,10 @@ class User extends PhpObject {
$this->oDb->updateRow(
self::USER_TABLE,
$this->getUserId(),
array(
[
'token' => hash('sha256', $sCookieValue),
'token_exp' => date(Db::TIMESTAMP_FORMAT, time() + self::COOKIE_DURATION)
)
]
);
$this->setCookie($sCookieValue, time() + self::COOKIE_DURATION);
@@ -325,13 +324,13 @@ class User extends PhpObject {
setcookie(
self::COOKIE_TOKEN,
$sValue,
array(
[
'expires' => $iExpires,
'path' => '/',
'secure' => (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') || (($_SERVER['HTTP_X_FORWARDED_PROTO'] ?? '') === 'https'),
'httponly' => true,
'samesite' => 'Lax'
)
]
);
}