3 Commits

Author SHA1 Message Date
Sebastian 298e1d62c0 chore(deps): update dependency eslint to v10.7.0
PHP Unit Tests / test (pull_request) Failing after 12m29s
JS Unit Tests / test (pull_request) Failing after 12m44s
Build Test / build (pull_request) Failing after 12m48s
2026-07-19 03:02:58 +00:00
Sebastian 49e9291214 fix: authenticate via code
Signed-off-by: Sebastian Krupinski <krupinski01@gmail.com>
2026-07-18 21:28:14 -04:00
Sebastian 584edce5d6 fix: convert request parameters to variables
Signed-off-by: Sebastian Krupinski <krupinski01@gmail.com>
2026-07-18 21:27:12 -04:00
3 changed files with 20 additions and 5 deletions
+10 -2
View File
@@ -4,6 +4,7 @@ namespace KTXC\Routing;
use DI\Attribute\Inject; use DI\Attribute\Inject;
use KTXC\Http\Request\Request; use KTXC\Http\Request\Request;
use KTXC\Http\Request\RequestInputParameters;
use KTXC\Http\Response\Response; use KTXC\Http\Response\Response;
use KTXC\Injection\Container; use KTXC\Injection\Container;
use KTXC\Module\ModuleManager; use KTXC\Module\ModuleManager;
@@ -207,7 +208,8 @@ class Router
/** /**
* Dispatch a matched route meta and return a Response (or null if controller does not return one). * Dispatch a matched route meta and return a Response (or null if controller does not return one).
* Performs light argument resolution: Request object, route params, body fields, full body for array params. * Performs light argument resolution: Request object, route params, body fields, query params, full body for array params.
* Precedence on name collision: route params > body fields > query params > parameter default.
*/ */
public function dispatch(Route $route, Request $request): ?Response public function dispatch(Route $route, Request $request): ?Response
{ {
@@ -224,7 +226,8 @@ class Router
try { try {
$requestParameters = $request->getPayload(); $requestParameters = $request->getPayload();
} catch (\Throwable) { } catch (\Throwable) {
// ignore payload errors // ignore payload errors, fall back to an empty parameter bag
$requestParameters = new RequestInputParameters([]);
} }
$reflectionMethod = new \ReflectionMethod($routeControllerName, $routeControllerMethod); $reflectionMethod = new \ReflectionMethod($routeControllerName, $routeControllerMethod);
$routeParams = $route->params ?? []; $routeParams = $route->params ?? [];
@@ -258,6 +261,11 @@ class Router
$callArgs[] = $requestParameters->get($reflectionParameterName); $callArgs[] = $requestParameters->get($reflectionParameterName);
continue; continue;
} }
// if method parameter matches a query string param, use that
if ($request->query->has($reflectionParameterName)) {
$callArgs[] = $request->query->get($reflectionParameterName);
continue;
}
// if method parameter did not match, but has a default value, use that // if method parameter did not match, but has a default value, use that
if ($reflectionParameter->isDefaultValueAvailable()) { if ($reflectionParameter->isDefaultValueAvailable()) {
$callArgs[] = $reflectionParameter->getDefaultValue(); $callArgs[] = $reflectionParameter->getDefaultValue();
@@ -155,6 +155,13 @@ class AuthenticationManager
); );
} }
if ($session->userIdentifier === null && $session->userIdentity) {
$user = $this->userService->fetchByIdentity($session->userIdentity);
if ($user) {
$session->userIdentifier = $user->getId();
}
}
// Build provider context // Build provider context
$context = $this->buildProviderContext($session, $method); $context = $this->buildProviderContext($session, $method);
+3 -3
View File
@@ -3166,9 +3166,9 @@
} }
}, },
"node_modules/eslint": { "node_modules/eslint": {
"version": "10.6.0", "version": "10.7.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-10.6.0.tgz", "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.7.0.tgz",
"integrity": "sha512-6lVbcqSodALYo+4ELD0heG6lFiFxnLMuLkiMi2qV8LMp54N8tE8FT1GMH+ev4Ti00nFjNze2+Su6DsV5OQW3Dg==", "integrity": "sha512-GVTD7s1vdIl6UYvAfriOPeY1Df8LIZjfofLvHwde+erDHGGuHyuM6xoxRxmHiebhYuD2p1vN4wWh0XzPARSGDQ==",
"license": "MIT", "license": "MIT",
"workspaces": [ "workspaces": [
"packages/*" "packages/*"