Browse Source

Referer as array

mscherer 1 year ago
parent
commit
c53f1ec313
1 changed files with 8 additions and 3 deletions
  1. 8 3
      src/Controller/Component/RefererRedirectComponent.php

+ 8 - 3
src/Controller/Component/RefererRedirectComponent.php

@@ -5,6 +5,7 @@ namespace Tools\Controller\Component;
 use Cake\Controller\Component;
 use Cake\Event\EventInterface;
 use Cake\Http\Response;
+use Cake\Routing\Router;
 
 /**
  * Uses a referer key in query string to redirect to given referer.
@@ -58,13 +59,17 @@ class RefererRedirectComponent extends Component {
 	 *
 	 * @return string|null
 	 */
-	protected function referer() {
+	protected function referer(): ?string {
 		$referer = $this->getController()->getRequest()->getQuery(static::QUERY_REFERER);
-		if (!$referer || !is_string($referer)) {
+		if (!$referer) {
 			return null;
 		}
 
-		if (!str_starts_with($referer, '/')) {
+		if (is_array($referer)) {
+			$referer = Router::url($referer);
+		}
+
+		if (!is_string($referer) || !str_starts_with($referer, '/')) {
 			return null;
 		}