Mercurial > prosody-modules
annotate mod_spam_reporting/mod_spam_reporting.lua @ 3503:882180b459a0
mod_pubsub_post: Restructure authentication and authorization (BC)
This deprecates the default "superuser" actor model and makes the
default equivalent to the previous "request.id".
A single actor and secret per node is supported because HTTP and
WebHooks don't normally include any authorization identity.
Allowing authentication bypass when no secret is given should be
relatively safe when the actor is unprivileged, as will be unless
explicitly configured otherwise.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sat, 30 Mar 2019 21:16:13 +0100 |
parents | a59671b3dd43 |
children | fe24bda72838 |
rev | line source |
---|---|
2280
ebe360f59119
mod_spam_reporting: Add Copyright header
Kim Alvefur <zash@zash.se>
parents:
2279
diff
changeset
|
1 -- XEP-0377: Spam Reporting for Prosody |
ebe360f59119
mod_spam_reporting: Add Copyright header
Kim Alvefur <zash@zash.se>
parents:
2279
diff
changeset
|
2 -- Copyright (C) -2016 Kim Alvefur |
ebe360f59119
mod_spam_reporting: Add Copyright header
Kim Alvefur <zash@zash.se>
parents:
2279
diff
changeset
|
3 -- |
ebe360f59119
mod_spam_reporting: Add Copyright header
Kim Alvefur <zash@zash.se>
parents:
2279
diff
changeset
|
4 -- This file is MIT/X11 licensed. |
2266
33a0988e5f1c
mod_spam_reporting: Basic implementation of XEP-0377: Spam Reporting
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
5 |
2281
0899eeb0b3f7
mod_spam_reporting: Apply JID prepping
Kim Alvefur <zash@zash.se>
parents:
2280
diff
changeset
|
6 local jid_prep = require "util.jid".prep; |
0899eeb0b3f7
mod_spam_reporting: Apply JID prepping
Kim Alvefur <zash@zash.se>
parents:
2280
diff
changeset
|
7 |
2266
33a0988e5f1c
mod_spam_reporting: Basic implementation of XEP-0377: Spam Reporting
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
8 module:depends("blocklist"); |
33a0988e5f1c
mod_spam_reporting: Basic implementation of XEP-0377: Spam Reporting
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
9 |
33a0988e5f1c
mod_spam_reporting: Basic implementation of XEP-0377: Spam Reporting
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
10 module:add_feature("urn:xmpp:reporting:0"); |
33a0988e5f1c
mod_spam_reporting: Basic implementation of XEP-0377: Spam Reporting
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
11 module:add_feature("urn:xmpp:reporting:reason:spam:0"); |
33a0988e5f1c
mod_spam_reporting: Basic implementation of XEP-0377: Spam Reporting
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
12 module:add_feature("urn:xmpp:reporting:reason:abuse:0"); |
33a0988e5f1c
mod_spam_reporting: Basic implementation of XEP-0377: Spam Reporting
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
13 |
2275
7f228bf82fe5
mod_spam_reporting: Hook the blocking action, not blocklist fetching
Kim Alvefur <zash@zash.se>
parents:
2267
diff
changeset
|
14 module:hook("iq-set/self/urn:xmpp:blocking:block", function (event) |
2266
33a0988e5f1c
mod_spam_reporting: Basic implementation of XEP-0377: Spam Reporting
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
15 for item in event.stanza.tags[1]:childtags("item") do |
33a0988e5f1c
mod_spam_reporting: Basic implementation of XEP-0377: Spam Reporting
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
16 local report = item:get_child("report", "urn:xmpp:reporting:0"); |
2281
0899eeb0b3f7
mod_spam_reporting: Apply JID prepping
Kim Alvefur <zash@zash.se>
parents:
2280
diff
changeset
|
17 local jid = jid_prep(item.attr.jid); |
2276
1b12ccbbd9b2
mod_spam_reporting: Continue looking for spam reports even when one <item> does not have one
Kim Alvefur <zash@zash.se>
parents:
2275
diff
changeset
|
18 if report and jid then |
1b12ccbbd9b2
mod_spam_reporting: Continue looking for spam reports even when one <item> does not have one
Kim Alvefur <zash@zash.se>
parents:
2275
diff
changeset
|
19 local type = report:get_child("spam") and "spam" or |
1b12ccbbd9b2
mod_spam_reporting: Continue looking for spam reports even when one <item> does not have one
Kim Alvefur <zash@zash.se>
parents:
2275
diff
changeset
|
20 report:get_child("abuse") and "abuse" or |
1b12ccbbd9b2
mod_spam_reporting: Continue looking for spam reports even when one <item> does not have one
Kim Alvefur <zash@zash.se>
parents:
2275
diff
changeset
|
21 "unknown"; |
2283
bd1117002a9b
mod_spam_reporting: Correctly check <text> child, not <reason>
Kim Alvefur <zash@zash.se>
parents:
2281
diff
changeset
|
22 local reason = report:get_child_text("text") or "no reason given"; |
2276
1b12ccbbd9b2
mod_spam_reporting: Continue looking for spam reports even when one <item> does not have one
Kim Alvefur <zash@zash.se>
parents:
2275
diff
changeset
|
23 module:log("warn", "Received report of %s from JID '%s', %s", type, jid, reason); |
2277
bad5dd466427
mod_spam_reporting: Fire an event to ease processing from other modules
Kim Alvefur <zash@zash.se>
parents:
2276
diff
changeset
|
24 module:fire_event(module.name.."/"..type.."-report", { |
2298
a59671b3dd43
mod_spam_reporting: Include jid in event
Kim Alvefur <zash@zash.se>
parents:
2283
diff
changeset
|
25 origin = event.origin, stanza = event.stanza, jid = jid, |
2277
bad5dd466427
mod_spam_reporting: Fire an event to ease processing from other modules
Kim Alvefur <zash@zash.se>
parents:
2276
diff
changeset
|
26 item = item, report = report, reason = reason, }); |
2276
1b12ccbbd9b2
mod_spam_reporting: Continue looking for spam reports even when one <item> does not have one
Kim Alvefur <zash@zash.se>
parents:
2275
diff
changeset
|
27 end |
2266
33a0988e5f1c
mod_spam_reporting: Basic implementation of XEP-0377: Spam Reporting
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
28 end |
33a0988e5f1c
mod_spam_reporting: Basic implementation of XEP-0377: Spam Reporting
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
29 end, 1); |