Software /
code /
prosody-modules
Annotate
mod_limits_exception/mod_limits_exception.lua @ 4832:bfd4af4caddc
mod_password_policy: Support for additional policies provided by other modules
E.g. check a password contains an uppercase character:
module:provides("password-policy", {
name = "contains_uppercase";
check_password = function (password, policy)
return (policy ~= true) or (not not password:match("%u"));
end;
})
Config:
password_policy = {
contains_uppercase = true;
}
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Wed, 22 Dec 2021 14:48:46 +0000 |
parent | 4562:28c16c93d79a |
rev | line source |
---|---|
4562
28c16c93d79a
mod_limits_exception: New module to except some JIDs from rate limiting
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
1 local unlimited_jids = module:get_option_inherited_set("unlimited_jids", {}); |
28c16c93d79a
mod_limits_exception: New module to except some JIDs from rate limiting
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
2 |
28c16c93d79a
mod_limits_exception: New module to except some JIDs from rate limiting
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
3 if unlimited_jids:empty() then |
28c16c93d79a
mod_limits_exception: New module to except some JIDs from rate limiting
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
4 return; |
28c16c93d79a
mod_limits_exception: New module to except some JIDs from rate limiting
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
5 end |
28c16c93d79a
mod_limits_exception: New module to except some JIDs from rate limiting
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
6 |
28c16c93d79a
mod_limits_exception: New module to except some JIDs from rate limiting
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
7 module:hook("authentication-success", function (event) |
28c16c93d79a
mod_limits_exception: New module to except some JIDs from rate limiting
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
8 local session = event.session; |
28c16c93d79a
mod_limits_exception: New module to except some JIDs from rate limiting
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
9 local jid = session.username .. "@" .. session.host; |
28c16c93d79a
mod_limits_exception: New module to except some JIDs from rate limiting
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
10 if unlimited_jids:contains(jid) then |
28c16c93d79a
mod_limits_exception: New module to except some JIDs from rate limiting
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
11 if session.conn and session.conn.setlimit then |
28c16c93d79a
mod_limits_exception: New module to except some JIDs from rate limiting
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
12 session.conn:setlimit(0); |
28c16c93d79a
mod_limits_exception: New module to except some JIDs from rate limiting
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
13 elseif session.throttle then |
28c16c93d79a
mod_limits_exception: New module to except some JIDs from rate limiting
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
14 session.throttle = nil; |
28c16c93d79a
mod_limits_exception: New module to except some JIDs from rate limiting
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
15 end |
28c16c93d79a
mod_limits_exception: New module to except some JIDs from rate limiting
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
16 end |
28c16c93d79a
mod_limits_exception: New module to except some JIDs from rate limiting
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
17 end); |