Mercurial > prosody-hg
annotate plugins/muc/description.lib.lua @ 12694:26a004c96ef8
util.paseto: Implementation of PASETO v4.public tokens
PASETO provides an alternative to JWT with the promise of fewer implementation
pitfalls. The v4.public algorithm allows asymmetric cryptographically-verified
token issuance and validation.
In summary, such tokens can be issued by one party and securely verified by
any other party independently using the public key of the issuer. This has a
number of potential applications in a decentralized network and ecosystem such
as XMPP. For example, such tokens could be combined with XEP-0317 to allow
hats to be verified even in the context of a third-party MUC service.
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Fri, 24 Jun 2022 17:03:28 +0100 |
| parents | 1c709e3d2e5e |
| children |
| rev | line source |
|---|---|
|
6204
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
1 -- Prosody IM |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
2 -- Copyright (C) 2008-2010 Matthew Wild |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
3 -- Copyright (C) 2008-2010 Waqas Hussain |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
4 -- Copyright (C) 2014 Daurnimator |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
5 -- |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
6 -- This project is MIT/X11 licensed. Please see the |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
7 -- COPYING file in the source package for more information. |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
8 -- |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
9 |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
10 local function get_description(room) |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
11 return room._data.description; |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
12 end |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
13 |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
14 local function set_description(room, description) |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
15 if description == "" then description = nil; end |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
16 if get_description(room) == description then return false; end |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
17 room._data.description = description; |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
18 return true; |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
19 end |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
20 |
|
8829
6dd7fea941f6
MUC: Use correct field name for description in disco#info (fixes #1148)
Kim Alvefur <zash@zash.se>
parents:
7401
diff
changeset
|
21 local function add_disco_form(event) |
|
6dd7fea941f6
MUC: Use correct field name for description in disco#info (fixes #1148)
Kim Alvefur <zash@zash.se>
parents:
7401
diff
changeset
|
22 table.insert(event.form, { |
|
6dd7fea941f6
MUC: Use correct field name for description in disco#info (fixes #1148)
Kim Alvefur <zash@zash.se>
parents:
7401
diff
changeset
|
23 name = "muc#roominfo_description"; |
|
6dd7fea941f6
MUC: Use correct field name for description in disco#info (fixes #1148)
Kim Alvefur <zash@zash.se>
parents:
7401
diff
changeset
|
24 label = "Description"; |
|
8830
5d7db3c7c026
MUC: Pass description via formdata field where it should be
Kim Alvefur <zash@zash.se>
parents:
8829
diff
changeset
|
25 value = ""; |
|
8829
6dd7fea941f6
MUC: Use correct field name for description in disco#info (fixes #1148)
Kim Alvefur <zash@zash.se>
parents:
7401
diff
changeset
|
26 }); |
|
8830
5d7db3c7c026
MUC: Pass description via formdata field where it should be
Kim Alvefur <zash@zash.se>
parents:
8829
diff
changeset
|
27 event.formdata["muc#roominfo_description"] = get_description(event.room); |
|
8829
6dd7fea941f6
MUC: Use correct field name for description in disco#info (fixes #1148)
Kim Alvefur <zash@zash.se>
parents:
7401
diff
changeset
|
28 end |
|
6dd7fea941f6
MUC: Use correct field name for description in disco#info (fixes #1148)
Kim Alvefur <zash@zash.se>
parents:
7401
diff
changeset
|
29 |
|
6204
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
30 local function add_form_option(event) |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
31 table.insert(event.form, { |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
32 name = "muc#roomconfig_roomdesc"; |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
33 type = "text-single"; |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
34 label = "Description"; |
|
9034
1c709e3d2e5e
MUC: Improve labels of all config form items
Matthew Wild <mwild1@gmail.com>
parents:
8831
diff
changeset
|
35 desc = "A brief description of the room"; |
|
7124
a0764a8d6b26
MUC: Roll back parts of 50b9a7e86de9 that were not in the disco#info event
Kim Alvefur <zash@zash.se>
parents:
7119
diff
changeset
|
36 value = get_description(event.room) or ""; |
|
6204
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
37 }); |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
38 end |
|
8831
f25fa63750fb
MUC: Some spacing to improve readability
Kim Alvefur <zash@zash.se>
parents:
8830
diff
changeset
|
39 |
|
8829
6dd7fea941f6
MUC: Use correct field name for description in disco#info (fixes #1148)
Kim Alvefur <zash@zash.se>
parents:
7401
diff
changeset
|
40 module:hook("muc-disco#info", add_disco_form); |
|
7401
e16b3fd0bd80
MUC: Assign priorities to config form hooks so they have a consistent order on each start
Kim Alvefur <zash@zash.se>
parents:
7353
diff
changeset
|
41 module:hook("muc-config-form", add_form_option, 100-2); |
|
6204
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
42 |
|
6991
84e01dbb739e
MUC: Update all config form handlers to take advantage of the new per-option events
Matthew Wild <mwild1@gmail.com>
parents:
6204
diff
changeset
|
43 module:hook("muc-config-submitted/muc#roomconfig_roomdesc", function(event) |
|
84e01dbb739e
MUC: Update all config form handlers to take advantage of the new per-option events
Matthew Wild <mwild1@gmail.com>
parents:
6204
diff
changeset
|
44 if set_description(event.room, event.value) then |
|
6204
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
45 event.status_codes["104"] = true; |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
46 end |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
47 end); |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
48 |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
49 return { |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
50 get = get_description; |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
51 set = set_description; |
|
c3254827698d
plugins/muc/muc.lib: Move description functions out to own file
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
52 }; |
