Commit 6cd4f8ab271979b16ace8d125e18634001829c61

Authored by Alexey Boroda
1 parent d9cf0699

-Bad get params 404 added

Showing 1 changed file with 20 additions and 4 deletions   Show diff stats
components/LanguageUrlManager.php
@@ -2,23 +2,39 @@ @@ -2,23 +2,39 @@
2 namespace artweb\artbox\language\components; 2 namespace artweb\artbox\language\components;
3 3
4 use artweb\artbox\language\models\Language; 4 use artweb\artbox\language\models\Language;
  5 + use yii\web\NotFoundHttpException;
5 use yii\web\UrlManager; 6 use yii\web\UrlManager;
6 7
7 class LanguageUrlManager extends UrlManager 8 class LanguageUrlManager extends UrlManager
8 { 9 {
  10 + /**
  11 + * @var array
  12 + */
  13 + public $badGetParams = [];
  14 +
  15 + public function parseRequest($request)
  16 + {
  17 + foreach ($request->get() as $param => $value) {
  18 + if (in_array($param, $this->badGetParams)) {
  19 + throw new NotFoundHttpException();
  20 + }
  21 + }
  22 +
  23 + return parent::parseRequest($request);
  24 + }
9 25
10 /** 26 /**
11 * @inheritdoc 27 * @inheritdoc
12 */ 28 */
13 public function createUrl($params) 29 public function createUrl($params)
14 { 30 {
15 - if(isset( $params[ 'language_id' ] )) { 31 + if (isset($params[ 'language_id' ])) {
16 32
17 $language = Language::findOne($params[ 'language_id' ]); 33 $language = Language::findOne($params[ 'language_id' ]);
18 - if($language === NULL) { 34 + if ($language === null) {
19 $language = Language::getDefaultLanguage(); 35 $language = Language::getDefaultLanguage();
20 } 36 }
21 - unset( $params[ 'language_id' ] ); 37 + unset($params[ 'language_id' ]);
22 } else { 38 } else {
23 39
24 $language = Language::getCurrent(); 40 $language = Language::getCurrent();
@@ -26,7 +42,7 @@ @@ -26,7 +42,7 @@
26 42
27 $url = parent::createUrl($params); 43 $url = parent::createUrl($params);
28 44
29 - if($url == '/') { 45 + if ($url == '/') {
30 return '/' . $language->url; 46 return '/' . $language->url;
31 } else { 47 } else {
32 return '/' . $language->url . $url; 48 return '/' . $language->url . $url;