]> git.mxchange.org Git - friendica.git/blobdiff - boot.php
Cleanup:
[friendica.git] / boot.php
index 786a846f320424f12d7cbbd8d644d7cb6f152668..7654d261c3c5b0576511a5a26209c69237ee7b92 100644 (file)
--- a/boot.php
+++ b/boot.php
@@ -41,7 +41,7 @@ define('FRIENDICA_PLATFORM',     'Friendica');
 define('FRIENDICA_CODENAME',     'The Tazmans Flax-lily');
 define('FRIENDICA_VERSION',      '2018.08-dev');
 define('DFRN_PROTOCOL_VERSION',  '2.23');
-define('DB_UPDATE_VERSION',      1273);
+define('DB_UPDATE_VERSION',      1279);
 define('NEW_UPDATE_ROUTINE_VERSION', 1170);
 
 /**
@@ -64,15 +64,13 @@ define('EOL',                    "<br />\r\n");
  * @brief Image storage quality.
  *
  * Lower numbers save space at cost of image detail.
- * For ease of upgrade, please do not change here. Change jpeg quality with
- * $a->config['system']['jpeg_quality'] = n;
- * in .htconfig.php, where n is netween 1 and 100, and with very poor results
- * below about 50
+ * For ease of upgrade, please do not change here. Set [system] jpegquality = n in config/local.ini.php,
+ * where n is between 1 and 100, and with very poor results below about 50
  */
 define('JPEG_QUALITY',            100);
 
 /**
- * $a->config['system']['png_quality'] from 0 (uncompressed) to 9
+ * [system] png_quality = n where is between 0 (uncompressed) to 9
  */
 define('PNG_QUALITY',             8);
 
@@ -83,9 +81,10 @@ define('PNG_QUALITY',             8);
  * this length (on the longest side, the other side will be scaled appropriately).
  * Modify this value using
  *
- *    $a->config['system']['max_image_length'] = n;
+ * [system]
+ * max_image_length = n;
  *
- * in .htconfig.php
+ * in config/local.ini.php
  *
  * If you don't want to set a maximum length, set to -1. The default value is
  * defined by 'MAX_IMAGE_LENGTH' below.
