]> git.mxchange.org Git - friendica.git/blobdiff - src/App.php
Merge remote-tracking branch 'upstream/2019.06-rc' into issue-6477
[friendica.git] / src / App.php
index f3b0ab64156c7be4dd6ba8e055e51c838fb87060..89d3009da04d4f72ca2afffe4e5d9d38ac24461a 100644 (file)
@@ -87,11 +87,6 @@ class App
         */
        private $baseURL;
 
-       /**
-        * @var bool true, if the call is from the Friendica APP, otherwise false
-        */
-       private $isFriendicaApp;
-
        /**
         * @var bool true, if the call is from an backend node (f.e. worker)
         */
@@ -154,7 +149,8 @@ class App
         */
        public function getBasePath()
        {
-               return $this->config->get('system', 'basepath');
+               // Don't use the basepath of the config table for basepath (it should always be the config-file one)
+               return $this->config->getCache()->get('system', 'basepath');
        }
 
        /**
@@ -257,8 +253,6 @@ class App
                $this->profiler = $profiler;
                $this->logger   = $logger;
 
-               $this->checkFriendicaApp();
-
                $this->profiler->reset();
 
                $this->reload();
@@ -601,28 +595,6 @@ class App
                        $this->getBaseURL();
        }
 
-       /**
-        * Checks, if the call is from the Friendica App
-        *
-        * Reason:
-        * The friendica client has problems with the GUID in the notify. this is some workaround
-        */
-       private function checkFriendicaApp()
-       {
-               // Friendica-Client
-               $this->isFriendicaApp = isset($_SERVER['HTTP_USER_AGENT']) && $_SERVER['HTTP_USER_AGENT'] == 'Apache-HttpClient/UNAVAILABLE (java 1.4)';
-       }
-
-       /**
-        *      Is the call via the Friendica app? (not a "normale" call)
-        *
-        * @return bool true if it's from the Friendica app
-        */
-       public function isFriendicaApp()
-       {
-               return $this->isFriendicaApp;
-       }
-
        /**
         * @brief Checks if the site is called via a backend process
         *
@@ -1006,10 +978,9 @@ class App
        {
                // Missing DB connection: ERROR
                if ($this->getMode()->has(App\Mode::LOCALCONFIGPRESENT) && !$this->getMode()->has(App\Mode::DBAVAILABLE)) {
-                       echo Module\Special\HTTPException::rawContent(
+                       Module\Special\HTTPException::rawContent(
                                new HTTPException\InternalServerErrorException('Apologies but the website is unavailable at the moment.')
                        );
-                       exit;
                }
 
                // Max Load Average reached: ERROR
@@ -1017,17 +988,9 @@ class App
                        header('Retry-After: 120');
                        header('Refresh: 120; url=' . $this->getBaseURL() . "/" . $this->query_string);
 
-                       echo Module\Special\HTTPException::rawContent(
-                               new HTTPException\ServiceUnavaiableException('The node is currently overloaded. Please try again later.')
+                       Module\Special\HTTPException::rawContent(
+                               new HTTPException\ServiceUnavailableException('The node is currently overloaded. Please try again later.')
                        );
-                       exit;
-               }
-
-               if (strstr($this->query_string, '.well-known/host-meta') && ($this->query_string != '.well-known/host-meta')) {
-                       echo Module\Special\HTTPException::rawContent(
-                               new HTTPException\NotFoundException()
-                       );
-                       exit;
                }
 
                if (!$this->getMode()->isInstall()) {
@@ -1078,10 +1041,9 @@ class App
                                        // Someone came with an invalid parameter, maybe as a DDoS attempt
                                        // We simply stop processing here
                                        Core\Logger::log("Invalid ZRL parameter " . $_GET['zrl'], Core\Logger::DEBUG);
-                                       echo Module\Special\HTTPException::rawContent(
+                                       Module\Special\HTTPException::rawContent(
                                                new HTTPException\ForbiddenException()
                                        );
-                                       exit;
                                }
                        }
                }
@@ -1110,10 +1072,10 @@ class App
 
                // in install mode, any url loads install module
                // but we need "view" module for stylesheet
-               if ($this->getMode()->isInstall() && $this->module != 'view') {
-                       $this->module = 'install';
-               } elseif (!$this->getMode()->has(App\Mode::MAINTENANCEDISABLED) && $this->module != 'view') {
-                       $this->module = 'maintenance';
+               if ($this->getMode()->isInstall() && $this->module !== 'install') {
+                       $this->internalRedirect('install');
+               } elseif (!$this->getMode()->isInstall() && !$this->getMode()->has(App\Mode::MAINTENANCEDISABLED) && $this->module !== 'maintenance') {
+                       $this->internalRedirect('maintenance');
                } else {
                        $this->checkURL();
                        Core\Update::check($this->getBasePath(), false, $this->getMode());
@@ -1136,7 +1098,7 @@ class App
 
                // Compatibility with the Android Diaspora client
                if ($this->module == 'stream') {
-                       $this->internalRedirect('network?f=&order=post');
+                       $this->internalRedirect('network?order=post');
                }
 
                if ($this->module == 'conversations') {
@@ -1144,15 +1106,15 @@ class App
                }
 
                if ($this->module == 'commented') {
-                       $this->internalRedirect('network?f=&order=comment');
+                       $this->internalRedirect('network?order=comment');
                }
 
                if ($this->module == 'liked') {
-                       $this->internalRedirect('network?f=&order=comment');
+                       $this->internalRedirect('network?order=comment');
                }
 
                if ($this->module == 'activity') {
-                       $this->internalRedirect('network/?f=&conv=1');
+                       $this->internalRedirect('network?conv=1');
                }
 
                if (($this->module == 'status_messages') && ($this->cmd == 'status_messages/new')) {
@@ -1202,11 +1164,6 @@ class App
                        }
                }
 
-               // Then we try name-matching a Friendica\Module class
-               if (!$this->module_class && class_exists('Friendica\\Module\\' . ucfirst($this->module))) {
-                       $this->module_class = 'Friendica\\Module\\' . ucfirst($this->module);
-               }
-
                /* Finally, we look for a 'standard' program module in the 'mod' directory
                 * We emulate a Module class through the LegacyModule class
                 */
@@ -1272,8 +1229,7 @@ class App
                        Core\Hook::callAll($this->module . '_mod_afterpost', $placeholder);
                        call_user_func([$this->module_class, 'afterpost']);
                } catch(HTTPException $e) {
-                       echo Module\Special\HTTPException::rawContent($e);
-                       exit;
+                       Module\Special\HTTPException::rawContent($e);
                }
 
                $content = '';