Comparison

plugins/mod_invites.lua @ 13353:27512ebcc8af

mod_invites: Use new shell-command API
author Matthew Wild <mwild1@gmail.com>
date Wed, 29 Nov 2023 17:34:44 +0000
parent 13209:c8d949cf6b09
child 13355:a6c8a50cdfb5
comparison
equal deleted inserted replaced
13352:b1f5a5531564 13353:27512ebcc8af
200 local invite = get(token); 200 local invite = get(token);
201 return invite and invite:use(); 201 return invite and invite:use();
202 end 202 end
203 203
204 --- shell command 204 --- shell command
205 do 205 module:add_item("shell-command", {
206 -- Since the console is global this overwrites the command for 206 section = "invite";
207 -- each host it's loaded on, but this should be fine. 207 section_desc = "Create and manage invitations";
208 208 name = "create_account";
209 local get_module = require "prosody.core.modulemanager".get_module; 209 desc = "Create an invitation to make an account on this server with the specified JID (supply only a hostname to allow any username)";
210 210 args = { { name = "user_jid", type = "string" } };
211 local console_env = module:shared("/*/admin_shell/env"); 211 host_selector = "user_jid";
212 212
213 -- luacheck: ignore 212/self 213 handler = function (self, user_jid)
214 console_env.invite = {};
215 function console_env.invite:create_account(user_jid)
216 local username, host = jid_split(user_jid); 214 local username, host = jid_split(user_jid);
217 local mod_invites, err = get_module(host, "invites"); 215 local invite, err = create_account(username);
218 if not mod_invites then return nil, err or "mod_invites not loaded on this host"; end
219 local invite, err = mod_invites.create_account(username);
220 if not invite then return nil, err; end 216 if not invite then return nil, err; end
221 return true, invite.landing_page or invite.uri; 217 return true, invite.landing_page or invite.uri;
222 end 218 end;
223 219 });
224 function console_env.invite:create_contact(user_jid, allow_registration) 220
221 module:add_item("shell-command", {
222 section = "invite";
223 section_desc = "Create and manage invitations";
224 name = "create_contact";
225 desc = "Create an invitation to become contacts with the specified user";
226 args = { { name = "user_jid", type = "string" }, { name = "allow_registration" } };
227 host_selector = "user_jid";
228
229 handler = function (self, user_jid, allow_registration)
225 local username, host = jid_split(user_jid); 230 local username, host = jid_split(user_jid);
226 local mod_invites, err = get_module(host, "invites"); 231 local invite, err = create_contact(username, allow_registration);
227 if not mod_invites then return nil, err or "mod_invites not loaded on this host"; end
228 local invite, err = mod_invites.create_contact(username, allow_registration);
229 if not invite then return nil, err; end 232 if not invite then return nil, err; end
230 return true, invite.landing_page or invite.uri; 233 return true, invite.landing_page or invite.uri;
231 end 234 end;
232 end 235 });
233 236
234 local subcommands = {}; 237 local subcommands = {};
235 238
236 --- prosodyctl command 239 --- prosodyctl command
237 function module.command(arg) 240 function module.command(arg)