Mercurial > prosody-hg
annotate plugins/muc/name.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 | 13eee48071c8 |
| children |
| rev | line source |
|---|---|
|
6209
cc00e78e6a31
plugins/muc: Move name functions to seperate module
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
1 -- Prosody IM |
|
cc00e78e6a31
plugins/muc: Move name functions to seperate module
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
2 -- Copyright (C) 2008-2010 Matthew Wild |
|
cc00e78e6a31
plugins/muc: Move name functions to seperate module
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
3 -- Copyright (C) 2008-2010 Waqas Hussain |
|
cc00e78e6a31
plugins/muc: Move name functions to seperate module
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
4 -- Copyright (C) 2014 Daurnimator |
|
cc00e78e6a31
plugins/muc: Move name functions to seperate module
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
5 -- |
|
cc00e78e6a31
plugins/muc: Move name functions to seperate module
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
6 -- This project is MIT/X11 licensed. Please see the |
|
cc00e78e6a31
plugins/muc: Move name functions to seperate module
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
7 -- COPYING file in the source package for more information. |
|
cc00e78e6a31
plugins/muc: Move name functions to seperate module
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
8 -- |
|
cc00e78e6a31
plugins/muc: Move name functions to seperate module
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
9 |
|
cc00e78e6a31
plugins/muc: Move name functions to seperate module
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
10 local function get_name(room) |
|
11057
13eee48071c8
MUC: Don't default room name to JID localpart (API breaking change)
Kim Alvefur <zash@zash.se>
parents:
9034
diff
changeset
|
11 return room._data.name; |
|
6209
cc00e78e6a31
plugins/muc: Move name functions to seperate module
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
12 end |
|
cc00e78e6a31
plugins/muc: Move name functions to seperate module
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
13 |
|
cc00e78e6a31
plugins/muc: Move name functions to seperate module
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
14 local function set_name(room, name) |
|
8986
320ae6dbb2e8
MUC: Add roomconfig_roomname to disco#info, and ensure it's not auto-generated
Matthew Wild <mwild1@gmail.com>
parents:
7401
diff
changeset
|
15 if name == "" then name = nil; end |
|
6209
cc00e78e6a31
plugins/muc: Move name functions to seperate module
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
16 if room._data.name == name then return false; end |
|
cc00e78e6a31
plugins/muc: Move name functions to seperate module
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
17 room._data.name = name; |
|
cc00e78e6a31
plugins/muc: Move name functions to seperate module
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
18 return true; |
|
cc00e78e6a31
plugins/muc: Move name functions to seperate module
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
19 end |
|
cc00e78e6a31
plugins/muc: Move name functions to seperate module
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
20 |
|
8988
d92b8bc6614c
MUC: Remove empty statement [luacheck]
Kim Alvefur <zash@zash.se>
parents:
8986
diff
changeset
|
21 local function insert_name_into_form(event) |
|
6209
cc00e78e6a31
plugins/muc: Move name functions to seperate module
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
22 table.insert(event.form, { |
|
cc00e78e6a31
plugins/muc: Move name functions to seperate module
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
23 name = "muc#roomconfig_roomname"; |
|
cc00e78e6a31
plugins/muc: Move name functions to seperate module
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
24 type = "text-single"; |
|
9034
1c709e3d2e5e
MUC: Improve labels of all config form items
Matthew Wild <mwild1@gmail.com>
parents:
8988
diff
changeset
|
25 label = "Title"; |
|
8986
320ae6dbb2e8
MUC: Add roomconfig_roomname to disco#info, and ensure it's not auto-generated
Matthew Wild <mwild1@gmail.com>
parents:
7401
diff
changeset
|
26 value = event.room._data.name; |
|
6209
cc00e78e6a31
plugins/muc: Move name functions to seperate module
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
27 }); |
|
8986
320ae6dbb2e8
MUC: Add roomconfig_roomname to disco#info, and ensure it's not auto-generated
Matthew Wild <mwild1@gmail.com>
parents:
7401
diff
changeset
|
28 end |
|
320ae6dbb2e8
MUC: Add roomconfig_roomname to disco#info, and ensure it's not auto-generated
Matthew Wild <mwild1@gmail.com>
parents:
7401
diff
changeset
|
29 |
|
320ae6dbb2e8
MUC: Add roomconfig_roomname to disco#info, and ensure it's not auto-generated
Matthew Wild <mwild1@gmail.com>
parents:
7401
diff
changeset
|
30 module:hook("muc-disco#info", function(event) |
|
320ae6dbb2e8
MUC: Add roomconfig_roomname to disco#info, and ensure it's not auto-generated
Matthew Wild <mwild1@gmail.com>
parents:
7401
diff
changeset
|
31 event.reply:tag("identity", {category="conference", type="text", name=get_name(event.room)}):up(); |
|
320ae6dbb2e8
MUC: Add roomconfig_roomname to disco#info, and ensure it's not auto-generated
Matthew Wild <mwild1@gmail.com>
parents:
7401
diff
changeset
|
32 insert_name_into_form(event); |
|
320ae6dbb2e8
MUC: Add roomconfig_roomname to disco#info, and ensure it's not auto-generated
Matthew Wild <mwild1@gmail.com>
parents:
7401
diff
changeset
|
33 end); |
|
320ae6dbb2e8
MUC: Add roomconfig_roomname to disco#info, and ensure it's not auto-generated
Matthew Wild <mwild1@gmail.com>
parents:
7401
diff
changeset
|
34 |
|
320ae6dbb2e8
MUC: Add roomconfig_roomname to disco#info, and ensure it's not auto-generated
Matthew Wild <mwild1@gmail.com>
parents:
7401
diff
changeset
|
35 module:hook("muc-config-form", insert_name_into_form, 100-1); |
|
6209
cc00e78e6a31
plugins/muc: Move name functions to seperate module
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
36 |
|
6991
84e01dbb739e
MUC: Update all config form handlers to take advantage of the new per-option events
Matthew Wild <mwild1@gmail.com>
parents:
6209
diff
changeset
|
37 module:hook("muc-config-submitted/muc#roomconfig_roomname", function(event) |
|
84e01dbb739e
MUC: Update all config form handlers to take advantage of the new per-option events
Matthew Wild <mwild1@gmail.com>
parents:
6209
diff
changeset
|
38 if set_name(event.room, event.value) then |
|
6209
cc00e78e6a31
plugins/muc: Move name functions to seperate module
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
39 event.status_codes["104"] = true; |
|
cc00e78e6a31
plugins/muc: Move name functions to seperate module
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
40 end |
|
cc00e78e6a31
plugins/muc: Move name functions to seperate module
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
41 end); |
|
cc00e78e6a31
plugins/muc: Move name functions to seperate module
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
42 |
|
cc00e78e6a31
plugins/muc: Move name functions to seperate module
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
43 return { |
|
cc00e78e6a31
plugins/muc: Move name functions to seperate module
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
44 get = get_name; |
|
cc00e78e6a31
plugins/muc: Move name functions to seperate module
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
45 set = set_name; |
|
cc00e78e6a31
plugins/muc: Move name functions to seperate module
daurnimator <quae@daurnimator.com>
parents:
diff
changeset
|
46 }; |
