annotate mod_block_registrations/mod_block_registrations.lua @ 5646:d67980d9e12d

mod_http_oauth2: Apply refresh token ttl to refresh token instead of grant The intent in 59d5fc50f602 was for refresh tokens to extend the lifetime of the grant, but the refresh token ttl was applied to the grant and mod_tokenauth does not change it, leading to the grant expiring regardless of refresh token usage. This makes grant lifetimes unlimited, which seems to be standard practice in the wild.
author Kim Alvefur <zash@zash.se>
date Mon, 11 Sep 2023 10:48:31 +0200
parents 368bf9b06484
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1053
cabbcc1997d9 mod_block_registrations: Allow restricting registrations of certain user accounts, and/or ensure that registered accounts conform to a given pattern
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1 local st = require "util.stanza";
cabbcc1997d9 mod_block_registrations: Allow restricting registrations of certain user accounts, and/or ensure that registered accounts conform to a given pattern
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2 local nodeprep = require "util.encodings".stringprep.nodeprep;
cabbcc1997d9 mod_block_registrations: Allow restricting registrations of certain user accounts, and/or ensure that registered accounts conform to a given pattern
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3
5065
368bf9b06484 mod_block_registrations: Expand default list of blocked usernames (RFC 2142)
Matthew Wild <mwild1@gmail.com>
parents: 1697
diff changeset
4 local block_users = module:get_option_set("block_registrations_users", {
368bf9b06484 mod_block_registrations: Expand default list of blocked usernames (RFC 2142)
Matthew Wild <mwild1@gmail.com>
parents: 1697
diff changeset
5 "abuse", "admin", "administrator", "hostmaster", "info", "news",
368bf9b06484 mod_block_registrations: Expand default list of blocked usernames (RFC 2142)
Matthew Wild <mwild1@gmail.com>
parents: 1697
diff changeset
6 "noc", "operator", "owner", "postmaster", "register", "registration",
368bf9b06484 mod_block_registrations: Expand default list of blocked usernames (RFC 2142)
Matthew Wild <mwild1@gmail.com>
parents: 1697
diff changeset
7 "root", "security", "service", "signup", "support", "sysadmin",
368bf9b06484 mod_block_registrations: Expand default list of blocked usernames (RFC 2142)
Matthew Wild <mwild1@gmail.com>
parents: 1697
diff changeset
8 "sysop", "system", "test", "trouble", "webmaster", "www", "xmpp",
368bf9b06484 mod_block_registrations: Expand default list of blocked usernames (RFC 2142)
Matthew Wild <mwild1@gmail.com>
parents: 1697
diff changeset
9 });
1053
cabbcc1997d9 mod_block_registrations: Allow restricting registrations of certain user accounts, and/or ensure that registered accounts conform to a given pattern
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
10 local block_patterns = module:get_option_set("block_registrations_matching", {});
cabbcc1997d9 mod_block_registrations: Allow restricting registrations of certain user accounts, and/or ensure that registered accounts conform to a given pattern
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
11 local require_pattern = module:get_option_string("block_registrations_require");
cabbcc1997d9 mod_block_registrations: Allow restricting registrations of certain user accounts, and/or ensure that registered accounts conform to a given pattern
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
12
cabbcc1997d9 mod_block_registrations: Allow restricting registrations of certain user accounts, and/or ensure that registered accounts conform to a given pattern
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
13 function is_blocked(username)
cabbcc1997d9 mod_block_registrations: Allow restricting registrations of certain user accounts, and/or ensure that registered accounts conform to a given pattern
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
14 -- Check if the username is simply blocked
cabbcc1997d9 mod_block_registrations: Allow restricting registrations of certain user accounts, and/or ensure that registered accounts conform to a given pattern
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
15 if block_users:contains(username) then return true; end
cabbcc1997d9 mod_block_registrations: Allow restricting registrations of certain user accounts, and/or ensure that registered accounts conform to a given pattern
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
16
cabbcc1997d9 mod_block_registrations: Allow restricting registrations of certain user accounts, and/or ensure that registered accounts conform to a given pattern
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
17 for pattern in block_patterns do
1697
27aa58ed3e2e mod_block_registrations: string.find is faster than string.match when only needing a boolean answer
Kim Alvefur <zash@zash.se>
parents: 1331
diff changeset
18 if username:find(pattern) then
1053
cabbcc1997d9 mod_block_registrations: Allow restricting registrations of certain user accounts, and/or ensure that registered accounts conform to a given pattern
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
19 return true;
cabbcc1997d9 mod_block_registrations: Allow restricting registrations of certain user accounts, and/or ensure that registered accounts conform to a given pattern
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
20 end
cabbcc1997d9 mod_block_registrations: Allow restricting registrations of certain user accounts, and/or ensure that registered accounts conform to a given pattern
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
21 end
cabbcc1997d9 mod_block_registrations: Allow restricting registrations of certain user accounts, and/or ensure that registered accounts conform to a given pattern
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
22 -- Not blocked, but check that username matches allowed pattern
cabbcc1997d9 mod_block_registrations: Allow restricting registrations of certain user accounts, and/or ensure that registered accounts conform to a given pattern
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
23 if require_pattern and not username:match(require_pattern) then
cabbcc1997d9 mod_block_registrations: Allow restricting registrations of certain user accounts, and/or ensure that registered accounts conform to a given pattern
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
24 return true;
cabbcc1997d9 mod_block_registrations: Allow restricting registrations of certain user accounts, and/or ensure that registered accounts conform to a given pattern
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
25 end
cabbcc1997d9 mod_block_registrations: Allow restricting registrations of certain user accounts, and/or ensure that registered accounts conform to a given pattern
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
26 end
cabbcc1997d9 mod_block_registrations: Allow restricting registrations of certain user accounts, and/or ensure that registered accounts conform to a given pattern
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
27
1331
dbaa67babeb4 mod_block_registrations: Switch to using the 'user-registering' event
Kim Alvefur <zash@zash.se>
parents: 1053
diff changeset
28 module:hook("user-registering", function(event)
dbaa67babeb4 mod_block_registrations: Switch to using the 'user-registering' event
Kim Alvefur <zash@zash.se>
parents: 1053
diff changeset
29 local username = event.username;
dbaa67babeb4 mod_block_registrations: Switch to using the 'user-registering' event
Kim Alvefur <zash@zash.se>
parents: 1053
diff changeset
30 if is_blocked(username) then
dbaa67babeb4 mod_block_registrations: Switch to using the 'user-registering' event
Kim Alvefur <zash@zash.se>
parents: 1053
diff changeset
31 event.allowed = false;
dbaa67babeb4 mod_block_registrations: Switch to using the 'user-registering' event
Kim Alvefur <zash@zash.se>
parents: 1053
diff changeset
32 return true;
1053
cabbcc1997d9 mod_block_registrations: Allow restricting registrations of certain user accounts, and/or ensure that registered accounts conform to a given pattern
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
33 end
cabbcc1997d9 mod_block_registrations: Allow restricting registrations of certain user accounts, and/or ensure that registered accounts conform to a given pattern
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
34 end, 10);