Compare commits
3 Commits
1d05f5af9d
...
816d27cc28
| Author | SHA1 | Date | |
|---|---|---|---|
| 816d27cc28 | |||
| 49e9291214 | |||
| 584edce5d6 |
@@ -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);
|
||||||
|
|
||||||
|
|||||||
Generated
+3
-3
@@ -3006,9 +3006,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/dompurify": {
|
"node_modules/dompurify": {
|
||||||
"version": "3.4.11",
|
"version": "3.4.12",
|
||||||
"resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.4.11.tgz",
|
"resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.4.12.tgz",
|
||||||
"integrity": "sha512-zhlUV12GsaRzMsf9q5M254YhA4+VuF0fG+QFqu6aYpoGlKtz+w8//jBcGVYBgQkR5GHjUomejY84AV+/uPbWdw==",
|
"integrity": "sha512-zQvGet8Z2sWbQhCmfFz/T5QWH2oBmjnqK3qvOjaqaNLrLEF912WamU+ohnTp0TCep/MFVHpdJuCZEdFOdTnEFg==",
|
||||||
"license": "(MPL-2.0 OR Apache-2.0)",
|
"license": "(MPL-2.0 OR Apache-2.0)",
|
||||||
"optionalDependencies": {
|
"optionalDependencies": {
|
||||||
"@types/trusted-types": "^2.0.7"
|
"@types/trusted-types": "^2.0.7"
|
||||||
|
|||||||
Reference in New Issue
Block a user