summaryrefslogtreecommitdiffstats
path: root/db
diff options
context:
space:
mode:
authorBernhard Posselt <dev@bernhard-posselt.com>2014-04-04 03:09:17 +0200
committerBernhard Posselt <dev@bernhard-posselt.com>2014-04-04 03:09:26 +0200
commit57e61031877e1f921e7b4446471c61e4c5ac1b13 (patch)
tree7128e8d03cddd191113e0e8e447dcee5437d37d4 /db
parent8eedcfa1446fb6589cf57ec19ef5b5163b38b5b3 (diff)
register hooks for deleting feeds, folders and items if a user is deleted, fix #468
Diffstat (limited to 'db')
-rw-r--r--db/feedmapper.php11
-rw-r--r--db/foldermapper.php9
-rw-r--r--db/itemmapper.php16
3 files changed, 36 insertions, 0 deletions
diff --git a/db/feedmapper.php b/db/feedmapper.php
index 60f9abefa..23b6da5d6 100644
--- a/db/feedmapper.php
+++ b/db/feedmapper.php
@@ -198,4 +198,15 @@ class FeedMapper extends Mapper implements IMapper {
}
+ /**
+ * Deletes all feeds of a user, delete items first since the user_id
+ * is not defined in there
+ * @param string $userId the name of the user
+ */
+ public function deleteUser($userId) {
+ $sql = 'DELETE FROM `*PREFIX*news_feeds` WHERE `user_id` = ?';
+ $this->execute($sql, array($userId));
+ }
+
+
}
diff --git a/db/foldermapper.php b/db/foldermapper.php
index 8f6c32cde..2abe89b29 100644
--- a/db/foldermapper.php
+++ b/db/foldermapper.php
@@ -127,5 +127,14 @@ class FolderMapper extends Mapper implements IMapper {
}
+ /**
+ * Deletes all folders of a user
+ * @param string $userId the name of the user
+ */
+ public function deleteUser($userId) {
+ $sql = 'DELETE FROM `*PREFIX*news_folders` WHERE `user_id` = ?';
+ $this->execute($sql, array($userId));
+ }
+
} \ No newline at end of file
diff --git a/db/itemmapper.php b/db/itemmapper.php
index 1ec283826..5b2ab5346 100644
--- a/db/itemmapper.php
+++ b/db/itemmapper.php
@@ -300,4 +300,20 @@ class ItemMapper extends Mapper implements IMapper {
return (int) $result['max_id'];
}
+
+ /**
+ * Deletes all items of a user
+ * @param string $userId the name of the user
+ */
+ public function deleteUser($userId) {
+ $sql = 'DELETE FROM `*PREFIX*news_items` `items` ' .
+ 'WHERE `items`.`feed_id` IN (' .
+ 'SELECT `feeds`.`id` FROM `*PREFIX*news_feeds` `feeds` ' .
+ 'WHERE `feeds`.`user_id` = ?' .
+ ')';
+
+ $this->execute($sql, array($userId));
+ }
+
+
}