• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

processone / ejabberd / 1212

18 Nov 2025 12:37PM UTC coverage: 33.784% (+0.003%) from 33.781%
1212

push

github

badlop
mod_conversejs: Improve link to conversejs in WebAdmin (#4495)

Until now, the WebAdmin menu included a link to the first request handler
with mod_conversejs that the admin configured in ejabberd.yml
That link included the authentication credentials hashed as URI arguments
if using HTTPS. Then process/2 extracted those arguments and passed them
as autologin options to Converse.

From now, mod_conversejs automatically adds a request_handler nested in
webadmin subpath. The webadmin menu links to that converse URI; this allows
to access the HTTP auth credentials, no need to explicitly pass them.
process/2 extracts this HTTP auth and passes autologin options to Converse.
Now scram password storage is supported too.

This minimum configuration allows WebAdmin to access Converse:

listen:
  -
    port: 5443
    module: ejabberd_http
    tls: true
    request_handlers:
      /admin: ejabberd_web_admin
      /ws: ejabberd_http_ws
modules:
  mod_conversejs:
    conversejs_resources: "/home/conversejs/12.0.0/dist"

0 of 12 new or added lines in 1 file covered. (0.0%)

11290 existing lines in 174 files now uncovered.

15515 of 45924 relevant lines covered (33.78%)

1277.8 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

36.67
/src/mod_proxy65_opt.erl
1
%% Generated automatically
2
%% DO NOT EDIT: run `make options` instead
3

4
-module(mod_proxy65_opt).
5

6
-export([access/1]).
7
-export([auth_type/1]).
8
-export([host/1]).
9
-export([hostname/1]).
10
-export([hosts/1]).
11
-export([ip/1]).
12
-export([max_connections/1]).
13
-export([name/1]).
14
-export([port/1]).
15
-export([ram_db_type/1]).
16
-export([recbuf/1]).
17
-export([server_host/1]).
18
-export([shaper/1]).
19
-export([sndbuf/1]).
20
-export([vcard/1]).
21

22
-spec access(gen_mod:opts() | global | binary()) -> 'all' | acl:acl().
23
access(Opts) when is_map(Opts) ->
24
    gen_mod:get_opt(access, Opts);
×
25
access(Host) ->
UNCOV
26
    gen_mod:get_module_opt(Host, mod_proxy65, access).
4✔
27

28
-spec auth_type(gen_mod:opts() | global | binary()) -> 'anonymous' | 'plain'.
29
auth_type(Opts) when is_map(Opts) ->
30
    gen_mod:get_opt(auth_type, Opts);
×
31
auth_type(Host) ->
UNCOV
32
    gen_mod:get_module_opt(Host, mod_proxy65, auth_type).
4✔
33

34
-spec host(gen_mod:opts() | global | binary()) -> binary().
35
host(Opts) when is_map(Opts) ->
36
    gen_mod:get_opt(host, Opts);
×
37
host(Host) ->
38
    gen_mod:get_module_opt(Host, mod_proxy65, host).
×
39

40
-spec hostname(gen_mod:opts() | global | binary()) -> 'undefined' | binary().
41
hostname(Opts) when is_map(Opts) ->
42
    gen_mod:get_opt(hostname, Opts);
×
43
hostname(Host) ->
UNCOV
44
    gen_mod:get_module_opt(Host, mod_proxy65, hostname).
2✔
45

46
-spec hosts(gen_mod:opts() | global | binary()) -> [binary()].
47
hosts(Opts) when is_map(Opts) ->
48
    gen_mod:get_opt(hosts, Opts);
×
49
hosts(Host) ->
50
    gen_mod:get_module_opt(Host, mod_proxy65, hosts).
×
51

52
-spec ip(gen_mod:opts() | global | binary()) -> 'undefined' | inet:ip_address().
53
ip(Opts) when is_map(Opts) ->
54
    gen_mod:get_opt(ip, Opts);
×
55
ip(Host) ->
56
    gen_mod:get_module_opt(Host, mod_proxy65, ip).
162✔
57

58
-spec max_connections(gen_mod:opts() | global | binary()) -> 'infinity' | pos_integer().
59
max_connections(Opts) when is_map(Opts) ->
60
    gen_mod:get_opt(max_connections, Opts);
×
61
max_connections(Host) ->
UNCOV
62
    gen_mod:get_module_opt(Host, mod_proxy65, max_connections).
2✔
63

64
-spec name(gen_mod:opts() | global | binary()) -> binary().
65
name(Opts) when is_map(Opts) ->
66
    gen_mod:get_opt(name, Opts);
×
67
name(Host) ->
UNCOV
68
    gen_mod:get_module_opt(Host, mod_proxy65, name).
4✔
69

70
-spec port(gen_mod:opts() | global | binary()) -> 1..1114111.
71
port(Opts) when is_map(Opts) ->
72
    gen_mod:get_opt(port, Opts);
×
73
port(Host) ->
74
    gen_mod:get_module_opt(Host, mod_proxy65, port).
162✔
75

76
-spec ram_db_type(gen_mod:opts() | global | binary()) -> atom().
77
ram_db_type(Opts) when is_map(Opts) ->
78
    gen_mod:get_opt(ram_db_type, Opts);
×
79
ram_db_type(Host) ->
80
    gen_mod:get_module_opt(Host, mod_proxy65, ram_db_type).
×
81

82
-spec recbuf(gen_mod:opts() | global | binary()) -> pos_integer().
83
recbuf(Opts) when is_map(Opts) ->
84
    gen_mod:get_opt(recbuf, Opts);
×
85
recbuf(Host) ->
UNCOV
86
    gen_mod:get_module_opt(Host, mod_proxy65, recbuf).
4✔
87

88
-spec server_host(gen_mod:opts() | global | binary()) -> binary().
89
server_host(Opts) when is_map(Opts) ->
90
    gen_mod:get_opt(server_host, Opts);
×
91
server_host(Host) ->
92
    gen_mod:get_module_opt(Host, mod_proxy65, server_host).
×
93

94
-spec shaper(gen_mod:opts() | global | binary()) -> atom() | [ejabberd_shaper:shaper_rule()].
95
shaper(Opts) when is_map(Opts) ->
96
    gen_mod:get_opt(shaper, Opts);
×
97
shaper(Host) ->
UNCOV
98
    gen_mod:get_module_opt(Host, mod_proxy65, shaper).
4✔
99

100
-spec sndbuf(gen_mod:opts() | global | binary()) -> pos_integer().
101
sndbuf(Opts) when is_map(Opts) ->
102
    gen_mod:get_opt(sndbuf, Opts);
×
103
sndbuf(Host) ->
UNCOV
104
    gen_mod:get_module_opt(Host, mod_proxy65, sndbuf).
4✔
105

106
-spec vcard(gen_mod:opts() | global | binary()) -> 'undefined' | tuple().
107
vcard(Opts) when is_map(Opts) ->
108
    gen_mod:get_opt(vcard, Opts);
×
109
vcard(Host) ->
UNCOV
110
    gen_mod:get_module_opt(Host, mod_proxy65, vcard).
4✔
111

STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc