Software /
code /
prosody-modules
Annotate
mod_invites_adhoc/mod_invites_adhoc.lua @ 4766:abac64f71698
mod_invites_adhoc: Add the ability to deny user invites by specific roles
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Tue, 09 Nov 2021 11:33:06 +0000 |
parent | 4410:d1230d32d709 |
child | 4767:ea93b204104e |
rev | line source |
---|---|
4092
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
1 -- XEP-0401: Easy User Onboarding |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
2 local dataforms = require "util.dataforms"; |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
3 local datetime = require "util.datetime"; |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
4 local split_jid = require "util.jid".split; |
4410
d1230d32d709
mod_invites_adhoc: Add support for specifying roles that may invite users, admins may always invite
Matthew Wild <mwild1@gmail.com>
parents:
4409
diff
changeset
|
5 local usermanager = require "core.usermanager"; |
4092
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
6 |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
7 local new_adhoc = module:require("adhoc").new; |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
8 |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
9 -- Whether local users can invite other users to create an account on this server |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
10 local allow_user_invites = module:get_option_boolean("allow_user_invites", false); |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
11 -- Who can see and use the contact invite command. It is strongly recommended to |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
12 -- keep this available to all local users. To allow/disallow invite-registration |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
13 -- on the server, use the option above instead. |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
14 local allow_contact_invites = module:get_option_boolean("allow_contact_invites", true); |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
15 |
4410
d1230d32d709
mod_invites_adhoc: Add support for specifying roles that may invite users, admins may always invite
Matthew Wild <mwild1@gmail.com>
parents:
4409
diff
changeset
|
16 local allow_user_invite_roles = module:get_option_set("allow_user_invites_by_roles"); |
4766
abac64f71698
mod_invites_adhoc: Add the ability to deny user invites by specific roles
Matthew Wild <mwild1@gmail.com>
parents:
4410
diff
changeset
|
17 local deny_user_invite_roles = module:get_option_set("deny_user_invites_by_roles"); |
4410
d1230d32d709
mod_invites_adhoc: Add support for specifying roles that may invite users, admins may always invite
Matthew Wild <mwild1@gmail.com>
parents:
4409
diff
changeset
|
18 |
4092
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
19 local invites; |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
20 if prosody.shutdown then -- COMPAT hack to detect prosodyctl |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
21 invites = module:depends("invites"); |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
22 end |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
23 |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
24 local invite_result_form = dataforms.new({ |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
25 title = "Your invite has been created", |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
26 { |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
27 name = "url" ; |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
28 var = "landing-url"; |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
29 label = "Invite web page"; |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
30 desc = "Share this link"; |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
31 }, |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
32 { |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
33 name = "uri"; |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
34 label = "Invite URI"; |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
35 desc = "This alternative link can be opened with some XMPP clients"; |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
36 }, |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
37 { |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
38 name = "expire"; |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
39 label = "Invite valid until"; |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
40 }, |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
41 }); |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
42 |
4410
d1230d32d709
mod_invites_adhoc: Add support for specifying roles that may invite users, admins may always invite
Matthew Wild <mwild1@gmail.com>
parents:
4409
diff
changeset
|
43 -- This is for checking if username (on the current host) |
d1230d32d709
mod_invites_adhoc: Add support for specifying roles that may invite users, admins may always invite
Matthew Wild <mwild1@gmail.com>
parents:
4409
diff
changeset
|
44 -- may create invites that allow people to register accounts |
d1230d32d709
mod_invites_adhoc: Add support for specifying roles that may invite users, admins may always invite
Matthew Wild <mwild1@gmail.com>
parents:
4409
diff
changeset
|
45 -- on this host. |
d1230d32d709
mod_invites_adhoc: Add support for specifying roles that may invite users, admins may always invite
Matthew Wild <mwild1@gmail.com>
parents:
4409
diff
changeset
|
46 local function may_invite_new_users(jid) |
d1230d32d709
mod_invites_adhoc: Add support for specifying roles that may invite users, admins may always invite
Matthew Wild <mwild1@gmail.com>
parents:
4409
diff
changeset
|
47 if allow_user_invites then |
d1230d32d709
mod_invites_adhoc: Add support for specifying roles that may invite users, admins may always invite
Matthew Wild <mwild1@gmail.com>
parents:
4409
diff
changeset
|
48 return true; |
d1230d32d709
mod_invites_adhoc: Add support for specifying roles that may invite users, admins may always invite
Matthew Wild <mwild1@gmail.com>
parents:
4409
diff
changeset
|
49 end |
d1230d32d709
mod_invites_adhoc: Add support for specifying roles that may invite users, admins may always invite
Matthew Wild <mwild1@gmail.com>
parents:
4409
diff
changeset
|
50 if usermanager.get_roles then |
d1230d32d709
mod_invites_adhoc: Add support for specifying roles that may invite users, admins may always invite
Matthew Wild <mwild1@gmail.com>
parents:
4409
diff
changeset
|
51 local user_roles = usermanager.get_roles(jid, module.host); |
d1230d32d709
mod_invites_adhoc: Add support for specifying roles that may invite users, admins may always invite
Matthew Wild <mwild1@gmail.com>
parents:
4409
diff
changeset
|
52 if not user_roles then return; end |
d1230d32d709
mod_invites_adhoc: Add support for specifying roles that may invite users, admins may always invite
Matthew Wild <mwild1@gmail.com>
parents:
4409
diff
changeset
|
53 if user_roles["prosody:admin"] then |
d1230d32d709
mod_invites_adhoc: Add support for specifying roles that may invite users, admins may always invite
Matthew Wild <mwild1@gmail.com>
parents:
4409
diff
changeset
|
54 return true; |
4766
abac64f71698
mod_invites_adhoc: Add the ability to deny user invites by specific roles
Matthew Wild <mwild1@gmail.com>
parents:
4410
diff
changeset
|
55 elseif deny_user_invite_roles then |
abac64f71698
mod_invites_adhoc: Add the ability to deny user invites by specific roles
Matthew Wild <mwild1@gmail.com>
parents:
4410
diff
changeset
|
56 for denied_role in deny_user_invite_roles do |
abac64f71698
mod_invites_adhoc: Add the ability to deny user invites by specific roles
Matthew Wild <mwild1@gmail.com>
parents:
4410
diff
changeset
|
57 if user_roles[denied_role] then |
abac64f71698
mod_invites_adhoc: Add the ability to deny user invites by specific roles
Matthew Wild <mwild1@gmail.com>
parents:
4410
diff
changeset
|
58 return false; |
abac64f71698
mod_invites_adhoc: Add the ability to deny user invites by specific roles
Matthew Wild <mwild1@gmail.com>
parents:
4410
diff
changeset
|
59 end |
abac64f71698
mod_invites_adhoc: Add the ability to deny user invites by specific roles
Matthew Wild <mwild1@gmail.com>
parents:
4410
diff
changeset
|
60 end |
4410
d1230d32d709
mod_invites_adhoc: Add support for specifying roles that may invite users, admins may always invite
Matthew Wild <mwild1@gmail.com>
parents:
4409
diff
changeset
|
61 elseif allow_user_invite_roles then |
d1230d32d709
mod_invites_adhoc: Add support for specifying roles that may invite users, admins may always invite
Matthew Wild <mwild1@gmail.com>
parents:
4409
diff
changeset
|
62 for allowed_role in allow_user_invite_roles do |
d1230d32d709
mod_invites_adhoc: Add support for specifying roles that may invite users, admins may always invite
Matthew Wild <mwild1@gmail.com>
parents:
4409
diff
changeset
|
63 if user_roles[allowed_role] then |
d1230d32d709
mod_invites_adhoc: Add support for specifying roles that may invite users, admins may always invite
Matthew Wild <mwild1@gmail.com>
parents:
4409
diff
changeset
|
64 return true; |
d1230d32d709
mod_invites_adhoc: Add support for specifying roles that may invite users, admins may always invite
Matthew Wild <mwild1@gmail.com>
parents:
4409
diff
changeset
|
65 end |
d1230d32d709
mod_invites_adhoc: Add support for specifying roles that may invite users, admins may always invite
Matthew Wild <mwild1@gmail.com>
parents:
4409
diff
changeset
|
66 end |
d1230d32d709
mod_invites_adhoc: Add support for specifying roles that may invite users, admins may always invite
Matthew Wild <mwild1@gmail.com>
parents:
4409
diff
changeset
|
67 end |
d1230d32d709
mod_invites_adhoc: Add support for specifying roles that may invite users, admins may always invite
Matthew Wild <mwild1@gmail.com>
parents:
4409
diff
changeset
|
68 elseif usermanager.is_admin(jid, module.host) then |
d1230d32d709
mod_invites_adhoc: Add support for specifying roles that may invite users, admins may always invite
Matthew Wild <mwild1@gmail.com>
parents:
4409
diff
changeset
|
69 return true; |
d1230d32d709
mod_invites_adhoc: Add support for specifying roles that may invite users, admins may always invite
Matthew Wild <mwild1@gmail.com>
parents:
4409
diff
changeset
|
70 end |
d1230d32d709
mod_invites_adhoc: Add support for specifying roles that may invite users, admins may always invite
Matthew Wild <mwild1@gmail.com>
parents:
4409
diff
changeset
|
71 return false; |
d1230d32d709
mod_invites_adhoc: Add support for specifying roles that may invite users, admins may always invite
Matthew Wild <mwild1@gmail.com>
parents:
4409
diff
changeset
|
72 end |
d1230d32d709
mod_invites_adhoc: Add support for specifying roles that may invite users, admins may always invite
Matthew Wild <mwild1@gmail.com>
parents:
4409
diff
changeset
|
73 |
4092
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
74 module:depends("adhoc"); |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
75 |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
76 -- This command is available to all local users, even if allow_user_invites = false |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
77 -- If allow_user_invites is false, creating an invite still works, but the invite will |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
78 -- not be valid for registration on the current server, only for establishing a roster |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
79 -- subscription. |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
80 module:provides("adhoc", new_adhoc("Create new contact invite", "urn:xmpp:invite#invite", |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
81 function (_, data) |
4409
44f6537f6427
mod_invites_adhoc: Fail contact invite if user is not on current host
Matthew Wild <mwild1@gmail.com>
parents:
4397
diff
changeset
|
82 local username, host = split_jid(data.from); |
44f6537f6427
mod_invites_adhoc: Fail contact invite if user is not on current host
Matthew Wild <mwild1@gmail.com>
parents:
4397
diff
changeset
|
83 if host ~= module.host then |
44f6537f6427
mod_invites_adhoc: Fail contact invite if user is not on current host
Matthew Wild <mwild1@gmail.com>
parents:
4397
diff
changeset
|
84 return { |
44f6537f6427
mod_invites_adhoc: Fail contact invite if user is not on current host
Matthew Wild <mwild1@gmail.com>
parents:
4397
diff
changeset
|
85 status = "completed"; |
44f6537f6427
mod_invites_adhoc: Fail contact invite if user is not on current host
Matthew Wild <mwild1@gmail.com>
parents:
4397
diff
changeset
|
86 error = { |
44f6537f6427
mod_invites_adhoc: Fail contact invite if user is not on current host
Matthew Wild <mwild1@gmail.com>
parents:
4397
diff
changeset
|
87 message = "This command is only available to users of "..module.host; |
44f6537f6427
mod_invites_adhoc: Fail contact invite if user is not on current host
Matthew Wild <mwild1@gmail.com>
parents:
4397
diff
changeset
|
88 }; |
44f6537f6427
mod_invites_adhoc: Fail contact invite if user is not on current host
Matthew Wild <mwild1@gmail.com>
parents:
4397
diff
changeset
|
89 }; |
44f6537f6427
mod_invites_adhoc: Fail contact invite if user is not on current host
Matthew Wild <mwild1@gmail.com>
parents:
4397
diff
changeset
|
90 end |
4410
d1230d32d709
mod_invites_adhoc: Add support for specifying roles that may invite users, admins may always invite
Matthew Wild <mwild1@gmail.com>
parents:
4409
diff
changeset
|
91 local invite = invites.create_contact(username, may_invite_new_users(data.from), { |
4397
6e0aa163298f
mod_invites_adhoc: also add tracking information to contact invites
Jonas Schäfer <jonas@wielicki.name>
parents:
4395
diff
changeset
|
92 source = data.from |
6e0aa163298f
mod_invites_adhoc: also add tracking information to contact invites
Jonas Schäfer <jonas@wielicki.name>
parents:
4395
diff
changeset
|
93 }); |
4092
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
94 --TODO: check errors |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
95 return { |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
96 status = "completed"; |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
97 form = { |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
98 layout = invite_result_form; |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
99 values = { |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
100 uri = invite.uri; |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
101 url = invite.landing_page; |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
102 expire = datetime.datetime(invite.expires); |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
103 }; |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
104 }; |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
105 }; |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
106 end, allow_contact_invites and "local_user" or "admin")); |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
107 |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
108 -- This is an admin-only command that creates a new invitation suitable for registering |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
109 -- a new account. It does not add the new user to the admin's roster. |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
110 module:provides("adhoc", new_adhoc("Create new account invite", "urn:xmpp:invite#create-account", |
4395
df9bb3d861f9
mod_invites_adhoc: add information about who created an invitation
Jonas Schäfer <jonas@wielicki.name>
parents:
4092
diff
changeset
|
111 function (_, data) |
df9bb3d861f9
mod_invites_adhoc: add information about who created an invitation
Jonas Schäfer <jonas@wielicki.name>
parents:
4092
diff
changeset
|
112 local invite = invites.create_account(nil, { |
df9bb3d861f9
mod_invites_adhoc: add information about who created an invitation
Jonas Schäfer <jonas@wielicki.name>
parents:
4092
diff
changeset
|
113 source = data.from |
df9bb3d861f9
mod_invites_adhoc: add information about who created an invitation
Jonas Schäfer <jonas@wielicki.name>
parents:
4092
diff
changeset
|
114 }); |
4092
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
115 --TODO: check errors |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
116 return { |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
117 status = "completed"; |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
118 form = { |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
119 layout = invite_result_form; |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
120 values = { |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
121 uri = invite.uri; |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
122 url = invite.landing_page; |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
123 expire = datetime.datetime(invite.expires); |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
124 }; |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
125 }; |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
126 }; |
2b6918714792
mod_invites_adhoc: New module to allow invite creation via ad-hoc commands (XEP-0401)
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
127 end, "admin")); |