Software / code / prosody-modules
File
mod_block_registrations/mod_block_registrations.lua @ 6111:ffd0184cd478
mod_compliance_latest: New module that depends on and therefore loads the latest compliance tester mod.
diff --git a/mod_compliance_latest/README.md b/mod_compliance_latest/README.md
new file mode 100644
--- /dev/null
+++ b/mod_compliance_latest/README.md
@@ -0,0 +1,25 @@
+---
+summary: XMPP Compliance Suites self-test
+labels:
+- Stage-Beta
+rockspec:
+ dependencies:
+ - mod_compliance_2023
+...
+
+# Introduction
+
+This module will always require and load to the lastest compliance tester we have in the community modules.
+Currently this is [mod_compliance_2023].
+
+# Configuration
+
+Just load this module as any other module and it will automatically install [mod_compliance_2023] if you use the Prosody plugin installer.
+See the linked module for further details.
+
+# Compatibility
+
+ Prosody-Version Status
+ --------------- ----------------------
+ trunk Works as of 2024-12-22
+ 0.12 Works
diff --git a/mod_compliance_latest/mod_compliance_latest.lua b/mod_compliance_latest/mod_compliance_latest.lua
new file mode 100644
--- /dev/null
+++ b/mod_compliance_latest/mod_compliance_latest.lua
@@ -0,0 +1,1 @@
+module:depends("compliance_2023");
| author | Menel <menel@snikket.de> |
|---|---|
| date | Sun, 22 Dec 2024 18:12:42 +0100 |
| parent | 5065:368bf9b06484 |
line wrap: on
line source
local st = require "util.stanza"; local nodeprep = require "util.encodings".stringprep.nodeprep; local block_users = module:get_option_set("block_registrations_users", { "abuse", "admin", "administrator", "hostmaster", "info", "news", "noc", "operator", "owner", "postmaster", "register", "registration", "root", "security", "service", "signup", "support", "sysadmin", "sysop", "system", "test", "trouble", "webmaster", "www", "xmpp", }); local block_patterns = module:get_option_set("block_registrations_matching", {}); local require_pattern = module:get_option_string("block_registrations_require"); function is_blocked(username) -- Check if the username is simply blocked if block_users:contains(username) then return true; end for pattern in block_patterns do if username:find(pattern) then return true; end end -- Not blocked, but check that username matches allowed pattern if require_pattern and not username:match(require_pattern) then return true; end end module:hook("user-registering", function(event) local username = event.username; if is_blocked(username) then event.allowed = false; return true; end end, 10);