[25.05] kanidm-provision: 1.2.1 -> 1.3.0 (#415062)

This commit is contained in:
isabel 2025-06-08 19:41:35 +01:00 committed by GitHub
commit 3f2e2a09cf
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 33 additions and 12 deletions

View file

@ -465,6 +465,17 @@ in
apply = unique;
default = [ ];
};
overwriteMembers = mkOption {
description = ''
Whether the member list should be overwritten each time (true) or appended
(false). Append mode allows interactive group management in addition to the
declared members. Also, future member removals cannot be reflected
automatically in append mode.
'';
type = types.bool;
default = true;
};
};
config.members = concatLists (
flip mapAttrsToList cfg.provision.persons (

View file

@ -74,6 +74,10 @@ import ./make-test-python.nix (
};
groups.testgroup1 = { };
groups.imperative = {
overwriteMembers = false;
members = [ "testuser1" ];
};
persons.testuser1 = {
displayName = "Test User";
@ -134,6 +138,11 @@ import ./make-test-python.nix (
};
groups.testgroup1 = { };
groups.imperative = {
overwriteMembers = false;
# Will be retained:
# members = [ "testuser1" ];
};
persons.testuser1 = {
displayName = "Test User (changed)";
@ -329,6 +338,10 @@ import ./make-test-python.nix (
out = provision.succeed("kanidm group get testgroup1")
assert_contains(out, "name: testgroup1")
out = provision.succeed("kanidm group get imperative")
assert_contains(out, "name: imperative")
assert_contains(out, "member: testuser1")
out = provision.succeed("kanidm group get supergroup1")
assert_contains(out, "name: supergroup1")
assert_contains(out, "member: testgroup1")
@ -339,6 +352,7 @@ import ./make-test-python.nix (
assert_contains(out, "legalname: Jane Doe")
assert_contains(out, "mail: jane.doe@example.com")
assert_contains(out, "memberof: testgroup1")
assert_contains(out, "memberof: imperative")
assert_contains(out, "memberof: service1-access")
out = provision.succeed("kanidm person get testuser2")
@ -383,6 +397,10 @@ import ./make-test-python.nix (
out = provision.succeed("kanidm group get testgroup1")
assert_contains(out, "name: testgroup1")
out = provision.succeed("kanidm group get imperative")
assert_contains(out, "name: imperative")
assert_contains(out, "member: testuser1")
out = provision.succeed("kanidm group get supergroup1")
assert_contains(out, "name: supergroup1")
assert_lacks(out, "member: testgroup1")
@ -394,6 +412,7 @@ import ./make-test-python.nix (
assert_contains(out, "mail: jane.doe@example.com")
assert_contains(out, "mail: second.doe@example.com")
assert_lacks(out, "memberof: testgroup1")
assert_contains(out, "memberof: imperative")
assert_contains(out, "memberof: service1-access")
out = provision.succeed("kanidm person get testuser2")

View file

@ -2,7 +2,6 @@
lib,
rustPlatform,
fetchFromGitHub,
yq,
versionCheckHook,
nix-update-script,
nixosTests,
@ -10,25 +9,17 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "kanidm-provision";
version = "1.2.1";
version = "1.3.0";
src = fetchFromGitHub {
owner = "oddlama";
repo = "kanidm-provision";
tag = "v${finalAttrs.version}";
hash = "sha256-kwxGrLz59Zk8PSsfQzPUeA/xWQZrV1NWlS5/yuqfIyI=";
hash = "sha256-m3bF4wFPVRc2E+E/pZc3js9T4rYbTejo/FFpysytWKw=";
};
postPatch = ''
tomlq -ti '.package.version = "${finalAttrs.version}"' Cargo.toml
'';
useFetchCargoVendor = true;
cargoHash = "sha256-uo/TGyfNChq/t6Dah0HhXhAwktyQk0V/wewezZuftNk=";
nativeBuildInputs = [
yq # for `tomlq`
];
cargoHash = "sha256-dPTrIc/hTbMlFDXYMk/dTjqaNECazldfW43egDOwyLM=";
nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckProgramArg = "--version";