Prevent access to content in disabled languages
authorAlexander Ebert <ebert@woltlab.com>
Fri, 27 Apr 2018 11:50:01 +0000 (13:50 +0200)
committerAlexander Ebert <ebert@woltlab.com>
Fri, 27 Apr 2018 11:50:01 +0000 (13:50 +0200)
wcfsetup/install/files/lib/page/AbstractArticlePage.class.php
wcfsetup/install/files/lib/page/CmsPage.class.php

index f12f8d898cb42866e9b4cb63b93bf2ca1f7fd01b..e6e1b2f46cda7b420baa7fb51b3ac6206b561ca8 100644 (file)
@@ -76,6 +76,12 @@ abstract class AbstractArticlePage extends AbstractPage {
                if ($this->articleContent === null) {
                        throw new IllegalLinkException();
                }
+               
+               // check if the language has been disabled
+               if ($this->articleContent->languageID && LanguageFactory::getInstance()->getLanguage($this->articleContent->languageID) === null) {
+                       throw new IllegalLinkException();
+               }
+               
                $this->article = ViewableArticle::getArticle($this->articleContent->articleID, false);
                $this->category = $this->article->getCategory();
                
index 42f3f75313c2a0a8fd8f5697695f7a1fe8613f98..7c774b00bc71de5b523ac38106976a002bbcd8c4 100644 (file)
@@ -51,6 +51,11 @@ class CmsPage extends AbstractPage {
                        $this->pageID = $metaData['cms']['pageID'];
                        
                        if (isset($metaData['cms']['languageID'])) $this->languageID = $metaData['cms']['languageID'];
+                       
+                       // check if the language has been disabled
+                       if ($this->languageID && LanguageFactory::getInstance()->getLanguage($this->languageID) === null) {
+                               throw new IllegalLinkException();
+                       }
                }
                
                if ($this->pageID) {