]> git.mxchange.org Git - friendica.git/blobdiff - src/Worker/RemoveUser.php
We now store the receivers as well
[friendica.git] / src / Worker / RemoveUser.php
index dfa5ccc097c7e9ea14c2c6f66d8488e22ab2e710..e209aec07f18c23056e0f523a190df712bac65fd 100644 (file)
@@ -1,15 +1,33 @@
 <?php
 /**
- * @file src/Worker/RemoveUser.php
- * @brief Removes orphaned data from deleted users
+ * @copyright Copyright (C) 2010-2022, the Friendica project
+ *
+ * @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\Worker;
 
 use Friendica\Database\DBA;
 use Friendica\Model\Item;
+use Friendica\Model\Post;
 
-require_once 'include/dba.php';
-
+/**
+ * Removes orphaned data from deleted users
+ */
 class RemoveUser {
        public static function execute($uid)
        {
@@ -20,6 +38,13 @@ class RemoveUser {
                }
 
                // Now we delete all user items
-               Item::delete(['uid' => $uid], PRIORITY_LOW);
+               $condition = ['uid' => $uid, 'deleted' => false];
+               do {
+                       $items = Post::select(['id'], $condition, ['limit' => 100]);
+                       while ($item = Post::fetch($items)) {
+                               Item::markForDeletionById($item['id'], PRIORITY_NEGLIGIBLE);
+                       }
+                       DBA::close($items);
+               } while (Post::exists($condition));
        }
 }