]> git.mxchange.org Git - friendica.git/blobdiff - src/Core/Update.php
Merge pull request #9039 from MrPetovan/task/frio-accent-scheme
[friendica.git] / src / Core / Update.php
index 620519a2369c868a8d14ebd35ebea141a35e89b5..827029d50e184a52a5f93468cb0409d8242f657d 100644 (file)
@@ -1,4 +1,23 @@
 <?php
+/**
+ * @copyright Copyright (C) 2020, Friendica
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
 
 namespace Friendica\Core;
 
@@ -108,7 +127,7 @@ class Update
 
                                        // run the pre_update_nnnn functions in update.php
                                        for ($x = $stored + 1; $x <= $current; $x++) {
-                                               $r = self::runUpdateFunction($x, 'pre_update');
+                                               $r = self::runUpdateFunction($x, 'pre_update', $sendMail);
                                                if (!$r) {
                                                        DI::config()->set('system', 'update', Update::FAILED);
                                                        DI::lock()->release('dbupdate');
@@ -137,7 +156,7 @@ class Update
 
                                        // run the update_nnnn functions in update.php
                                        for ($x = $stored + 1; $x <= $current; $x++) {
-                                               $r = self::runUpdateFunction($x, 'update');
+                                               $r = self::runUpdateFunction($x, 'update', $sendMail);
                                                if (!$r) {
                                                        DI::config()->set('system', 'update', Update::FAILED);
                                                        DI::lock()->release('dbupdate');
@@ -162,13 +181,14 @@ class Update
        /**
         * Executes a specific update function
         *
-        * @param int    $x      the DB version number of the function
-        * @param string $prefix the prefix of the function (update, pre_update)
-        *
+        * @param int    $x        the DB version number of the function
+        * @param string $prefix   the prefix of the function (update, pre_update)
+        * @param bool   $sendMail whether to send emails on success/failure
+
         * @return bool true, if the update function worked
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         */
-       public static function runUpdateFunction($x, $prefix)
+       public static function runUpdateFunction($x, $prefix, bool $sendMail = true)
        {
                $funcname = $prefix . '_' . $x;
 
@@ -188,11 +208,13 @@ class Update
                                $retval = $funcname();
 
                                if ($retval) {
-                                       //send the administrator an e-mail
-                                       self::updateFailed(
-                                               $x,
-                                               DI::l10n()->t('Update %s failed. See error logs.', $x)
-                                       );
+                                       if ($sendMail) {
+                                               //send the administrator an e-mail
+                                               self::updateFailed(
+                                                       $x,
+                                                       DI::l10n()->t('Update %s failed. See error logs.', $x)
+                                               );
+                                       }
                                        Logger::error('Update function ERROR.', ['function' => $funcname, 'retval' => $retval]);
                                        DI::lock()->release('dbupdate_function');
                                        return false;
@@ -264,9 +286,9 @@ class Update
                        $body     = $l10n->t("The error message is\n[pre]%s[/pre]", $error_message);
 
                        $email = DI::emailer()
-                               ->newSystemMail($l10n)
+                               ->newSystemMail()
                                ->withMessage($l10n->t('[Friendica Notify] Database update'), $preamble, $body)
-                               ->forUser($admin['uid'] ?? 0)
+                               ->forUser($admin)
                                ->withRecipient($admin['email'])
                                ->build();
                        DI::emailer()->send($email);
@@ -300,9 +322,9 @@ class Update
                                        $from_build, $to_build));
 
                                $email = DI::emailer()
-                                       ->newSystemMail($l10n)
+                                       ->newSystemMail()
                                        ->withMessage($l10n->t('[Friendica Notify] Database update'), $preamble)
-                                       ->forUser($admin['uid'] ?? 0)
+                                       ->forUser($admin)
                                        ->withRecipient($admin['email'])
                                        ->build();
                                DI::emailer()->send($email);