Use symfony session
This commit is contained in:
parent
96f1d9fd54
commit
2bd127c011
|
@ -6,6 +6,7 @@ use Engelsystem\Exceptions\Handler as ExceptionHandler;
|
|||
use Engelsystem\Http\Request;
|
||||
use Engelsystem\Renderer\HtmlEngine;
|
||||
use Engelsystem\Renderer\Renderer;
|
||||
use Symfony\Component\HttpFoundation\Session\Session;
|
||||
|
||||
/**
|
||||
* This file includes all needed functions, connects to the db etc.
|
||||
|
@ -169,7 +170,9 @@ foreach ($includeFiles as $file) {
|
|||
/**
|
||||
* Init application
|
||||
*/
|
||||
session_start();
|
||||
$session = new Session();
|
||||
$session->start();
|
||||
$request->setSession($session);
|
||||
|
||||
gettext_init();
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ use Engelsystem\Http\Request;
|
|||
*/
|
||||
function locale()
|
||||
{
|
||||
return $_SESSION['locale'];
|
||||
return session()->get('locale');
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -29,11 +29,12 @@ function gettext_init()
|
|||
{
|
||||
$locales = config('locales');
|
||||
$request = request();
|
||||
$session = session();
|
||||
|
||||
if ($request->has('set_locale') && isset($locales[$request->input('set_locale')])) {
|
||||
$_SESSION['locale'] = $request->input('set_locale');
|
||||
} elseif (!isset($_SESSION['locale'])) {
|
||||
$_SESSION['locale'] = config('default_locale');
|
||||
$session->set('locale', $request->input('set_locale'));
|
||||
} elseif (!$session->has('locale')) {
|
||||
$session->set('locale', config('default_locale'));
|
||||
}
|
||||
|
||||
gettext_locale();
|
||||
|
@ -50,7 +51,7 @@ function gettext_init()
|
|||
function gettext_locale($locale = null)
|
||||
{
|
||||
if ($locale == null) {
|
||||
$locale = $_SESSION['locale'];
|
||||
$locale = session()->get('locale');
|
||||
}
|
||||
|
||||
putenv('LC_ALL=' . $locale);
|
||||
|
|
|
@ -7,12 +7,12 @@
|
|||
*/
|
||||
function msg()
|
||||
{
|
||||
if (!isset($_SESSION['msg'])) {
|
||||
return '';
|
||||
}
|
||||
$msg = $_SESSION['msg'];
|
||||
$_SESSION['msg'] = '';
|
||||
return $msg;
|
||||
$session = session();
|
||||
|
||||
$message = $session->get('msg', '');
|
||||
$session->set('msg', '');
|
||||
|
||||
return $message;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -61,6 +61,8 @@ function success($msg, $immediately = false)
|
|||
*/
|
||||
function alert($class, $msg, $immediately = false)
|
||||
{
|
||||
$session = session();
|
||||
|
||||
if ($immediately) {
|
||||
if ($msg == '') {
|
||||
return '';
|
||||
|
@ -68,10 +70,9 @@ function alert($class, $msg, $immediately = false)
|
|||
return '<div class="alert alert-' . $class . '">' . $msg . '</div>';
|
||||
}
|
||||
|
||||
if (!isset($_SESSION['msg'])) {
|
||||
$_SESSION['msg'] = '';
|
||||
}
|
||||
$_SESSION['msg'] .= alert($class, $msg, true);
|
||||
$message = $session->get('msg', '');
|
||||
$message .= alert($class, $msg, true);
|
||||
$session->set('msg', $message);
|
||||
|
||||
return null;
|
||||
}
|
||||
|
|
|
@ -19,6 +19,7 @@ function admin_shifts()
|
|||
{
|
||||
$valid = true;
|
||||
$request = request();
|
||||
$session = session();
|
||||
$start = parse_date('Y-m-d H:i', date('Y-m-d') . ' 00:00');
|
||||
$end = $start;
|
||||
$mode = 'single';
|
||||
|
@ -270,8 +271,8 @@ function admin_shifts()
|
|||
}
|
||||
|
||||
// Fürs Anlegen zwischenspeichern:
|
||||
$_SESSION['admin_shifts_shifts'] = $shifts;
|
||||
$_SESSION['admin_shifts_types'] = $needed_angel_types;
|
||||
$session->set('admin_shifts_shifts', $shifts);
|
||||
$session->set('admin_shifts_types', $needed_angel_types);
|
||||
|
||||
$hidden_types = '';
|
||||
foreach ($needed_angel_types as $type_id => $count) {
|
||||
|
@ -301,16 +302,14 @@ function admin_shifts()
|
|||
}
|
||||
} elseif ($request->has('submit')) {
|
||||
if (
|
||||
!isset($_SESSION['admin_shifts_shifts'])
|
||||
|| !isset($_SESSION['admin_shifts_types'])
|
||||
|| !is_array($_SESSION['admin_shifts_shifts'])
|
||||
|| !is_array($_SESSION['admin_shifts_types'])
|
||||
!is_array($session->get('admin_shifts_shifts'))
|
||||
|| !is_array($session->get('admin_shifts_types'))
|
||||
) {
|
||||
redirect(page_link_to('admin_shifts'));
|
||||
}
|
||||
|
||||
$needed_angel_types_info = [];
|
||||
foreach ($_SESSION['admin_shifts_shifts'] as $shift) {
|
||||
foreach ($session->get('admin_shifts_shifts', []) as $shift) {
|
||||
$shift['URL'] = null;
|
||||
$shift['PSID'] = null;
|
||||
$shift_id = Shift_create($shift);
|
||||
|
@ -322,7 +321,7 @@ function admin_shifts()
|
|||
. ' to ' . date('Y-m-d H:i', $shift['end'])
|
||||
);
|
||||
|
||||
foreach ($_SESSION['admin_shifts_types'] as $type_id => $count) {
|
||||
foreach ($session->get('admin_shifts_types', []) as $type_id => $count) {
|
||||
$angel_type_source = DB::selectOne('
|
||||
SELECT *
|
||||
FROM `AngelTypes`
|
||||
|
@ -348,8 +347,8 @@ function admin_shifts()
|
|||
success('Schichten angelegt.');
|
||||
redirect(page_link_to('admin_shifts'));
|
||||
} else {
|
||||
unset($_SESSION['admin_shifts_shifts']);
|
||||
unset($_SESSION['admin_shifts_types']);
|
||||
$session->remove('admin_shifts_shifts');
|
||||
$session->remove('admin_shifts_types');
|
||||
}
|
||||
|
||||
$rid = null;
|
||||
|
|
|
@ -39,6 +39,7 @@ function guest_register()
|
|||
$min_password_length = config('min_password_length');
|
||||
$event_config = EventConfig();
|
||||
$request = request();
|
||||
$session = session();
|
||||
|
||||
$msg = '';
|
||||
$nick = '';
|
||||
|
@ -226,7 +227,7 @@ function guest_register()
|
|||
$password_hash,
|
||||
$comment,
|
||||
$hometown,
|
||||
$_SESSION['locale'],
|
||||
$session->get('locale'),
|
||||
$planned_arrival_date,
|
||||
]
|
||||
);
|
||||
|
@ -377,25 +378,36 @@ function guest_register()
|
|||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
function entry_required()
|
||||
{
|
||||
return '<span class="text-info glyphicon glyphicon-warning-sign"></span>';
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
function guest_logout()
|
||||
{
|
||||
session_destroy();
|
||||
session()->invalidate();
|
||||
redirect(page_link_to('start'));
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
function guest_login()
|
||||
{
|
||||
$nick = '';
|
||||
$request = request();
|
||||
unset($_SESSION['uid']);
|
||||
$session = session();
|
||||
$valid = true;
|
||||
|
||||
$session->remove('uid');
|
||||
|
||||
if ($request->has('submit')) {
|
||||
if ($request->has('nick') && strlen(User_validate_Nick($request->input('nick'))) > 0) {
|
||||
$nick = User_validate_Nick($request->input('nick'));
|
||||
|
@ -420,8 +432,8 @@ function guest_login()
|
|||
}
|
||||
|
||||
if ($valid && !empty($login_user)) {
|
||||
$_SESSION['uid'] = $login_user['UID'];
|
||||
$_SESSION['locale'] = $login_user['Sprache'];
|
||||
$session->set('uid', $login_user['UID']);
|
||||
$session->set('locale', $login_user['Sprache']);
|
||||
|
||||
redirect(page_link_to('news'));
|
||||
}
|
||||
|
@ -477,6 +489,9 @@ function guest_login()
|
|||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
function get_register_hint()
|
||||
{
|
||||
global $privileges;
|
||||
|
|
|
@ -164,6 +164,7 @@ function user_settings_locale($user_source, $locales)
|
|||
{
|
||||
$valid = true;
|
||||
$request = request();
|
||||
$session = session();
|
||||
|
||||
if ($request->has('language') && isset($locales[$request->input('language')])) {
|
||||
$user_source['Sprache'] = $request->input('language');
|
||||
|
@ -182,7 +183,7 @@ function user_settings_locale($user_source, $locales)
|
|||
$user_source['UID'],
|
||||
]
|
||||
);
|
||||
$_SESSION['locale'] = $user_source['Sprache'];
|
||||
$session->set('locale', $user_source['Sprache']);
|
||||
|
||||
success('Language changed.');
|
||||
redirect(page_link_to('user_settings'));
|
||||
|
|
|
@ -167,20 +167,23 @@ function view_user_shifts()
|
|||
{
|
||||
global $user, $privileges, $ical_shifts;
|
||||
|
||||
$session = session();
|
||||
$ical_shifts = [];
|
||||
$days = load_days();
|
||||
$rooms = load_rooms();
|
||||
$types = load_types();
|
||||
|
||||
if (!isset($_SESSION['ShiftsFilter'])) {
|
||||
if (!$session->has('ShiftsFilter')) {
|
||||
$room_ids = [
|
||||
$rooms[0]['id']
|
||||
];
|
||||
$type_ids = array_map('get_ids_from_array', $types);
|
||||
$_SESSION['ShiftsFilter'] = new ShiftsFilter(in_array('user_shifts_admin', $privileges), $room_ids, $type_ids);
|
||||
$shiftsFilter = new ShiftsFilter(in_array('user_shifts_admin', $privileges), $room_ids, $type_ids);
|
||||
$session->set('ShiftsFilter', $shiftsFilter);
|
||||
}
|
||||
update_ShiftsFilter($_SESSION['ShiftsFilter'], in_array('user_shifts_admin', $privileges), $days);
|
||||
$shiftsFilter = $_SESSION['ShiftsFilter'];
|
||||
|
||||
$shiftsFilter = $session->get('ShiftsFilter');
|
||||
update_ShiftsFilter($shiftsFilter, in_array('user_shifts_admin', $privileges), $days);
|
||||
|
||||
$shiftCalendarRenderer = shiftCalendarRendererByShiftFilter($shiftsFilter);
|
||||
|
||||
|
|
|
@ -10,8 +10,10 @@ function load_auth()
|
|||
global $user, $privileges;
|
||||
|
||||
$user = null;
|
||||
if (isset($_SESSION['uid'])) {
|
||||
$user = DB::selectOne('SELECT * FROM `User` WHERE `UID`=? LIMIT 1', [$_SESSION['uid']]);
|
||||
$session = session();
|
||||
|
||||
if ($session->has('uid')) {
|
||||
$user = DB::selectOne('SELECT * FROM `User` WHERE `UID`=? LIMIT 1', [$session->get('uid')]);
|
||||
if (!empty($user)) {
|
||||
// User ist eingeloggt, Datensatz zur Verfügung stellen und Timestamp updaten
|
||||
DB::update('
|
||||
|
@ -21,12 +23,13 @@ function load_auth()
|
|||
LIMIT 1
|
||||
', [
|
||||
time(),
|
||||
$_SESSION['uid'],
|
||||
$session->get('uid'),
|
||||
]);
|
||||
$privileges = privileges_for_user($user['UID']);
|
||||
return;
|
||||
}
|
||||
unset($_SESSION['uid']);
|
||||
|
||||
$session->remove('uid');
|
||||
}
|
||||
|
||||
// guest privileges
|
||||
|
|
|
@ -5,6 +5,7 @@ use Engelsystem\Config\Config;
|
|||
use Engelsystem\Http\Request;
|
||||
use Engelsystem\Renderer\Renderer;
|
||||
use Engelsystem\Routing\UrlGenerator;
|
||||
use Symfony\Component\HttpFoundation\Session\SessionInterface;
|
||||
|
||||
/**
|
||||
* Get or set config values
|
||||
|
@ -42,6 +43,22 @@ function request($key = null, $default = null)
|
|||
return $request->input($key, $default);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $key
|
||||
* @param mixed $default
|
||||
* @return SessionInterface|mixed
|
||||
*/
|
||||
function session($key = null, $default = null)
|
||||
{
|
||||
$session = request()->getSession();
|
||||
|
||||
if (is_null($key)) {
|
||||
return $session;
|
||||
}
|
||||
|
||||
return $session->get($key, $default);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $template
|
||||
* @param mixed[] $data
|
||||
|
|
Loading…
Reference in New Issue