diff options
author | Kim Alvefur <zash@zash.se> | 2013-01-31 18:41:01 +0100 |
---|---|---|
committer | Kim Alvefur <zash@zash.se> | 2013-01-31 18:41:01 +0100 |
commit | 517296667e0fa74dd441892cf9750101ae31e814 (patch) | |
tree | a1d3fc24abd3048cb23d45b860640a83baa8c261 /util/pubsub.lua | |
parent | 90ae4df608d142ea15584ae42ccfe146c8fb6952 (diff) | |
download | prosody-517296667e0fa74dd441892cf9750101ae31e814.tar.gz prosody-517296667e0fa74dd441892cf9750101ae31e814.zip |
mod_pubsub, util.pubsub: Add delete action
Diffstat (limited to 'util/pubsub.lua')
-rw-r--r-- | util/pubsub.lua | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/util/pubsub.lua b/util/pubsub.lua index 3d97d4ed..e7fc86b1 100644 --- a/util/pubsub.lua +++ b/util/pubsub.lua @@ -226,6 +226,18 @@ function service:create(node, actor) return ok, err; end +function service:delete(node, actor) + -- Access checking + if not self:may(node, actor, "delete") then + return false, "forbidden"; + end + -- + local node_obj = self.nodes[node]; + self.nodes[node] = nil; + self.config.broadcaster("delete", node, node_obj.subscribers); + return true; +end + function service:publish(node, actor, id, item) -- Access checking if not self:may(node, actor, "publish") then |