Mercurial > prosody-modules
view mod_discodot/mod_discodot.tl @ 5447:aa4828f040c5
mod_http_oauth2: Enforce client scope restrictions in authorization
When registering a client, a scope field can be included as a promise to
only ever use those. Here we enforce that promise, if given, ensuring a
client can't request or be granted a scope it didn't provide in its
registration. While currently there is no restrictions at registration
time, this could be changed in the future in various ways.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Thu, 11 May 2023 19:33:44 +0200 |
parents | 253df0798996 |
children |
line wrap: on
line source
local cm = require"core.configmanager"; local function format_host(host:string, conf:{string:any}) : string if host == "*" then return "Global"; end local component_module = conf["component_module"]; if component_module is string then if component_module == "component" then return string.format("Component %q", host); else return string.format("Component %q %q", host, component_module); end else return string.format("VirtualHost %q", host); end end function module.command(arg : { string }) : integer local config : { string : { string : any } } = cm.getconfig(); print"digraph \"prosody\" {" for host, conf in pairs(config) do print(string.format("%q [label=%q]", host, format_host(host, conf))); local parent = host:match("%.(.*)"); if parent and rawget(config, parent) then print(string.format("%q -> %q", parent, host)); end local disco_items = conf["disco_items"] if disco_items is { { string, string } } then for _, pair in ipairs(disco_items) do print(string.format("%q -> %q", host, pair[1])); end end end print"}" return 0 end