parent
3e12705ff6
commit
d7f3734d78
@ -1,116 +0,0 @@ |
||||
<?php |
||||
|
||||
declare(strict_types=1); |
||||
|
||||
/** |
||||
* @author Robert Strutts <Robert@TryingToScale.com> |
||||
* @copyright Copyright (c) 2022, Robert Strutts. |
||||
* @license https://mit-license.org/ |
||||
*/ |
||||
|
||||
namespace tts\services; |
||||
|
||||
class sessions { |
||||
|
||||
public function __construct(string $type) { |
||||
if ($type !== "none") { |
||||
switch ($type) { |
||||
case 'db': |
||||
$handler = new db_sessions(); |
||||
break; |
||||
case 'memory': |
||||
$handler = new memory_sessions(); |
||||
break; |
||||
case 'file': |
||||
default : |
||||
$handler = new \tts\sessions\file_sessions(); |
||||
} |
||||
session_set_save_handler($handler, true); |
||||
} |
||||
\tts\session_management::make_session_started(); |
||||
} |
||||
|
||||
private function get_enc_data(string $data): string { |
||||
$security_level = \main_tts\configure::get('session', 'session_security_level'); |
||||
if ($security_level === false || empty($data)) { |
||||
return $data; |
||||
} else { |
||||
$enc_sess = \main_tts\registry::get('di')->get_service('encryption'); |
||||
$enc_sess->change_security_level($security_level); |
||||
$d = $enc_sess->decrypt($data, \main_tts\configure::get('session', 'key')); |
||||
unset($enc_sess); |
||||
return $d; |
||||
} |
||||
} |
||||
|
||||
private function save_enc_data(string $data): string { |
||||
$security_level = \main_tts\configure::get('session', 'session_security_level'); |
||||
if ($security_level !== false) { |
||||
$enc_sess = \main_tts\registry::get('di')->get_service('encryption'); |
||||
$enc_sess->change_security_level($security_level); |
||||
$data = $enc_sess->encrypt($data, px_configure::get('session', 'key')); |
||||
unset($enc_sess); |
||||
} |
||||
return $data; |
||||
} |
||||
|
||||
/** |
||||
* Fetch Session Variable |
||||
* @param type $var key for Session |
||||
* @return data from Session |
||||
*/ |
||||
public function get_session_var(string $var, int $flags = FILTER_DEFAULT): string { |
||||
$svar = \main_tts\configure::get('session', 'session_variable') ?? false; |
||||
if ($svar === false) { |
||||
$svar = 'SES_'; |
||||
} |
||||
if (! filter_has_var(INPUT_SESSION, $svar . $var)) { |
||||
return ':null'; |
||||
} |
||||
$content = filter_input(INPUT_SESSION, $svar . $var, $flags); |
||||
if ($content === false) { |
||||
throw new \Exception('Session filter: Failed!'); |
||||
} |
||||
return ($content === ':null') ? ':null' : $this->get_enc_data($content); |
||||
} |
||||
|
||||
/** |
||||
* Set Session Variable |
||||
* @param type $var key |
||||
* @param type $content data |
||||
*/ |
||||
public function set_session_var(string $var, string $content): void { |
||||
$svar = \main_tts\configure::get('session', 'session_variable') ?? false; |
||||
if ($svar === false) { |
||||
$svar = 'SES_'; |
||||
} |
||||
$_SESSION[$svar . $var] = (empty($content)) ? ':null' : $this->save_enc_data($content); |
||||
} |
||||
|
||||
/** |
||||
* Fetch integer from Session Variable |
||||
* @param type $var |
||||
* @return type |
||||
*/ |
||||
public function get_int($var): int { |
||||
$content = $this->get_session_var($var); |
||||
return ($content == ':null') ? -1 : intval($content); |
||||
} |
||||
|
||||
/** |
||||
* Fetch Session ID |
||||
* @return Session ID |
||||
*/ |
||||
public function get_id(): string { |
||||
return session_id(); |
||||
} |
||||
|
||||
/** |
||||
* Session Destroy |
||||
*/ |
||||
public function destroy(): bool { |
||||
session_unset(); |
||||
return session_destroy(); |
||||
} |
||||
|
||||
} |
||||
Loading…
Reference in new issue