Mercurial > prosody-modules
comparison mod_invites/README.markdown @ 4097:96838617695a
mod_invites: Update documentation
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Fri, 11 Sep 2020 13:53:55 +0100 |
parents | 824447fc7759 |
children | 4ec755c13e9b |
comparison
equal
deleted
inserted
replaced
4096:24f4eb35ab60 | 4097:96838617695a |
---|---|
1 --- | |
2 labels: | |
3 - 'Stage-Beta' | |
4 summary: 'Invite management module for Prosody' | |
5 ... | |
6 | |
7 Introduction | |
8 ============ | |
9 | |
10 This module is part of the suite of modules that implement invite-based | |
11 account registration for Prosody. The other modules are: | |
12 | |
13 - mod_invites_adhoc | |
14 - mod_invites_page | |
15 - mod_invites_register | |
16 - mod_invites_register_web | |
17 - mod_register_apps | |
1 | 18 |
2 This module manages the creation and consumption of invite codes for the | 19 This module manages the creation and consumption of invite codes for the |
3 host(s) it is loaded onto. It currently does not expose any admin/user-facing | 20 host(s) it is loaded onto. It currently does not expose any admin/user-facing |
4 functionality (though in the future it will probably gain a way to view/manage | 21 functionality (though in the future it will probably gain a way to view/manage |
5 pending invites). | 22 pending invites). |
6 | 23 |
7 Other modules can use the API from this module to create invite tokens which | 24 Instead, other modules can use the API from this module to create invite tokens |
8 can be used to e.g. register accounts or create automatic subscription approvals. | 25 which can be used to e.g. register accounts or create automatic subscription |
26 approvals. | |
27 | |
28 This module should not be confused with the similarly named mod_invite (note the | |
29 missing 's'!). That module was a precursor to this one that helped test and prove | |
30 the concept of invite-based registration, and is now deprecated. | |
9 | 31 |
10 # Configuration | 32 # Configuration |
33 | |
34 This module exposes just one option - the length of time that a generated invite | |
35 should be valid for by default. | |
11 | 36 |
12 ``` {.lua} | 37 ``` {.lua} |
13 -- Configure the number of seconds a token is valid for (default 7 days) | 38 -- Configure the number of seconds a token is valid for (default 7 days) |
14 invite_expiry = 86400 * 7 | 39 invite_expiry = 86400 * 7 |
15 ``` | 40 ``` |
16 | 41 |
17 Note that all modules that use this API will automatically load this module, | 42 # Invites setup |
18 so adding it to modules_enabled is generally not necessary. | 43 |
44 For a fully-featured invite-based setup, the following provides an example | |
45 configuration: | |
46 | |
47 ``` {.lua} | |
48 -- Specify the external URL format of the invite links | |
49 | |
50 VirtualHost "example.com" | |
51 invites_page = "https://example.com/invite?{invite.token}" | |
52 http_external_url = "https://example.com/" | |
53 http_paths = { | |
54 invites_page = "/invite"; | |
55 invites_register_web = "/register"; | |
56 } | |
57 modules_enabled = { | |
58 "invites"; | |
59 "invites_adhoc"; | |
60 "invites_page"; | |
61 "invites_register"; | |
62 "invites_register_web"; | |
63 | |
64 "http_libjs"; -- See 'external dependencies' below | |
65 } | |
66 ``` | |
67 | |
68 Restart Prosody and create a new invite using an ad-hoc command in an XMPP client connected | |
69 to your admin account, or use the command line: | |
70 | |
71 prosodyctl mod_invites generate example.com | |
72 | |
73 ## External dependencies | |
74 | |
75 The default HTML templates for the web-based modules depend on some CSS and Javascript | |
76 libraries. They expect these to be available at `https://example.com/share`. An easy | |
77 way of doing this if you are on Debian 10 (buster) is to enable mod_http_libjs and install | |
78 the following packages: | |
79 | |
80 apt install libjs-bootstrap4 libjs-jquery | |
81 | |
82 On other systems you will need to manually put these libraries somewhere on the filesystem | |
83 that Prosody can read, and serve them using mod_http_libjs with a custom `libjs_path` | |
84 setting. | |
19 | 85 |
20 # Compatibility | 86 # Compatibility |
21 | 87 |
22 0.11 and later. | 88 0.11 and later. |