add default_persistence_allowed
In addition set all config options in every test, as catch2 can run
tests out of order and as demonstrated in
e1ad60af4f this can be an issue
This commit is contained in:
committed by
mathieui
parent
fbb93dbd08
commit
51930c1e78
+3
-2
@@ -19,8 +19,9 @@ For admins
|
||||
----------
|
||||
- Command line option --test-config (or -t) has been added. When used,
|
||||
biboumi will just exit without any error if the configuration is correct
|
||||
- Options persist_user_denylist and persist_user_allowlist have been added to
|
||||
granualy control who can set the persist option
|
||||
- Options default_persistence_allowed, persist_user_denylist, and
|
||||
persist_user_allowlist have been added to granualy control who can set the
|
||||
persist option
|
||||
|
||||
For packagers
|
||||
-------------
|
||||
|
||||
@@ -260,6 +260,12 @@ persist_user_allowlist
|
||||
A list of XMPP XMPP users or domains who are allowed to change the `persist`
|
||||
ad-hoc option.
|
||||
|
||||
default_persistence_allowed
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
If a given XMPP user or domain is not in either denylist or allowlist this
|
||||
option decides if the user is allowed to persist or not.
|
||||
|
||||
TLS configuration
|
||||
-----------------
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ namespace utils
|
||||
* 2. `persist_user_allowlist` contains the requester's jid
|
||||
* 3. `persist_user_denylist` contains the requester's domain
|
||||
* 4. `persist_user_allowlist` contains the contains the requester's domain
|
||||
* 5. allow
|
||||
* 5. `default_persistence_allowed` is true (default true)
|
||||
*/
|
||||
inline bool is_requester_allowed_to_persist(const Jid &requester) {
|
||||
// requester.bare checks
|
||||
@@ -50,6 +50,6 @@ inline bool is_requester_allowed_to_persist(const Jid &requester) {
|
||||
|
||||
// default allow
|
||||
// 5.
|
||||
return true;
|
||||
return Config::get_bool("default_persistence_allowed", true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,6 +9,31 @@ TEST_CASE("default")
|
||||
Config::clear();
|
||||
Config::set("persist_user_denylist", "");
|
||||
Config::set("persist_user_allowlist", "");
|
||||
Config::set("default_persistence_allowed", "");
|
||||
bool result = utils::is_requester_allowed_to_persist(jid);
|
||||
CHECK(result == true);
|
||||
Config::clear();
|
||||
}
|
||||
|
||||
TEST_CASE("default - default_persistence_allowed - false")
|
||||
{
|
||||
Jid jid("foo@example.com");
|
||||
Config::clear();
|
||||
Config::set("persist_user_denylist", "");
|
||||
Config::set("persist_user_allowlist", "");
|
||||
Config::set("default_persistence_allowed", "false");
|
||||
bool result = utils::is_requester_allowed_to_persist(jid);
|
||||
CHECK(result == false);
|
||||
Config::clear();
|
||||
}
|
||||
|
||||
TEST_CASE("default - default_persistence_allowed - true")
|
||||
{
|
||||
Jid jid("foo@example.com");
|
||||
Config::clear();
|
||||
Config::set("persist_user_denylist", "");
|
||||
Config::set("persist_user_allowlist", "");
|
||||
Config::set("default_persistence_allowed", "true");
|
||||
bool result = utils::is_requester_allowed_to_persist(jid);
|
||||
CHECK(result == true);
|
||||
Config::clear();
|
||||
@@ -19,6 +44,8 @@ TEST_CASE("denylist - jid")
|
||||
Jid jid("foo@example.com");
|
||||
Config::clear();
|
||||
Config::set("persist_user_denylist", "foo@example.com");
|
||||
Config::set("persist_user_allowlist", "");
|
||||
Config::set("default_persistence_allowed", "");
|
||||
bool result = utils::is_requester_allowed_to_persist(jid);
|
||||
CHECK(result == false);
|
||||
Config::clear();
|
||||
@@ -29,6 +56,8 @@ TEST_CASE("denylist - domain")
|
||||
Jid jid("foo@example.com");
|
||||
Config::clear();
|
||||
Config::set("persist_user_denylist", "example.com");
|
||||
Config::set("persist_user_allowlist", "");
|
||||
Config::set("default_persistence_allowed", "");
|
||||
bool result = utils::is_requester_allowed_to_persist(jid);
|
||||
CHECK(result == false);
|
||||
Config::clear();
|
||||
@@ -39,6 +68,8 @@ TEST_CASE("allowlist - jid")
|
||||
Jid jid("foo@example.com");
|
||||
Config::clear();
|
||||
Config::set("persist_user_allowlist", "foo@example.com");
|
||||
Config::set("persist_user_denylist", "");
|
||||
Config::set("default_persistence_allowed", "");
|
||||
bool result = utils::is_requester_allowed_to_persist(jid);
|
||||
CHECK(result == true);
|
||||
Config::clear();
|
||||
@@ -49,6 +80,8 @@ TEST_CASE("allowlist - domain")
|
||||
Jid jid("foo@example.com");
|
||||
Config::clear();
|
||||
Config::set("persist_user_allowlist", "example.com");
|
||||
Config::set("persist_user_denylist", "");
|
||||
Config::set("default_persistence_allowed", "");
|
||||
bool result = utils::is_requester_allowed_to_persist(jid);
|
||||
CHECK(result == true);
|
||||
Config::clear();
|
||||
@@ -60,6 +93,7 @@ TEST_CASE("denylist + allowlist - deny domain, allow jid")
|
||||
Config::clear();
|
||||
Config::set("persist_user_denylist", "example.com");
|
||||
Config::set("persist_user_allowlist", "foo@example.com");
|
||||
Config::set("default_persistence_allowed", "");
|
||||
bool result = utils::is_requester_allowed_to_persist(jid);
|
||||
CHECK(result == true);
|
||||
Config::clear();
|
||||
@@ -71,6 +105,7 @@ TEST_CASE("denylist + allowlist - deny jid, allow domain")
|
||||
Config::clear();
|
||||
Config::set("persist_user_denylist", "foo@example.com");
|
||||
Config::set("persist_user_allowlist", "example.com");
|
||||
Config::set("default_persistence_allowed", "");
|
||||
bool result = utils::is_requester_allowed_to_persist(jid);
|
||||
CHECK(result == false);
|
||||
Config::clear();
|
||||
@@ -82,6 +117,7 @@ TEST_CASE("denylist + allowlist - deny jid, allow jid")
|
||||
Config::clear();
|
||||
Config::set("persist_user_denylist", "foo@example.com");
|
||||
Config::set("persist_user_allowlist", "foo@example.com");
|
||||
Config::set("default_persistence_allowed", "");
|
||||
bool result = utils::is_requester_allowed_to_persist(jid);
|
||||
CHECK(result == false);
|
||||
Config::clear();
|
||||
|
||||
Reference in New Issue
Block a user