]> git.mxchange.org Git - friendica.git/blobdiff - mod/admin.php
Moved functions out of boot.php into class
[friendica.git] / mod / admin.php
index b2f84d07293249be52d48269d521690fc2f01ba8..ade6b0cad1cac91507958f6e3e8fd7615a45129b 100644 (file)
@@ -24,6 +24,7 @@ use Friendica\Module\Tos;
 use Friendica\Util\Arrays;
 use Friendica\Util\DateTimeFormat;
 use Friendica\Util\Temporal;
+use Friendica\Util\Network;
 
 require_once 'include/enotify.php';
 require_once 'include/text.php';
@@ -76,7 +77,7 @@ function admin_post(App $a)
                                break;
                        case 'themes':
                                if ($a->argc < 2) {
-                                       if (is_ajax()) {
+                                       if ($a->isAjax()) {
                                                return;
                                        }
                                        goaway('admin/');
@@ -106,7 +107,7 @@ function admin_post(App $a)
                                }
 
                                info(L10n::t('Theme settings updated.'));
-                               if (is_ajax()) {
+                               if ($a->isAjax()) {
                                        return;
                                }
                                $return_path = 'admin/themes/' . $theme;
@@ -285,7 +286,7 @@ function admin_content(App $a)
                $o = admin_page_summary($a);
        }
 
-       if (is_ajax()) {
+       if ($a->isAjax()) {
                echo $o;
                killme();
                return '';
@@ -474,8 +475,8 @@ function admin_page_contactblock(App $a)
 
        $total = DBA::count('contact', $condition);
 
-       $a->set_pager_total($total);
-       $a->set_pager_itemspage(30);
+       $a->setPagerTotal($total);
+       $a->setPagerItemsPage(30);
 
        $statement = DBA::select('contact', [], $condition, ['limit' => [$a->pager['start'], $a->pager['itemspage']]]);
 
@@ -865,7 +866,15 @@ function admin_page_summary(App $a)
        // Legacy config file warning
        if (file_exists('.htconfig.php')) {
                $showwarning = true;
-               $warningtext[] = L10n::t('Friendica\'s configuration now is stored in config/local.ini.php, please copy config/local-sample.ini.php and move your config from <code>.htconfig.php</code>. See <a href="%s">the Config help page</a> for help with the transition.', $a->get_baseurl() . '/help/Config');
+               $warningtext[] = L10n::t('Friendica\'s configuration now is stored in config/local.ini.php, please copy config/local-sample.ini.php and move your config from <code>.htconfig.php</code>. See <a href="%s">the Config help page</a> for help with the transition.', $a->getBaseURL() . '/help/Config');
+       }
+
+       // Check server vitality
+       if (!admin_page_server_vital()) {
+               $showwarning = true;
+               $well_known = $a->getBaseURL() . '/.well-known/host-meta';
+               $warningtext[] = L10n::t('<a href="%s">%s</a> is not reachable on your system. This is a severe configuration issue that prevents server to server communication. See <a href="%s">the installation page</a> for help.',
+                       $well_known, $well_known, $a->getBaseURL() . '/help/Install');
        }
 
        $r = q("SELECT `page-flags`, COUNT(`uid`) AS `count` FROM `user` GROUP BY `page-flags`");
@@ -900,6 +909,15 @@ function admin_page_summary(App $a)
        $queues = ['label' => L10n::t('Message queues'), 'queue' => $queue, 'workerq' => $workerqueue];
 
 
+       $r = q("SHOW variables LIKE 'max_allowed_packet'");
+       $max_allowed_packet = (($r) ? $r[0]['Value'] : 0);
+
+       $server_settings = ['label' => L10n::t('Server Settings'), 
+                               'php' => ['upload_max_filesize' => ini_get('upload_max_filesize'), 
+                                                 'post_max_size' => ini_get('post_max_size'), 
+                                                 'memory_limit' => ini_get('memory_limit')], 
+                               'mysql' => ['max_allowed_packet' => $max_allowed_packet]];
+
        $t = get_markup_template('admin/summary.tpl');
        return replace_macros($t, [
                '$title' => L10n::t('Administration'),
@@ -914,6 +932,7 @@ function admin_page_summary(App $a)
                '$codename' => FRIENDICA_CODENAME,
                '$build' => Config::get('system', 'build'),
                '$addons' => [L10n::t('Active addons'), $a->addons],
+               '$serversettings' => $server_settings,
                '$showwarning' => $showwarning,
                '$warningtext' => $warningtext
        ]);
@@ -993,7 +1012,7 @@ function admin_page_site_post(App $a)
                // update config
                Config::set('system', 'hostname', parse_url($new_url,  PHP_URL_HOST));
                Config::set('system', 'url', $new_url);
-               $a->set_baseurl($new_url);
+               $a->setBaseURL($new_url);
 
                // send relocate
                $users = q("SELECT `uid` FROM `user` WHERE `account_removed` = 0 AND `account_expired` = 0");
@@ -1105,7 +1124,7 @@ function admin_page_site_post(App $a)
                Worker::add(PRIORITY_LOW, 'Directory');
        }
 
-       if ($a->get_path() != "") {
+       if ($a->getURLPath() != "") {
                $diaspora_enabled = false;
        }
        if ($ssl_policy != intval(Config::get('system', 'ssl_policy'))) {
@@ -1242,7 +1261,7 @@ function admin_page_site_post(App $a)
        Config::set('system', 'dbclean-expire-unclaimed', $dbclean_unclaimed);
 
        if ($itemcache != '') {
-               $itemcache = App::realpath($itemcache);
+               $itemcache = App::getRealPath($itemcache);
        }
 
        Config::set('system', 'itemcache', $itemcache);
@@ -1250,13 +1269,13 @@ function admin_page_site_post(App $a)
        Config::set('system', 'max_comments', $max_comments);
 
        if ($temppath != '') {
-               $temppath = App::realpath($temppath);
+               $temppath = App::getRealPath($temppath);
        }
 
        Config::set('system', 'temppath', $temppath);
 
        if ($basepath != '') {
-               $basepath = App::realpath($basepath);
+               $basepath = App::getRealPath($basepath);
        }
 
        Config::set('system', 'basepath', $basepath);
@@ -1400,9 +1419,9 @@ function admin_page_site(App $a)
        ];
 
        if (empty(Config::get('config', 'hostname'))) {
-               Config::set('config', 'hostname', $a->get_hostname());
+               Config::set('config', 'hostname', $a->getHostName());
        }
-       $diaspora_able = ($a->get_path() == "");
+       $diaspora_able = ($a->getURLPath() == "");
 
        $optimize_max_tablesize = Config::get('system', 'optimize_max_tablesize', -1);
 
@@ -1469,7 +1488,7 @@ function admin_page_site(App $a)
                '$community_page_style' => ['community_page_style', L10n::t("Community pages for visitors"), Config::get('system','community_page_style'), L10n::t("Which community pages should be available for visitors. Local users always see both pages."), $community_page_style_choices],
                '$max_author_posts_community_page' => ['max_author_posts_community_page', L10n::t("Posts per user on community page"), Config::get('system','max_author_posts_community_page'), L10n::t("The maximum number of posts per user on the community page. \x28Not valid for 'Global Community'\x29")],
                '$ostatus_disabled'     => ['ostatus_disabled', L10n::t("Enable OStatus support"), !Config::get('system','ostatus_disabled'), L10n::t("Provide built-in OStatus \x28StatusNet, GNU Social etc.\x29 compatibility. All communications in OStatus are public, so privacy warnings will be occasionally displayed.")],
-               '$ostatus_full_threads' => ['ostatus_full_threads', L10n::t("Only import OStatus threads from our contacts"), Config::get('system','ostatus_full_threads'), L10n::t("Normally we import every content from our OStatus contacts. With this option we only store threads that are started by a contact that is known on our system.")],
+               '$ostatus_full_threads' => ['ostatus_full_threads', L10n::t("Only import OStatus/ActivityPub threads from our contacts"), Config::get('system','ostatus_full_threads'), L10n::t("Normally we import every content from our OStatus and ActivityPub contacts. With this option we only store threads that are started by a contact that is known on our system.")],
                '$ostatus_not_able'     => L10n::t("OStatus support can only be enabled if threading is enabled."),
                '$diaspora_able'        => $diaspora_able,
                '$diaspora_not_able'    => L10n::t("Diaspora support can't be enabled because Friendica was installed into a sub directory."),
@@ -1689,11 +1708,14 @@ function admin_page_users_post(App $a)
                $body = sprintf($body, System::baseUrl(), $user['email'], $result['password'], Config::get('config', 'sitename'));
 
                notification([
-                       'type' => SYSTEM_EMAIL,
+                       'type'     => SYSTEM_EMAIL,
+                       'language' => $user['language'],
+                       'to_name'  => $user['username'],
                        'to_email' => $user['email'],
-                       'subject' => L10n::t('Registration details for %s', Config::get('config', 'sitename')),
+                       'uid'      => $user['uid'],
+                       'subject'  => L10n::t('Registration details for %s', Config::get('config', 'sitename')),
                        'preamble' => $preamble,
-                       'body' => $body]);
+                       'body'     => $body]);
        }
 
        if (x($_POST, 'page_users_block')) {
@@ -1779,8 +1801,8 @@ function admin_page_users(App $a)
        /* get users */
        $total = q("SELECT COUNT(*) AS `total` FROM `user` WHERE 1");
        if (count($total)) {
-               $a->set_pager_total($total[0]['total']);
-               $a->set_pager_itemspage(100);
+               $a->setPagerTotal($total[0]['total']);
+               $a->setPagerItemsPage(100);
        }
 
        /* ordering */
@@ -2514,7 +2536,7 @@ function admin_page_features_post(App $a)
  */
 function admin_page_features(App $a)
 {
-       if ((argc() > 1) && (argv(1) === 'features')) {
+       if (($a->argc > 1) && ($a->argv[1] === 'features')) {
                $arr = [];
                $features = Feature::get(false);
 
@@ -2541,3 +2563,9 @@ function admin_page_features(App $a)
                return $o;
        }
 }
+
+function admin_page_server_vital()
+{
+       // Fetch the host-meta to check if this really is a vital server
+       return Network::curl(System::baseUrl() . '/.well-known/host-meta')->isSuccess();
+}