Mercurial > prosody-modules
annotate mod_stanza_counter/mod_stanza_counter_http.lua @ 5418:f2c7bb3af600
mod_http_oauth2: Add role selector to consent page
List includes all roles available to the user, if more than one.
Defaults to either the first role in the scope string or the users
primary role.
Earlier draft listed all roles, but having options that can't be
selected is bad UX and the entire list of all roles on the server could
be long, and perhaps even sensitive.
Allows e.g. picking a role with fewer permissions than what might
otherwise have been selected.
UX wise, doing this with more checkboxes or possibly radio buttons would
have been confusion and/or looked messier.
Fixes the previous situation where unselecting a role would default to
the primary role, which could be more permissions than requested.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Fri, 05 May 2023 01:23:13 +0200 |
parents | 7dbde05b48a9 |
children |
rev | line source |
---|---|
436
e4a1f0425380
mod_stanza_counter: splitted plugin :/
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
1 -- (C) 2011, Marco Cirillo (LW.Org) |
e4a1f0425380
mod_stanza_counter: splitted plugin :/
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
2 -- Exposes stats on HTTP for the stanza counter module. |
e4a1f0425380
mod_stanza_counter: splitted plugin :/
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
3 |
650
34e7093cf419
mod_stanza_counter_http: updated to current HTTP API.
Marco Cirillo <maranda@lightwitch.org>
parents:
608
diff
changeset
|
4 module:depends("http") |
436
e4a1f0425380
mod_stanza_counter: splitted plugin :/
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
5 |
678
429be98872dc
mod_stanza_counter_http: change the skipped get_option_array to get_option_string it was supposed to.
Marco Cirillo <maranda@lightwitch.org>
parents:
659
diff
changeset
|
6 local base_path = module:get_option_string("stanza_counter_basepath", "/stanza-counter/") |
436
e4a1f0425380
mod_stanza_counter: splitted plugin :/
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
7 |
e4a1f0425380
mod_stanza_counter: splitted plugin :/
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
8 -- http handlers |
e4a1f0425380
mod_stanza_counter: splitted plugin :/
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
9 |
e4a1f0425380
mod_stanza_counter: splitted plugin :/
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
10 local r_200 = "\n<html>\n<head>\n<title>Prosody's Stanza Counter</title>\n<meta name=\"robots\" content=\"noindex, nofollow\" />\n</head>\n\n<body>\n<h3>Incoming and Outgoing stanzas divided per type</h3>\n<p><strong>Incoming IQs</strong>: %d<br/>\n<strong>Outgoing IQs</strong>: %d<br/>\n<strong>Incoming Messages</strong>: %d<br/>\n<strong>Outgoing Messages</strong>: %d<br/>\n<strong>Incoming Presences</strong>: %d<br/>\n<strong>Outgoing Presences</strong>: %d<p>\n</body>\n\n</html>\n" |
e4a1f0425380
mod_stanza_counter: splitted plugin :/
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
11 |
e4a1f0425380
mod_stanza_counter: splitted plugin :/
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
12 local r_err = "\n<html>\n<head>\n<title>Prosody's Stanza Counter - Error %s</title>\n<meta name=\"robots\" content=\"noindex, nofollow\" />\n</head>\n\n<body>\n<h3>%s</h3>\n</body>\n\n</html>\n" |
e4a1f0425380
mod_stanza_counter: splitted plugin :/
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
13 |
650
34e7093cf419
mod_stanza_counter_http: updated to current HTTP API.
Marco Cirillo <maranda@lightwitch.org>
parents:
608
diff
changeset
|
14 local function res(event, code, body, extras) |
34e7093cf419
mod_stanza_counter_http: updated to current HTTP API.
Marco Cirillo <maranda@lightwitch.org>
parents:
608
diff
changeset
|
15 local response = event.response |
1343
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
678
diff
changeset
|
16 |
650
34e7093cf419
mod_stanza_counter_http: updated to current HTTP API.
Marco Cirillo <maranda@lightwitch.org>
parents:
608
diff
changeset
|
17 if extras then |
34e7093cf419
mod_stanza_counter_http: updated to current HTTP API.
Marco Cirillo <maranda@lightwitch.org>
parents:
608
diff
changeset
|
18 for header, data in pairs(extras) do response.headers[header] = data end |
34e7093cf419
mod_stanza_counter_http: updated to current HTTP API.
Marco Cirillo <maranda@lightwitch.org>
parents:
608
diff
changeset
|
19 end |
34e7093cf419
mod_stanza_counter_http: updated to current HTTP API.
Marco Cirillo <maranda@lightwitch.org>
parents:
608
diff
changeset
|
20 |
34e7093cf419
mod_stanza_counter_http: updated to current HTTP API.
Marco Cirillo <maranda@lightwitch.org>
parents:
608
diff
changeset
|
21 response.status_code = code |
34e7093cf419
mod_stanza_counter_http: updated to current HTTP API.
Marco Cirillo <maranda@lightwitch.org>
parents:
608
diff
changeset
|
22 response:send(body) |
436
e4a1f0425380
mod_stanza_counter: splitted plugin :/
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
23 end |
e4a1f0425380
mod_stanza_counter: splitted plugin :/
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
24 |
650
34e7093cf419
mod_stanza_counter_http: updated to current HTTP API.
Marco Cirillo <maranda@lightwitch.org>
parents:
608
diff
changeset
|
25 local function req(event) |
436
e4a1f0425380
mod_stanza_counter: splitted plugin :/
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
26 if not prosody.stanza_counter then |
650
34e7093cf419
mod_stanza_counter_http: updated to current HTTP API.
Marco Cirillo <maranda@lightwitch.org>
parents:
608
diff
changeset
|
27 local err500 = r_err:format(event, 500, "Stats not found, is the counter module loaded?") |
437
78a2a6b2bea3
mod_stanza_counter: missing end.
Marco Cirillo <maranda@lightwitch.org>
parents:
436
diff
changeset
|
28 return res(500, err500) end |
436
e4a1f0425380
mod_stanza_counter: splitted plugin :/
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
29 if method == "GET" then |
e4a1f0425380
mod_stanza_counter: splitted plugin :/
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
30 local forge_res = r_200:format(prosody.stanza_counter.iq["incoming"], |
e4a1f0425380
mod_stanza_counter: splitted plugin :/
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
31 prosody.stanza_counter.iq["outgoing"], |
e4a1f0425380
mod_stanza_counter: splitted plugin :/
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
32 prosody.stanza_counter.message["incoming"], |
e4a1f0425380
mod_stanza_counter: splitted plugin :/
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
33 prosody.stanza_counter.message["outgoing"], |
e4a1f0425380
mod_stanza_counter: splitted plugin :/
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
34 prosody.stanza_counter.presence["incoming"], |
535
39c7115be370
mod_stanza_counter_http: replaced prosody.events.add_handler with module:hook.
Marco Cirillo <maranda@lightwitch.org>
parents:
518
diff
changeset
|
35 prosody.stanza_counter.presence["outgoing"]) |
650
34e7093cf419
mod_stanza_counter_http: updated to current HTTP API.
Marco Cirillo <maranda@lightwitch.org>
parents:
608
diff
changeset
|
36 return res(event, 200, forge_res) |
436
e4a1f0425380
mod_stanza_counter: splitted plugin :/
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
37 else |
650
34e7093cf419
mod_stanza_counter_http: updated to current HTTP API.
Marco Cirillo <maranda@lightwitch.org>
parents:
608
diff
changeset
|
38 local err405 = r_err:format(405, "Only GET is supported") |
34e7093cf419
mod_stanza_counter_http: updated to current HTTP API.
Marco Cirillo <maranda@lightwitch.org>
parents:
608
diff
changeset
|
39 return res(event, 405, err405, {["Allow"] = "GET"}) |
436
e4a1f0425380
mod_stanza_counter: splitted plugin :/
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
40 end |
e4a1f0425380
mod_stanza_counter: splitted plugin :/
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
41 end |
e4a1f0425380
mod_stanza_counter: splitted plugin :/
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
42 |
e4a1f0425380
mod_stanza_counter: splitted plugin :/
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
43 -- initialization. |
562
b3f8435e661c
mod_stanza_counter_http: added cleanup function (from mod_register_json)
Marco Cirillo <maranda@lightwitch.org>
parents:
535
diff
changeset
|
44 |
650
34e7093cf419
mod_stanza_counter_http: updated to current HTTP API.
Marco Cirillo <maranda@lightwitch.org>
parents:
608
diff
changeset
|
45 module:provides("http", { |
34e7093cf419
mod_stanza_counter_http: updated to current HTTP API.
Marco Cirillo <maranda@lightwitch.org>
parents:
608
diff
changeset
|
46 default_path = base_path, |
34e7093cf419
mod_stanza_counter_http: updated to current HTTP API.
Marco Cirillo <maranda@lightwitch.org>
parents:
608
diff
changeset
|
47 route = { |
34e7093cf419
mod_stanza_counter_http: updated to current HTTP API.
Marco Cirillo <maranda@lightwitch.org>
parents:
608
diff
changeset
|
48 ["GET /"] = req, |
34e7093cf419
mod_stanza_counter_http: updated to current HTTP API.
Marco Cirillo <maranda@lightwitch.org>
parents:
608
diff
changeset
|
49 ["POST /"] = req |
34e7093cf419
mod_stanza_counter_http: updated to current HTTP API.
Marco Cirillo <maranda@lightwitch.org>
parents:
608
diff
changeset
|
50 } |
34e7093cf419
mod_stanza_counter_http: updated to current HTTP API.
Marco Cirillo <maranda@lightwitch.org>
parents:
608
diff
changeset
|
51 }) |