);
}
-
-/**
- * Redirection middleware.
- * Each user sill have a default homepage varying on it status (logged in or not, its credentials, etc.
- */
-$baseRedirect = function ($request, $response, $args = []) use ($container) {
- $login = $container->get('login');
- $router = $container->get('router');
- $session = $container->get('session');
-
- $flashes = $container->get('flash')->getMessages();
- foreach ($flashes as $type => $messages) {
- foreach ($messages as $message) {
- $container->get('flash')->addMessage($type, $message);
- }
- }
-
- if ($login->isLogged()) {
- $urlRedirect = null;
- if ($session->urlRedirect !== null) {
- $urlRedirect = getGaletteBaseUrl($request) . $session->urlRedirect;
- $session->urlRedirect = null;
- }
-
- if ($urlRedirect !== null) {
- return $response
- ->withStatus(301)
- ->withHeader('Location', $urlRedirect);
- } else {
- if ($login->isSuperAdmin()
- || $login->isAdmin()
- || $login->isStaff()
- ) {
- if (!isset($_COOKIE['show_galette_dashboard'])
- || $_COOKIE['show_galette_dashboard'] == 1
- ) {
- return $response
- ->withStatus(301)
- //Do not use "$router->pathFor('dashboard'))" to prevent translation issues when login
- ->withHeader('Location', getGaletteBaseUrl($request) . '/dashboard');
- } else {
- return $response
- ->withStatus(301)
- //Do not use "$router->pathFor('members'))" to prevent translation issues when login
- ->withHeader('Location', getGaletteBaseUrl($request) . '/members');
- }
- } else {
- return $response
- ->withStatus(301)
- //Do not use "$router->pathFor('me'))" to prevent translation issues when login
- ->withHeader('Location', getGaletteBaseUrl($request) . '/dashboard');
- }
- }
- } else {
- return $response
- ->withStatus(301)
- //Do not use "$router->pathFor('login'))" to prevent translation issues when login
- ->withHeader('Location', getGaletteBaseUrl($request) . '/login');
- }
-};
-
-/**
- * Get base URL fixed for proxies
- *
- * @param Request $request request to work on
- *
- * @return string
- */
-function getGaletteBaseUrl(\Slim\Http\Request $request)
-{
- $url = preg_replace(
- [
- '|index\.php|',
- '|https?://' . $_SERVER['HTTP_HOST'] . '(:\d+)?' . '|'
- ],
- ['', ''],
- $request->getUri()->getBaseUrl()
- );
- if (strlen($url) && substr($url, -1) !== '/') {
- $url .= '/';
- }
- return $url;
-}
-
/**
* Trailing slash middleware
*/