Compare commits
3 Commits
1d05f5af9d
...
816d27cc28
| Author | SHA1 | Date | |
|---|---|---|---|
| 816d27cc28 | |||
| 49e9291214 | |||
| 584edce5d6 |
@@ -4,6 +4,7 @@ namespace KTXC\Routing;
|
||||
|
||||
use DI\Attribute\Inject;
|
||||
use KTXC\Http\Request\Request;
|
||||
use KTXC\Http\Request\RequestInputParameters;
|
||||
use KTXC\Http\Response\Response;
|
||||
use KTXC\Injection\Container;
|
||||
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).
|
||||
* 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
|
||||
{
|
||||
@@ -224,7 +226,8 @@ class Router
|
||||
try {
|
||||
$requestParameters = $request->getPayload();
|
||||
} catch (\Throwable) {
|
||||
// ignore payload errors
|
||||
// ignore payload errors, fall back to an empty parameter bag
|
||||
$requestParameters = new RequestInputParameters([]);
|
||||
}
|
||||
$reflectionMethod = new \ReflectionMethod($routeControllerName, $routeControllerMethod);
|
||||
$routeParams = $route->params ?? [];
|
||||
@@ -258,6 +261,11 @@ class Router
|
||||
$callArgs[] = $requestParameters->get($reflectionParameterName);
|
||||
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 ($reflectionParameter->isDefaultValueAvailable()) {
|
||||
$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
|
||||
$context = $this->buildProviderContext($session, $method);
|
||||
|
||||
|
||||
Generated
+3
-3
@@ -3006,9 +3006,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/dompurify": {
|
||||
"version": "3.4.11",
|
||||
"resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.4.11.tgz",
|
||||
"integrity": "sha512-zhlUV12GsaRzMsf9q5M254YhA4+VuF0fG+QFqu6aYpoGlKtz+w8//jBcGVYBgQkR5GHjUomejY84AV+/uPbWdw==",
|
||||
"version": "3.4.12",
|
||||
"resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.4.12.tgz",
|
||||
"integrity": "sha512-zQvGet8Z2sWbQhCmfFz/T5QWH2oBmjnqK3qvOjaqaNLrLEF912WamU+ohnTp0TCep/MFVHpdJuCZEdFOdTnEFg==",
|
||||
"license": "(MPL-2.0 OR Apache-2.0)",
|
||||
"optionalDependencies": {
|
||||
"@types/trusted-types": "^2.0.7"
|
||||
|
||||
Reference in New Issue
Block a user