mirror of
https://github.com/grocy/grocy.git
synced 2025-08-20 04:12:59 +00:00
Applied PHP formatting rules
This commit is contained in:
@@ -2,22 +2,21 @@
|
||||
|
||||
namespace Grocy\Middleware;
|
||||
|
||||
use Grocy\Services\ApiKeyService;
|
||||
use Psr\Http\Message\ResponseFactoryInterface;
|
||||
use Psr\Http\Message\ServerRequestInterface as Request;
|
||||
use Slim\Routing\RouteContext;
|
||||
|
||||
use Grocy\Services\ApiKeyService;
|
||||
|
||||
class ApiKeyAuthMiddleware extends AuthMiddleware
|
||||
{
|
||||
protected $ApiKeyHeaderName;
|
||||
|
||||
public function __construct(\DI\Container $container, ResponseFactoryInterface $responseFactory)
|
||||
{
|
||||
parent::__construct($container, $responseFactory);
|
||||
$this->ApiKeyHeaderName = $this->AppContainer->get('ApiKeyHeaderName');
|
||||
}
|
||||
|
||||
protected $ApiKeyHeaderName;
|
||||
|
||||
function authenticate(Request $request)
|
||||
{
|
||||
if (!defined('GROCY_SHOW_AUTH_VIEWS'))
|
||||
@@ -34,7 +33,7 @@ class ApiKeyAuthMiddleware extends AuthMiddleware
|
||||
|
||||
$apiKeyService = new ApiKeyService();
|
||||
|
||||
// First check of the API key in the configured header
|
||||
// First check of the API key in the configured header
|
||||
if (!$request->hasHeader($this->ApiKeyHeaderName) || !$apiKeyService->IsValidApiKey($request->getHeaderLine($this->ApiKeyHeaderName)))
|
||||
{
|
||||
$validApiKey = false;
|
||||
@@ -44,14 +43,14 @@ class ApiKeyAuthMiddleware extends AuthMiddleware
|
||||
$usedApiKey = $request->getHeaderLine($this->ApiKeyHeaderName);
|
||||
}
|
||||
|
||||
// Not recommended, but it's also possible to provide the API key via a query parameter (same name as the configured header)
|
||||
// Not recommended, but it's also possible to provide the API key via a query parameter (same name as the configured header)
|
||||
if (!$validApiKey && !empty($request->getQueryParam($this->ApiKeyHeaderName)) && $apiKeyService->IsValidApiKey($request->getQueryParam($this->ApiKeyHeaderName)))
|
||||
{
|
||||
$validApiKey = true;
|
||||
$usedApiKey = $request->getQueryParam($this->ApiKeyHeaderName);
|
||||
}
|
||||
|
||||
// Handling of special purpose API keys
|
||||
// Handling of special purpose API keys
|
||||
if (!$validApiKey)
|
||||
{
|
||||
if ($routeName === 'calendar-ical')
|
||||
@@ -60,7 +59,9 @@ class ApiKeyAuthMiddleware extends AuthMiddleware
|
||||
{
|
||||
$validApiKey = true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if ($validApiKey)
|
||||
@@ -72,5 +73,7 @@ class ApiKeyAuthMiddleware extends AuthMiddleware
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -2,24 +2,23 @@
|
||||
|
||||
namespace Grocy\Middleware;
|
||||
|
||||
use Grocy\Services\SessionService;
|
||||
use Psr\Http\Message\ResponseFactoryInterface;
|
||||
use Psr\Http\Message\ResponseInterface as Response;
|
||||
use Psr\Http\Message\ServerRequestInterface as Request;
|
||||
use Psr\Http\Server\RequestHandlerInterface as RequestHandler;
|
||||
use Slim\Routing\RouteContext;
|
||||
|
||||
use Grocy\Services\SessionService;
|
||||
|
||||
abstract class AuthMiddleware extends BaseMiddleware
|
||||
{
|
||||
protected $ResponseFactory;
|
||||
|
||||
public function __construct(\DI\Container $container, ResponseFactoryInterface $responseFactory)
|
||||
{
|
||||
parent::__construct($container);
|
||||
$this->ResponseFactory = $responseFactory;
|
||||
}
|
||||
|
||||
protected $ResponseFactory;
|
||||
|
||||
public function __invoke(Request $request, RequestHandler $handler): Response
|
||||
{
|
||||
$routeContext = RouteContext::fromRequest($request);
|
||||
@@ -31,11 +30,14 @@ abstract class AuthMiddleware extends BaseMiddleware
|
||||
{
|
||||
return $handler->handle($request);
|
||||
}
|
||||
else if ($routeName === 'login')
|
||||
else
|
||||
|
||||
if ($routeName === 'login')
|
||||
{
|
||||
define('GROCY_AUTHENTICATED', false);
|
||||
return $handler->handle($request);
|
||||
}
|
||||
|
||||
if (GROCY_MODE === 'dev' || GROCY_MODE === 'demo' || GROCY_MODE === 'prerelease' || GROCY_IS_EMBEDDED_INSTALL || GROCY_DISABLE_AUTH)
|
||||
{
|
||||
$sessionService = SessionService::getInstance();
|
||||
@@ -55,6 +57,7 @@ abstract class AuthMiddleware extends BaseMiddleware
|
||||
define('GROCY_AUTHENTICATED', false);
|
||||
|
||||
$response = $this->ResponseFactory->createResponse();
|
||||
|
||||
if ($isApiRoute)
|
||||
{
|
||||
return $response->withStatus(401);
|
||||
@@ -63,6 +66,7 @@ abstract class AuthMiddleware extends BaseMiddleware
|
||||
{
|
||||
return $response->withHeader('Location', $this->AppContainer->get('UrlManager')->ConstructUrl('/login'));
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -72,7 +76,9 @@ abstract class AuthMiddleware extends BaseMiddleware
|
||||
|
||||
return $response = $handler->handle($request);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -2,16 +2,17 @@
|
||||
|
||||
namespace Grocy\Middleware;
|
||||
|
||||
use \Grocy\Services\ApplicationService;
|
||||
use Grocy\Services\ApplicationService;
|
||||
|
||||
class BaseMiddleware
|
||||
{
|
||||
protected $AppContainer;
|
||||
|
||||
protected $ApplicationService;
|
||||
|
||||
public function __construct(\DI\Container $container)
|
||||
{
|
||||
$this->AppContainer = $container;
|
||||
$this->ApplicationService = ApplicationService::getInstance();
|
||||
}
|
||||
|
||||
protected $AppContainer;
|
||||
protected $ApplicationService;
|
||||
}
|
||||
|
@@ -3,10 +3,9 @@
|
||||
namespace Grocy\Middleware;
|
||||
|
||||
use Psr\Http\Message\ResponseFactoryInterface;
|
||||
use Psr\Http\Message\ResponseInterface as Response;
|
||||
use Psr\Http\Message\ServerRequestInterface as Request;
|
||||
use Psr\Http\Server\RequestHandlerInterface as RequestHandler;
|
||||
use Psr\Http\Message\ResponseInterface as Response;
|
||||
use Slim\Routing\RouteContext;
|
||||
|
||||
class CorsMiddleware
|
||||
{
|
||||
@@ -22,15 +21,21 @@ class CorsMiddleware
|
||||
|
||||
public function __invoke(Request $request, RequestHandler $handler): Response
|
||||
{
|
||||
if ($request->getMethod() == "OPTIONS")
|
||||
if ($request->getMethod() == 'OPTIONS')
|
||||
{
|
||||
$response = $this->responseFactory->createResponse(200);
|
||||
else {
|
||||
}
|
||||
else
|
||||
{
|
||||
$response = $handler->handle($request);
|
||||
|
||||
}
|
||||
//$routeContext = RouteContext::fromRequest($request);
|
||||
//$routingResults = $routeContext->getRoutingResults();
|
||||
//$methods = $routingResults->getAllowedMethods();
|
||||
|
||||
//$routeContext = RouteContext::fromRequest($request);
|
||||
|
||||
//$routingResults = $routeContext->getRoutingResults();
|
||||
|
||||
//$methods = $routingResults->getAllowedMethods();
|
||||
//$requestHeaders = $request->getHeaderLine('Access-Control-Request-Headers');
|
||||
|
||||
$response = $response->withHeader('Access-Control-Allow-Origin', '*');
|
||||
@@ -39,4 +44,5 @@ class CorsMiddleware
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -11,6 +11,7 @@ class DefaultAuthMiddleware extends AuthMiddleware
|
||||
// First try to authenticate by API key
|
||||
$auth = new ApiKeyAuthMiddleware($this->AppContainer, $this->ResponseFactory);
|
||||
$user = $auth->authenticate($request);
|
||||
|
||||
if ($user !== null)
|
||||
{
|
||||
return $user;
|
||||
@@ -21,4 +22,5 @@ class DefaultAuthMiddleware extends AuthMiddleware
|
||||
$user = $auth->authenticate($request);
|
||||
return $user;
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -2,9 +2,9 @@
|
||||
|
||||
namespace Grocy\Middleware;
|
||||
|
||||
use Psr\Http\Message\ResponseInterface as Response;
|
||||
use Psr\Http\Message\ServerRequestInterface as Request;
|
||||
use Psr\Http\Server\RequestHandlerInterface as RequestHandler;
|
||||
use Psr\Http\Message\ResponseInterface as Response;
|
||||
|
||||
class JsonMiddleware extends BaseMiddleware
|
||||
{
|
||||
@@ -25,5 +25,7 @@ class JsonMiddleware extends BaseMiddleware
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -1,9 +1,7 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace Grocy\Middleware;
|
||||
|
||||
|
||||
use Grocy\Services\UsersService;
|
||||
use Psr\Http\Message\ResponseInterface as Response;
|
||||
use Psr\Http\Message\ServerRequestInterface as Request;
|
||||
@@ -11,7 +9,6 @@ use Psr\Http\Server\RequestHandlerInterface as RequestHandler;
|
||||
|
||||
class LocaleMiddleware extends BaseMiddleware
|
||||
{
|
||||
|
||||
public function __invoke(Request $request, RequestHandler $handler): Response
|
||||
{
|
||||
$locale = $this->getLocale($request);
|
||||
@@ -21,22 +18,28 @@ class LocaleMiddleware extends BaseMiddleware
|
||||
|
||||
protected function getLocale(Request $request)
|
||||
{
|
||||
if(GROCY_AUTHENTICATED)
|
||||
if (GROCY_AUTHENTICATED)
|
||||
{
|
||||
$locale = UsersService::getInstance()->GetUserSetting(GROCY_USER_ID, 'locale');
|
||||
if (isset($locale) && !empty($locale)) {
|
||||
if (in_array($locale, scandir(__DIR__ . '/../localization'))) {
|
||||
|
||||
if (isset($locale) && !empty($locale))
|
||||
{
|
||||
if (in_array($locale, scandir(__DIR__ . '/../localization')))
|
||||
{
|
||||
return $locale;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$langs = join(',', $request->getHeader('Accept-Language'));
|
||||
$langs = implode(',', $request->getHeader('Accept-Language'));
|
||||
|
||||
// src: https://gist.github.com/spolischook/0cde9c6286415cddc088
|
||||
$prefLocales = array_reduce(
|
||||
explode(',', $langs),
|
||||
function ($res, $el) {
|
||||
function ($res, $el)
|
||||
{
|
||||
list($l, $q) = array_merge(explode(';q=', $el), [1]);
|
||||
$res[$l] = (float) $q;
|
||||
return $res;
|
||||
@@ -44,24 +47,33 @@ class LocaleMiddleware extends BaseMiddleware
|
||||
arsort($prefLocales);
|
||||
|
||||
$availableLocales = scandir(__DIR__ . '/../localization');
|
||||
foreach ($prefLocales as $locale => $q) {
|
||||
if(in_array($locale, $availableLocales))
|
||||
|
||||
foreach ($prefLocales as $locale => $q)
|
||||
{
|
||||
if (in_array($locale, $availableLocales))
|
||||
{
|
||||
return $locale;
|
||||
}
|
||||
// e.g. en_GB
|
||||
if(in_array(substr($locale, 0, 5), $availableLocales))
|
||||
|
||||
// e.g. en_GB
|
||||
if (in_array(substr($locale, 0, 5), $availableLocales))
|
||||
{
|
||||
return substr($locale, 0, 5);
|
||||
}
|
||||
// e.g: cs
|
||||
// or en
|
||||
// or de
|
||||
if(in_array(substr($locale, 0, 2), $availableLocales))
|
||||
|
||||
// e.g: cs
|
||||
|
||||
// or en
|
||||
|
||||
// or de
|
||||
if (in_array(substr($locale, 0, 2), $availableLocales))
|
||||
{
|
||||
return substr($locale, 0, 2);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return GROCY_DEFAULT_LOCALE;
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -2,10 +2,9 @@
|
||||
|
||||
namespace Grocy\Middleware;
|
||||
|
||||
use Psr\Http\Message\ServerRequestInterface as Request;
|
||||
|
||||
use Grocy\Services\DatabaseService;
|
||||
use Grocy\Services\UsersService;
|
||||
use Psr\Http\Message\ServerRequestInterface as Request;
|
||||
|
||||
class ReverseProxyAuthMiddleware extends AuthMiddleware
|
||||
{
|
||||
@@ -23,7 +22,7 @@ class ReverseProxyAuthMiddleware extends AuthMiddleware
|
||||
if (count($username) !== 1)
|
||||
{
|
||||
// Invalid configuration of Proxy
|
||||
throw new \Exception("ReverseProxyAuthMiddleware: Invalid username from proxy: " . var_dump($username));
|
||||
throw new \Exception('ReverseProxyAuthMiddleware: Invalid username from proxy: ' . var_dump($username));
|
||||
}
|
||||
|
||||
$username = $username[0];
|
||||
@@ -37,4 +36,5 @@ class ReverseProxyAuthMiddleware extends AuthMiddleware
|
||||
|
||||
return $user;
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -1,23 +1,21 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace Grocy\Middleware;
|
||||
|
||||
use Grocy\Services\SessionService;
|
||||
use Psr\Http\Message\ResponseFactoryInterface;
|
||||
use Psr\Http\Message\ServerRequestInterface as Request;
|
||||
|
||||
use Grocy\Services\SessionService;
|
||||
|
||||
class SessionAuthMiddleware extends AuthMiddleware
|
||||
{
|
||||
protected $SessionCookieName;
|
||||
|
||||
public function __construct(\DI\Container $container, ResponseFactoryInterface $responseFactory)
|
||||
{
|
||||
parent::__construct($container, $responseFactory);
|
||||
$this->SessionCookieName = $this->AppContainer->get('LoginControllerInstance')->GetSessionCookieName();
|
||||
}
|
||||
|
||||
protected $SessionCookieName;
|
||||
|
||||
function authenticate(Request $request)
|
||||
{
|
||||
if (!defined('GROCY_SHOW_AUTH_VIEWS'))
|
||||
@@ -26,6 +24,7 @@ class SessionAuthMiddleware extends AuthMiddleware
|
||||
}
|
||||
|
||||
$sessionService = SessionService::getInstance();
|
||||
|
||||
if (!isset($_COOKIE[$this->SessionCookieName]) || !$sessionService->IsValidSession($_COOKIE[$this->SessionCookieName]))
|
||||
{
|
||||
return null;
|
||||
@@ -34,5 +33,7 @@ class SessionAuthMiddleware extends AuthMiddleware
|
||||
{
|
||||
return $sessionService->GetUserBySessionKey($_COOKIE[$this->SessionCookieName]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user