Mercurial > prosody-modules
changeset 4167:3a03ae9a0882
mod_invites_register_web: Support linking to a web chat after successful registration
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Mon, 05 Oct 2020 16:45:06 +0100 |
parents | 7678b4880719 |
children | 7191d4638393 |
files | mod_invites_register_web/README.markdown mod_invites_register_web/html/register_success.html mod_invites_register_web/mod_invites_register_web.lua |
diffstat | 3 files changed, 24 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/mod_invites_register_web/README.markdown Thu Oct 01 17:51:32 2020 +0200 +++ b/mod_invites_register_web/README.markdown Mon Oct 05 16:45:06 2020 +0100 @@ -37,6 +37,10 @@ There is no specific configuration for this module (though it uses the optional `site_name` to override the displayed site name. +You may also set `webchat_url` to the URL of a web chat that will be linked +to after successful registration. If not specified but mod_conversejs is loaded +on the current host, it will default to the URL of that module. + This module depends on mod_invites_page solely for the case where an invalid invite token is received - it will redirect to mod_invites_page so that an appropriate error can be served to the user.
--- a/mod_invites_register_web/html/register_success.html Thu Oct 01 17:51:32 2020 +0200 +++ b/mod_invites_register_web/html/register_success.html Mon Oct 05 16:45:06 2020 +0100 @@ -45,6 +45,16 @@ <p>To start chatting, you need to enter your new account credentials into your chosen XMPP software.</p> + {webchat_url& + <div class="alert alert-success"> + <p>You can also use our online web chat to get started + right away. + </p> + <a class="btn btn-primary" href="{webchat_url}">Log in via web</a> + </div> + } + + <p>As a final reminder, your account details are shown below:</p> <form class="account-details col-12 col-lg-6 mx-auto">
--- a/mod_invites_register_web/mod_invites_register_web.lua Thu Oct 01 17:51:32 2020 +0200 +++ b/mod_invites_register_web/mod_invites_register_web.lua Mon Oct 05 16:45:06 2020 +0100 @@ -1,6 +1,7 @@ local id = require "util.id"; local http_formdecode = require "net.http".formdecode; local usermanager = require "core.usermanager"; +local modulemanager = require "core.modulemanager"; local nodeprep = require "util.encodings".stringprep.nodeprep; local st = require "util.stanza"; local url_escape = require "util.http".urlencode; @@ -14,6 +15,14 @@ local site_name = module:get_option_string("site_name", module.host); local site_apps = module:shared("register_apps/apps"); +local webchat_url = module:get_option_string("webchat_url"); + +-- If not provided, but mod_conversejs is loaded, default to that +if not webchat_url and modulemanager.get_modules_for_host(module.host):contains("conversejs") then + local conversejs = module:depends("conversejs"); + webchat_url = conversejs.module:http_url(); +end + module:depends("http"); local invites = module:depends("invites"); @@ -166,6 +175,7 @@ domain = module.host; password = password; app = app_info; + webchat_url = webchat_url; }); else local err_id = id.short();