Terms&Conditions fixes:
* adding hints (no-store, no-copy) on xmpp messages * frontend will ignore any archived message
This commit is contained in:
parent
914de79400
commit
9b1f24eafe
@ -36,6 +36,11 @@ converse.plugins.add('livechat-converse-terms', {
|
|||||||
console.error('Invalid x-livechat-terms type: ', type)
|
console.error('Invalid x-livechat-terms type: ', type)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
if (attrs.is_archived) {
|
||||||
|
// This should not happen, as we add some no-store hints. But, just in case.
|
||||||
|
console.info('Dropping an archived x-livechat-terms message')
|
||||||
|
return
|
||||||
|
}
|
||||||
// console.info('Received a x-livechat-terms message', attrs)
|
// console.info('Received a x-livechat-terms message', attrs)
|
||||||
const options = {}
|
const options = {}
|
||||||
options['x_livechat_terms_' + type] = attrs
|
options['x_livechat_terms_' + type] = attrs
|
||||||
|
@ -32,8 +32,10 @@ local function create_terms_message(room, type, terms)
|
|||||||
id = id.medium()
|
id = id.medium()
|
||||||
}, terms)
|
}, terms)
|
||||||
:tag('x-livechat-terms', { type = type }):up() -- adding a custom tag to specify that it is a "terms" message, so that frontend can display it with a special template.
|
:tag('x-livechat-terms', { type = type }):up() -- adding a custom tag to specify that it is a "terms" message, so that frontend can display it with a special template.
|
||||||
:tag("delay", { xmlns = "urn:xmpp:delay", from = from, stamp = datetime.datetime() }):up(); -- adding a delay to trick the moderation bot (see below)
|
:tag("delay", { xmlns = "urn:xmpp:delay", from = from, stamp = datetime.datetime() }):up() -- adding a delay to trick the moderation bot (see below)
|
||||||
|
:tag("no-copy", { xmlns = "urn:xmpp:hints" }):up()
|
||||||
|
:tag("no-store", { xmlns = "urn:xmpp:hints" }):up()
|
||||||
|
:tag("no-permanent-store", { xmlns = "urn:xmpp:hints" }):up();
|
||||||
-- concerning the delay tag:
|
-- concerning the delay tag:
|
||||||
-- We are sending message to rooms from non-existant occupants.
|
-- We are sending message to rooms from non-existant occupants.
|
||||||
-- If the message contains something that should be moderated by the livechat moderation bot,
|
-- If the message contains something that should be moderated by the livechat moderation bot,
|
||||||
|
@ -25,6 +25,9 @@ Here is an example of sent messages:
|
|||||||
<x-livechat-terms type="global" />
|
<x-livechat-terms type="global" />
|
||||||
<delay xmlns="urn:xmpp:delay" stamp="2024-06-25T11:02:25Z" />
|
<delay xmlns="urn:xmpp:delay" stamp="2024-06-25T11:02:25Z" />
|
||||||
<stanza-id by="8df24108-6e70-4fc8-b1cc-f2db7fcdd535@room.p1.localhost" xmlns="urn:xmpp:sid:0" id="InoL5fonvOoR8X9gOlAYsz_N" />
|
<stanza-id by="8df24108-6e70-4fc8-b1cc-f2db7fcdd535@room.p1.localhost" xmlns="urn:xmpp:sid:0" id="InoL5fonvOoR8X9gOlAYsz_N" />
|
||||||
|
<no-copy xmlns='urn:xmpp:hints'/>
|
||||||
|
<no-store xmlns='urn:xmpp:hints'/>
|
||||||
|
<no-permanent-store xmlns='urn:xmpp:hints'/>
|
||||||
</message>
|
</message>
|
||||||
|
|
||||||
<message xmlns="jabber:client" id="_iRSEs061gi5GBjF7zGh7f-M" type="groupchat" to="root@p1.localhost/QH1H89H1" from="8df24108-6e70-4fc8-b1cc-f2db7fcdd535@room.p1.localhost/Peertube">
|
<message xmlns="jabber:client" id="_iRSEs061gi5GBjF7zGh7f-M" type="groupchat" to="root@p1.localhost/QH1H89H1" from="8df24108-6e70-4fc8-b1cc-f2db7fcdd535@room.p1.localhost/Peertube">
|
||||||
@ -32,6 +35,9 @@ Here is an example of sent messages:
|
|||||||
<x-livechat-terms type="muc" />
|
<x-livechat-terms type="muc" />
|
||||||
<delay xmlns="urn:xmpp:delay" stamp="2024-06-25T11:02:25Z" />
|
<delay xmlns="urn:xmpp:delay" stamp="2024-06-25T11:02:25Z" />
|
||||||
<stanza-id by="8df24108-6e70-4fc8-b1cc-f2db7fcdd535@room.p1.localhost" xmlns="urn:xmpp:sid:0" id="InoL5fonvOoR8X9gOlAYsz_N" />
|
<stanza-id by="8df24108-6e70-4fc8-b1cc-f2db7fcdd535@room.p1.localhost" xmlns="urn:xmpp:sid:0" id="InoL5fonvOoR8X9gOlAYsz_N" />
|
||||||
|
<no-copy xmlns='urn:xmpp:hints'/>
|
||||||
|
<no-store xmlns='urn:xmpp:hints'/>
|
||||||
|
<no-permanent-store xmlns='urn:xmpp:hints'/>
|
||||||
</message>
|
</message>
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -47,6 +53,8 @@ We must do so, because without nickname, some XMPP clients won't show the messag
|
|||||||
We also add a `delay` tag, to trick the moderation bot (see comments in code).
|
We also add a `delay` tag, to trick the moderation bot (see comments in code).
|
||||||
This also ensure clients will not drop the message because there is no occupant with this name.
|
This also ensure clients will not drop the message because there is no occupant with this name.
|
||||||
|
|
||||||
|
We also add some `urn:xmpp:hints` to avoid storing or copying these messages.
|
||||||
|
|
||||||
When muc terms are updated, the new terms will be broadcasted.
|
When muc terms are updated, the new terms will be broadcasted.
|
||||||
|
|
||||||
To avoid anyone spoofing terms & conditions, incoming message stanza are filtered, and any `x-livechat-terms` tag will be removed.
|
To avoid anyone spoofing terms & conditions, incoming message stanza are filtered, and any `x-livechat-terms` tag will be removed.
|
||||||
|
Loading…
Reference in New Issue
Block a user