diff --git a/server/controllers/system/get-settings.php b/server/controllers/system/get-settings.php index 6d1c7a90..9ade4956 100755 --- a/server/controllers/system/get-settings.php +++ b/server/controllers/system/get-settings.php @@ -52,7 +52,8 @@ class GetSettingsController extends Controller { 'registration' => Setting::getSetting('registration')->getValue(), 'departments' => Department::getDepartmentNames(), 'supportedLanguages' => Language::getSupportedLanguages(), - 'allowedLanguages' => Language::getAllowedLanguages() + 'allowedLanguages' => Language::getAllowedLanguages(), + 'session-prefix' => Setting::getSetting('session-prefix') ]; } else { $settingsList = [ @@ -68,7 +69,8 @@ class GetSettingsController extends Controller { 'departments' => Department::getDepartmentNames(), 'supportedLanguages' => Language::getSupportedLanguages(), 'allowedLanguages' => Language::getAllowedLanguages(), - 'user-system-enabled' => Setting::getSetting('user-system-enabled')->getValue() * 1 + 'user-system-enabled' => Setting::getSetting('user-system-enabled')->getValue() * 1, + 'session-prefix' => Setting::getSetting('session-prefix') ]; } } diff --git a/server/controllers/system/init-settings.php b/server/controllers/system/init-settings.php index 844b1fb8..6a68ed9d 100755 --- a/server/controllers/system/init-settings.php +++ b/server/controllers/system/init-settings.php @@ -78,7 +78,8 @@ class InitSettingsController extends Controller { 'ticket-gap' => Hashing::generateRandomPrime(1000000, 9999999), 'file-gap' => Hashing::generateRandomPrime(1000000, 9999999), 'file-first-number' => Hashing::generateRandomNumber(1000000, 9999999), - 'file-quantity' => 0 + 'file-quantity' => 0, + 'session-prefix' => 'opensupports-'.Hashing::generateRandomToken().'_' ]); } diff --git a/server/libs/Controller.php b/server/libs/Controller.php index 2412af24..04c38f20 100755 --- a/server/libs/Controller.php +++ b/server/libs/Controller.php @@ -14,6 +14,7 @@ abstract class Controller { public function getHandler() { return function () { try { + Session::getInstance()->setSessionPrefix(Setting::getSetting('session-prefix')->getValue()); $this->validate(); $this->handler(); } catch (\Exception $exception) { diff --git a/server/models/Session.php b/server/models/Session.php index bd5e987e..d5268a20 100755 --- a/server/models/Session.php +++ b/server/models/Session.php @@ -2,7 +2,8 @@ class Session { static $instance = null; - + private $sessionPrefix = ''; + private function __construct() { $this->initSession(); } @@ -65,14 +66,14 @@ class Session { } public function store($key, $value) { - $_SESSION[$key] = $value; + $_SESSION[$this->sessionPrefix . $key] = $value; } private function getStoredData($key) { $storedValue = null; - if (array_key_exists($key, $_SESSION)) { - $storedValue = $_SESSION[$key]; + if (array_key_exists($this->sessionPrefix . $key, $_SESSION)) { + $storedValue = $_SESSION[$this->sessionPrefix . $key]; } return $storedValue; @@ -81,4 +82,8 @@ class Session { public function isLoggedWithId($userId) { return ($this->getStoredData('userId') === $userId); } + + public function setSessionPrefix($prefix) { + $this->sessionPrefix = $prefix; + } } \ No newline at end of file