annotate mod_register_oob_url/mod_register_oob_url.lua @ 5424:b45d9a81b3da

mod_http_oauth2: Revert role selector, going to try something else Back out f2c7bb3af600 Allowing only a single role to be encoded into the grant takes away the possibility of having multiple roles in the grant, one of which is selected when issuing an access token. It also takes away the ability to have zero roles granted, which could be useful e.g. when you only need OIDC scopes.
author Kim Alvefur <zash@zash.se>
date Sun, 07 May 2023 19:40:57 +0200
parents a7c2df6b2662
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2860
a7c2df6b2662 mod_registration_oob_url: inital commit. simple/straight forward module to advertise oob registration url
Daniel Gultsch <daniel@gultsch.de>
parents:
diff changeset
1 -- Register via OOB URL
a7c2df6b2662 mod_registration_oob_url: inital commit. simple/straight forward module to advertise oob registration url
Daniel Gultsch <daniel@gultsch.de>
parents:
diff changeset
2 -- Copyright (c) 2018 Daniel Gultsch
a7c2df6b2662 mod_registration_oob_url: inital commit. simple/straight forward module to advertise oob registration url
Daniel Gultsch <daniel@gultsch.de>
parents:
diff changeset
3 --
a7c2df6b2662 mod_registration_oob_url: inital commit. simple/straight forward module to advertise oob registration url
Daniel Gultsch <daniel@gultsch.de>
parents:
diff changeset
4 -- This module is MIT/X11 licensed
a7c2df6b2662 mod_registration_oob_url: inital commit. simple/straight forward module to advertise oob registration url
Daniel Gultsch <daniel@gultsch.de>
parents:
diff changeset
5 --
a7c2df6b2662 mod_registration_oob_url: inital commit. simple/straight forward module to advertise oob registration url
Daniel Gultsch <daniel@gultsch.de>
parents:
diff changeset
6
a7c2df6b2662 mod_registration_oob_url: inital commit. simple/straight forward module to advertise oob registration url
Daniel Gultsch <daniel@gultsch.de>
parents:
diff changeset
7 local st = require "util.stanza";
a7c2df6b2662 mod_registration_oob_url: inital commit. simple/straight forward module to advertise oob registration url
Daniel Gultsch <daniel@gultsch.de>
parents:
diff changeset
8 local namespace = "http://jabber.org/features/iq-register"
a7c2df6b2662 mod_registration_oob_url: inital commit. simple/straight forward module to advertise oob registration url
Daniel Gultsch <daniel@gultsch.de>
parents:
diff changeset
9 local register_stream_feature = st.stanza("register", {xmlns=namespace}):up();
a7c2df6b2662 mod_registration_oob_url: inital commit. simple/straight forward module to advertise oob registration url
Daniel Gultsch <daniel@gultsch.de>
parents:
diff changeset
10 local allow_registration = module:get_option_boolean("allow_registration", false);
a7c2df6b2662 mod_registration_oob_url: inital commit. simple/straight forward module to advertise oob registration url
Daniel Gultsch <daniel@gultsch.de>
parents:
diff changeset
11 local registration_url = module:get_option_string("register_oob_url", nil)
a7c2df6b2662 mod_registration_oob_url: inital commit. simple/straight forward module to advertise oob registration url
Daniel Gultsch <daniel@gultsch.de>
parents:
diff changeset
12
a7c2df6b2662 mod_registration_oob_url: inital commit. simple/straight forward module to advertise oob registration url
Daniel Gultsch <daniel@gultsch.de>
parents:
diff changeset
13 if allow_registration then
a7c2df6b2662 mod_registration_oob_url: inital commit. simple/straight forward module to advertise oob registration url
Daniel Gultsch <daniel@gultsch.de>
parents:
diff changeset
14 module:log("info","obb registration is disabled as long as IBR is allowed. Set `allow_registration` to false")
a7c2df6b2662 mod_registration_oob_url: inital commit. simple/straight forward module to advertise oob registration url
Daniel Gultsch <daniel@gultsch.de>
parents:
diff changeset
15 end
a7c2df6b2662 mod_registration_oob_url: inital commit. simple/straight forward module to advertise oob registration url
Daniel Gultsch <daniel@gultsch.de>
parents:
diff changeset
16
a7c2df6b2662 mod_registration_oob_url: inital commit. simple/straight forward module to advertise oob registration url
Daniel Gultsch <daniel@gultsch.de>
parents:
diff changeset
17 if not registration_url then
a7c2df6b2662 mod_registration_oob_url: inital commit. simple/straight forward module to advertise oob registration url
Daniel Gultsch <daniel@gultsch.de>
parents:
diff changeset
18 module:log("info","registration url not configured. Add `register_oob_url` to prosody.cfg")
a7c2df6b2662 mod_registration_oob_url: inital commit. simple/straight forward module to advertise oob registration url
Daniel Gultsch <daniel@gultsch.de>
parents:
diff changeset
19 end
a7c2df6b2662 mod_registration_oob_url: inital commit. simple/straight forward module to advertise oob registration url
Daniel Gultsch <daniel@gultsch.de>
parents:
diff changeset
20
a7c2df6b2662 mod_registration_oob_url: inital commit. simple/straight forward module to advertise oob registration url
Daniel Gultsch <daniel@gultsch.de>
parents:
diff changeset
21 local function on_stream_features(event)
a7c2df6b2662 mod_registration_oob_url: inital commit. simple/straight forward module to advertise oob registration url
Daniel Gultsch <daniel@gultsch.de>
parents:
diff changeset
22 if not registration_url then
a7c2df6b2662 mod_registration_oob_url: inital commit. simple/straight forward module to advertise oob registration url
Daniel Gultsch <daniel@gultsch.de>
parents:
diff changeset
23 return
a7c2df6b2662 mod_registration_oob_url: inital commit. simple/straight forward module to advertise oob registration url
Daniel Gultsch <daniel@gultsch.de>
parents:
diff changeset
24 end
a7c2df6b2662 mod_registration_oob_url: inital commit. simple/straight forward module to advertise oob registration url
Daniel Gultsch <daniel@gultsch.de>
parents:
diff changeset
25 local session, features = event.origin, event.features;
a7c2df6b2662 mod_registration_oob_url: inital commit. simple/straight forward module to advertise oob registration url
Daniel Gultsch <daniel@gultsch.de>
parents:
diff changeset
26 if session.type == "c2s_unauthed" and not allow_registration then
a7c2df6b2662 mod_registration_oob_url: inital commit. simple/straight forward module to advertise oob registration url
Daniel Gultsch <daniel@gultsch.de>
parents:
diff changeset
27 features:add_child(register_stream_feature);
a7c2df6b2662 mod_registration_oob_url: inital commit. simple/straight forward module to advertise oob registration url
Daniel Gultsch <daniel@gultsch.de>
parents:
diff changeset
28 end
a7c2df6b2662 mod_registration_oob_url: inital commit. simple/straight forward module to advertise oob registration url
Daniel Gultsch <daniel@gultsch.de>
parents:
diff changeset
29 end
a7c2df6b2662 mod_registration_oob_url: inital commit. simple/straight forward module to advertise oob registration url
Daniel Gultsch <daniel@gultsch.de>
parents:
diff changeset
30
a7c2df6b2662 mod_registration_oob_url: inital commit. simple/straight forward module to advertise oob registration url
Daniel Gultsch <daniel@gultsch.de>
parents:
diff changeset
31 local function on_registration_requested(event)
a7c2df6b2662 mod_registration_oob_url: inital commit. simple/straight forward module to advertise oob registration url
Daniel Gultsch <daniel@gultsch.de>
parents:
diff changeset
32 local session, stanza = event.origin, event.stanza
a7c2df6b2662 mod_registration_oob_url: inital commit. simple/straight forward module to advertise oob registration url
Daniel Gultsch <daniel@gultsch.de>
parents:
diff changeset
33 if session.type ~= "c2s_unauthed" or stanza.attr.type ~= "get" then
a7c2df6b2662 mod_registration_oob_url: inital commit. simple/straight forward module to advertise oob registration url
Daniel Gultsch <daniel@gultsch.de>
parents:
diff changeset
34 return
a7c2df6b2662 mod_registration_oob_url: inital commit. simple/straight forward module to advertise oob registration url
Daniel Gultsch <daniel@gultsch.de>
parents:
diff changeset
35 end
a7c2df6b2662 mod_registration_oob_url: inital commit. simple/straight forward module to advertise oob registration url
Daniel Gultsch <daniel@gultsch.de>
parents:
diff changeset
36 if not allow_registration and registration_url then
a7c2df6b2662 mod_registration_oob_url: inital commit. simple/straight forward module to advertise oob registration url
Daniel Gultsch <daniel@gultsch.de>
parents:
diff changeset
37 local reply = st.reply(stanza)
a7c2df6b2662 mod_registration_oob_url: inital commit. simple/straight forward module to advertise oob registration url
Daniel Gultsch <daniel@gultsch.de>
parents:
diff changeset
38 reply:query("jabber:iq:register")
a7c2df6b2662 mod_registration_oob_url: inital commit. simple/straight forward module to advertise oob registration url
Daniel Gultsch <daniel@gultsch.de>
parents:
diff changeset
39 :tag("x", {xmlns = "jabber:x:oob"})
a7c2df6b2662 mod_registration_oob_url: inital commit. simple/straight forward module to advertise oob registration url
Daniel Gultsch <daniel@gultsch.de>
parents:
diff changeset
40 :tag("url"):text(registration_url);
a7c2df6b2662 mod_registration_oob_url: inital commit. simple/straight forward module to advertise oob registration url
Daniel Gultsch <daniel@gultsch.de>
parents:
diff changeset
41 return session.send(reply)
a7c2df6b2662 mod_registration_oob_url: inital commit. simple/straight forward module to advertise oob registration url
Daniel Gultsch <daniel@gultsch.de>
parents:
diff changeset
42 end
a7c2df6b2662 mod_registration_oob_url: inital commit. simple/straight forward module to advertise oob registration url
Daniel Gultsch <daniel@gultsch.de>
parents:
diff changeset
43 end
a7c2df6b2662 mod_registration_oob_url: inital commit. simple/straight forward module to advertise oob registration url
Daniel Gultsch <daniel@gultsch.de>
parents:
diff changeset
44
a7c2df6b2662 mod_registration_oob_url: inital commit. simple/straight forward module to advertise oob registration url
Daniel Gultsch <daniel@gultsch.de>
parents:
diff changeset
45 module:hook("stream-features", on_stream_features)
a7c2df6b2662 mod_registration_oob_url: inital commit. simple/straight forward module to advertise oob registration url
Daniel Gultsch <daniel@gultsch.de>
parents:
diff changeset
46 module:hook("stanza/iq/jabber:iq:register:query", on_registration_requested, 1)
a7c2df6b2662 mod_registration_oob_url: inital commit. simple/straight forward module to advertise oob registration url
Daniel Gultsch <daniel@gultsch.de>
parents:
diff changeset
47
a7c2df6b2662 mod_registration_oob_url: inital commit. simple/straight forward module to advertise oob registration url
Daniel Gultsch <daniel@gultsch.de>
parents:
diff changeset
48 -- vim: noexpandtab tabstop=4 shiftwidth=4