summaryrefslogtreecommitdiff
path: root/classes
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2021-02-25 09:33:36 +0300
committerAndrew Dolgov <[email protected]>2021-02-25 09:33:36 +0300
commit988eb3ac91f039583fcc56fb8d551106592e80bf (patch)
treeb55e7c059d381a837d13579d55c6371a4ff5864b /classes
parent922a6992153a95b0639253752a6125a45d4fd3ab (diff)
initial (wip) for new prefs
Diffstat (limited to 'classes')
-rw-r--r--classes/config.php6
-rwxr-xr-xclasses/handler/public.php10
-rw-r--r--classes/pref/prefs.php2
-rw-r--r--classes/userhelper.php4
4 files changed, 14 insertions, 8 deletions
diff --git a/classes/config.php b/classes/config.php
index effbb78ad..95bf3bf71 100644
--- a/classes/config.php
+++ b/classes/config.php
@@ -124,12 +124,12 @@ class Config {
list ($defval, $deftype) = $this::_DEFAULTS[$const];
- $this->params[$cvalue] = [ $this->cast_to(!empty($override) ? $override : $defval, $deftype), $deftype ];
+ $this->params[$cvalue] = [ self::cast_to(!empty($override) ? $override : $defval, $deftype), $deftype ];
}
}
}
- private function cast_to(string $value, int $type_hint) {
+ static function cast_to(string $value, int $type_hint) {
switch ($type_hint) {
case self::T_BOOL:
return sql_bool_to_bool($value);
@@ -149,7 +149,7 @@ class Config {
private function _add(string $param, string $default, int $type_hint) {
$override = getenv($this::_ENVVAR_PREFIX . $param);
- $this->params[$param] = [ $this->cast_to(!empty($override) ? $override : $default, $type_hint), $type_hint ];
+ $this->params[$param] = [ self::cast_to(!empty($override) ? $override : $default, $type_hint), $type_hint ];
}
static function add(string $param, string $default, int $type_hint = Config::T_STRING) {
diff --git a/classes/handler/public.php b/classes/handler/public.php
index 42be6f713..58e467a4f 100755
--- a/classes/handler/public.php
+++ b/classes/handler/public.php
@@ -354,10 +354,12 @@ class Handler_Public extends Handler {
$remember_me = clean($_POST["remember_me"] ?? false);
$safe_mode = checkbox_to_sql_bool(clean($_POST["safe_mode"] ?? false));
- if ($remember_me) {
- @session_set_cookie_params(Config::get(Config::SESSION_COOKIE_LIFETIME));
- } else {
- @session_set_cookie_params(0);
+ if (session_status() != PHP_SESSION_ACTIVE) {
+ if ($remember_me) {
+ session_set_cookie_params(Config::get(Config::SESSION_COOKIE_LIFETIME));
+ } else {
+ session_set_cookie_params(0);
+ }
}
if (UserHelper::authenticate($login, $password)) {
diff --git a/classes/pref/prefs.php b/classes/pref/prefs.php
index 0d0dcadbc..ffee57ed5 100644
--- a/classes/pref/prefs.php
+++ b/classes/pref/prefs.php
@@ -1370,6 +1370,8 @@ class Pref_Prefs extends Handler_Protected {
static function _init_user_prefs($uid, $profile = false) {
+ Prefs::initialize($uid, $profile);
+
if (get_schema_version() < 63) $profile_qpart = "";
$pdo = Db::pdo();
diff --git a/classes/userhelper.php b/classes/userhelper.php
index 82a2fe05f..949c8a5cf 100644
--- a/classes/userhelper.php
+++ b/classes/userhelper.php
@@ -18,7 +18,9 @@ class UserHelper {
if ($user_id && !$check_only) {
- session_start();
+ if (session_status() != PHP_SESSION_ACTIVE)
+ session_start();
+
session_regenerate_id(true);
$_SESSION["uid"] = $user_id;