@@ -114,11 +113,12 @@ define('SSL_POLICY_SELFSIGN',     2);
  * log levels
  * @{
  */
-define('LOGGER_NORMAL',          0);
-define('LOGGER_TRACE',           1);
-define('LOGGER_DEBUG',           2);
-define('LOGGER_DATA',            3);
-define('LOGGER_ALL',             4);
+define('LOGGER_WARNING',         0);
+define('LOGGER_INFO',            1);
+define('LOGGER_TRACE',           2);
+define('LOGGER_DEBUG',           3);
+define('LOGGER_DATA',            4);
+define('LOGGER_ALL',             5);
 /* @}*/
 
 /**
@@ -499,36 +499,6 @@ if (!defined("SIGTERM")) {
 if (!defined('CURLE_OPERATION_TIMEDOUT')) {
        define('CURLE_OPERATION_TIMEDOUT', CURLE_OPERATION_TIMEOUTED);
 }
-/**
- * Reverse the effect of magic_quotes_gpc if it is enabled.
- * Please disable magic_quotes_gpc so we don't have to do this.
- * See http://php.net/manual/en/security.magicquotes.disabling.php
- */
-function startup()
-{
-       error_reporting(E_ERROR | E_WARNING | E_PARSE);
-
-       set_time_limit(0);
-
-       // This has to be quite large to deal with embedded private photos
-       ini_set('pcre.backtrack_limit', 500000);
-
-       if (get_magic_quotes_gpc()) {
-               $process = [&$_GET, &$_POST, &$_COOKIE, &$_REQUEST];
-               while (list($key, $val) = each($process)) {
-                       foreach ($val as $k => $v) {
-                               unset($process[$key][$k]);
-                               if (is_array($v)) {
-                                       $process[$key][stripslashes($k)] = $v;
-                                       $process[] = &$process[$key][stripslashes($k)];
-                               } else {
-                                       $process[$key][stripslashes($k)] = stripslashes($v);
-                               }
-                       }
-               }
-               unset($process);
-       }
-}
 
 /**
  * @brief Retrieve the App structure
@@ -539,14 +509,7 @@ function startup()
  */
 function get_app()
 {
-       global $a;
-
-       if (empty($a)) {
-               $a = new App(dirname(__DIR__));
-               BaseObject::setApp($a);
-       }
-
-       return $a;
+       return BaseObject::getApp();
 }
 
 /**
@@ -707,7 +670,7 @@ function check_url(App $a)
        // and www.example.com vs example.com.
        // We will only change the url to an ip address if there is no existing setting
 
-       if (empty($url) || (!link_compare($url, System::baseUrl())) && (!preg_match("/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/", $a->get_hostname))) {
+       if (empty($url) || (!link_compare($url, System::baseUrl())) && (!preg_match("/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/", $a->get_hostname()))) {
                Config::set('system', 'url', System::baseUrl());
        }
 
@@ -741,10 +704,17 @@ function update_db()
                                return;
                        }
 
+                       // run the pre_update_nnnn functions in update.php
+                       for ($x = $stored + 1; $x <= $current; $x++) {
+                               $r = run_update_function($x, 'pre_update');
+                               if (!$r) {
+                                       break;
+                               }
+                       }
+
                        Config::set('database', 'dbupdate_' . DB_UPDATE_VERSION, time());
 
-                       // run update routine
-                       // it update the structure in one call
+                       // update the structure in one call
                        $retval = DBStructure::update(false, true);
                        if ($retval) {
                                DBStructure::updateFail(
@@ -756,9 +726,9 @@ function update_db()
                                Config::set('database', 'dbupdate_' . DB_UPDATE_VERSION, 'success');
                        }
 
-                       // run any left update_nnnn functions in update.php
+                       // run the update_nnnn functions in update.php
                        for ($x = $stored + 1; $x <= $current; $x++) {
-                               $r = run_update_function($x);
+                               $r = run_update_function($x, 'update');
                                if (!$r) {
                                        break;
                                }
@@ -769,9 +739,11 @@ function update_db()
        return;
 }
 
-function run_update_function($x)
+function run_update_function($x, $prefix)
 {
-       if (function_exists('update_' . $x)) {
+       $funcname = $prefix . '_' . $x;
+
+       if (function_exists($funcname)) {
                // There could be a lot of processes running or about to run.
                // We want exactly one process to run the update command.
                // So store the fact that we're taking responsibility
@@ -779,16 +751,14 @@ function run_update_function($x)
                // If the update fails or times-out completely you may need to
                // delete the config entry to try again.
 
-               $t = Config::get('database', 'update_' . $x);
+               $t = Config::get('database', $funcname);
                if (!is_null($t)) {
                        return false;
                }
-               Config::set('database', 'update_' . $x, time());
+               Config::set('database', $funcname, time());
 
                // call the specific update
-
-               $func = 'update_' . $x;
-               $retval = $func();
+               $retval = $funcname();
 
                if ($retval) {
                        //send the administrator an e-mail
@@ -798,13 +768,21 @@ function run_update_function($x)
                        );
                        return false;
                } else {
-                       Config::set('database', 'update_' . $x, 'success');
-                       Config::set('system', 'build', $x);
+                       Config::set('database', $funcname, 'success');
+
+                       if ($prefix == 'update') {
+                               Config::set('system', 'build', $x);
+                       }
+
                        return true;
                }
        } else {
-               Config::set('database', 'update_' . $x, 'success');
-               Config::set('system', 'build', $x);
+               Config::set('database', $funcname, 'success');
+
+               if ($prefix == 'update') {
+                       Config::set('system', 'build', $x);
+               }
+
                return true;
        }
 }
@@ -812,7 +790,7 @@ function run_update_function($x)
 /**
  * @brief Synchronise addons:
  *
- * $a->config['system']['addon'] contains a comma-separated list of names
+ * system.addon contains a comma-separated list of names
  * of addons which are used on this system.
  * Go through the database list of already installed addons, and if we have
  * an entry, but it isn't in the config list, call the uninstall procedure
@@ -865,28 +843,6 @@ function check_addons(App $a)
        return;
 }
 
-function get_guid($size = 16, $prefix = '')
-{
-       if (is_bool($prefix) && !$prefix) {
-               $prefix = '';
-       } elseif ($prefix == '') {
-               $a = get_app();
-               $prefix = hash('crc32', $a->get_hostname());
-       }
-
-       while (strlen($prefix) < ($size - 13)) {
-               $prefix .= mt_rand();
-       }
-
-       if ($size >= 24) {
-               $prefix = substr($prefix, 0, $size - 22);
-               return str_replace('.', '', uniqid($prefix, true));
-       } else {
-               $prefix = substr($prefix, 0, max($size - 13, 0));
-               return uniqid($prefix);
-       }
-}
-
 /**
  * @brief Used to end the current process, after saving session state.
  * @deprecated
@@ -918,7 +874,7 @@ function goaway($path)
  */
 function local_user()
 {
-       if (x($_SESSION, 'authenticated') && x($_SESSION, 'uid')) {
+       if (!empty($_SESSION['authenticated']) && !empty($_SESSION['uid'])) {
                return intval($_SESSION['uid']);
        }
        return false;
@@ -961,6 +917,11 @@ function remote_user()
 //     if (local_user()) {
 //             return false;
 //     }
+
+       if (empty($_SESSION)) {
+               return false;
+       }
+
        if (x($_SESSION, 'authenticated') && x($_SESSION, 'visitor_id')) {
                return intval($_SESSION['visitor_id']);
        }
@@ -976,6 +937,10 @@ function remote_user()
  */
 function notice($s)
 {
+       if (empty($_SESSION)) {
+               return;
+       }
+
        $a = get_app();
        if (!x($_SESSION, 'sysmsg')) {
                $_SESSION['sysmsg'] = [];
@@ -1008,17 +973,6 @@ function info($s)
        }
 }
 
-/**
- * @brief Wrapper around config to limit the text length of an incoming message
- *
- * @return int
- */
-function get_max_import_size()
-{
-       $a = get_app();
-       return (x($a->config, 'max_import_size') ? $a->config['max_import_size'] : 0);
-}
-
 function feed_birthday($uid, $tz)
 {
        /**
@@ -1074,14 +1028,11 @@ function is_site_admin()
 {
        $a = get_app();
 
-       $adminlist = explode(",", str_replace(" ", "", $a->config['admin_email']));
+       $admin_email = Config::get('config', 'admin_email');
 
-       //if(local_user() && x($a->user,'email') && x($a->config,'admin_email') && ($a->user['email'] === $a->config['admin_email']))
-       /// @TODO This if() + 2 returns can be shrinked into one return
-       if (local_user() && x($a->user, 'email') && x($a->config, 'admin_email') && in_array($a->user['email'], $adminlist)) {
-               return true;
-       }
-       return false;
+       $adminlist = explode(',', str_replace(' ', '', $admin_email));
+
+       return local_user() && $admin_email && in_array(defaults($a->user, 'email', ''), $adminlist);
 }
 
 /**