mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-06-09 19:13:26 +03:00
[25.05] kanidm-provision: 1.2.1 -> 1.3.0 (#415062)
This commit is contained in:
commit
3f2e2a09cf
3 changed files with 33 additions and 12 deletions
|
@ -465,6 +465,17 @@ in
|
||||||
apply = unique;
|
apply = unique;
|
||||||
default = [ ];
|
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 (
|
config.members = concatLists (
|
||||||
flip mapAttrsToList cfg.provision.persons (
|
flip mapAttrsToList cfg.provision.persons (
|
||||||
|
|
|
@ -74,6 +74,10 @@ import ./make-test-python.nix (
|
||||||
};
|
};
|
||||||
|
|
||||||
groups.testgroup1 = { };
|
groups.testgroup1 = { };
|
||||||
|
groups.imperative = {
|
||||||
|
overwriteMembers = false;
|
||||||
|
members = [ "testuser1" ];
|
||||||
|
};
|
||||||
|
|
||||||
persons.testuser1 = {
|
persons.testuser1 = {
|
||||||
displayName = "Test User";
|
displayName = "Test User";
|
||||||
|
@ -134,6 +138,11 @@ import ./make-test-python.nix (
|
||||||
};
|
};
|
||||||
|
|
||||||
groups.testgroup1 = { };
|
groups.testgroup1 = { };
|
||||||
|
groups.imperative = {
|
||||||
|
overwriteMembers = false;
|
||||||
|
# Will be retained:
|
||||||
|
# members = [ "testuser1" ];
|
||||||
|
};
|
||||||
|
|
||||||
persons.testuser1 = {
|
persons.testuser1 = {
|
||||||
displayName = "Test User (changed)";
|
displayName = "Test User (changed)";
|
||||||
|
@ -329,6 +338,10 @@ import ./make-test-python.nix (
|
||||||
out = provision.succeed("kanidm group get testgroup1")
|
out = provision.succeed("kanidm group get testgroup1")
|
||||||
assert_contains(out, "name: 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")
|
out = provision.succeed("kanidm group get supergroup1")
|
||||||
assert_contains(out, "name: supergroup1")
|
assert_contains(out, "name: supergroup1")
|
||||||
assert_contains(out, "member: testgroup1")
|
assert_contains(out, "member: testgroup1")
|
||||||
|
@ -339,6 +352,7 @@ import ./make-test-python.nix (
|
||||||
assert_contains(out, "legalname: Jane Doe")
|
assert_contains(out, "legalname: Jane Doe")
|
||||||
assert_contains(out, "mail: jane.doe@example.com")
|
assert_contains(out, "mail: jane.doe@example.com")
|
||||||
assert_contains(out, "memberof: testgroup1")
|
assert_contains(out, "memberof: testgroup1")
|
||||||
|
assert_contains(out, "memberof: imperative")
|
||||||
assert_contains(out, "memberof: service1-access")
|
assert_contains(out, "memberof: service1-access")
|
||||||
|
|
||||||
out = provision.succeed("kanidm person get testuser2")
|
out = provision.succeed("kanidm person get testuser2")
|
||||||
|
@ -383,6 +397,10 @@ import ./make-test-python.nix (
|
||||||
out = provision.succeed("kanidm group get testgroup1")
|
out = provision.succeed("kanidm group get testgroup1")
|
||||||
assert_contains(out, "name: 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")
|
out = provision.succeed("kanidm group get supergroup1")
|
||||||
assert_contains(out, "name: supergroup1")
|
assert_contains(out, "name: supergroup1")
|
||||||
assert_lacks(out, "member: testgroup1")
|
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: jane.doe@example.com")
|
||||||
assert_contains(out, "mail: second.doe@example.com")
|
assert_contains(out, "mail: second.doe@example.com")
|
||||||
assert_lacks(out, "memberof: testgroup1")
|
assert_lacks(out, "memberof: testgroup1")
|
||||||
|
assert_contains(out, "memberof: imperative")
|
||||||
assert_contains(out, "memberof: service1-access")
|
assert_contains(out, "memberof: service1-access")
|
||||||
|
|
||||||
out = provision.succeed("kanidm person get testuser2")
|
out = provision.succeed("kanidm person get testuser2")
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
lib,
|
lib,
|
||||||
rustPlatform,
|
rustPlatform,
|
||||||
fetchFromGitHub,
|
fetchFromGitHub,
|
||||||
yq,
|
|
||||||
versionCheckHook,
|
versionCheckHook,
|
||||||
nix-update-script,
|
nix-update-script,
|
||||||
nixosTests,
|
nixosTests,
|
||||||
|
@ -10,25 +9,17 @@
|
||||||
|
|
||||||
rustPlatform.buildRustPackage (finalAttrs: {
|
rustPlatform.buildRustPackage (finalAttrs: {
|
||||||
pname = "kanidm-provision";
|
pname = "kanidm-provision";
|
||||||
version = "1.2.1";
|
version = "1.3.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "oddlama";
|
owner = "oddlama";
|
||||||
repo = "kanidm-provision";
|
repo = "kanidm-provision";
|
||||||
tag = "v${finalAttrs.version}";
|
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;
|
useFetchCargoVendor = true;
|
||||||
cargoHash = "sha256-uo/TGyfNChq/t6Dah0HhXhAwktyQk0V/wewezZuftNk=";
|
cargoHash = "sha256-dPTrIc/hTbMlFDXYMk/dTjqaNECazldfW43egDOwyLM=";
|
||||||
|
|
||||||
nativeBuildInputs = [
|
|
||||||
yq # for `tomlq`
|
|
||||||
];
|
|
||||||
|
|
||||||
nativeInstallCheckInputs = [ versionCheckHook ];
|
nativeInstallCheckInputs = [ versionCheckHook ];
|
||||||
versionCheckProgramArg = "--version";
|
versionCheckProgramArg = "--version";
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue