Mercurial > prosody-modules
annotate mod_register_oob_url/mod_register_oob_url.lua @ 4268:871d140d61bb
mod_adhoc_oauth2_client: Fix including final client_id in result form
The client_id is composed of the details needed for retrieving the data,
making it redundant to include in the data, albeit somewhat convenient
sometimes. Decided to remove it anyways, but forgot to change the result.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sun, 22 Nov 2020 17:00:26 +0100 |
parents | a7c2df6b2662 |
children |
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 |