From 53ee50f9ca075477227aa1b8bcc6e175598530a3 Mon Sep 17 00:00:00 2001 From: jon4hz Date: Mon, 8 Sep 2025 10:45:27 +0200 Subject: [PATCH] fix: check if first admin is already in adminAccounts --- bin/admin/setup-first-admin-account.sh | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/bin/admin/setup-first-admin-account.sh b/bin/admin/setup-first-admin-account.sh index 0ef6193..90391ec 100755 --- a/bin/admin/setup-first-admin-account.sh +++ b/bin/admin/setup-first-admin-account.sh @@ -28,7 +28,20 @@ configline=$(BASEDIR="$basedir" ACCOUNT="$1" perl -e ' use OVH::Bastion; my $C = OVH::Bastion::load_configuration(); if (!$C->value || ref $C->value->{adminAccounts} ne "ARRAY") { die "Could not add $ENV{ACCOUNT} in \"adminAccounts\" of bastion.conf, please do it manually!"; } - push @{ $C->value->{adminAccounts} }, $ENV{ACCOUNT}; + my $account = $ENV{ACCOUNT}; + my $adminAccounts = $C->value->{adminAccounts}; + # Check if account is already in adminAccounts array + my $already_exists = 0; + foreach my $existing_account (@$adminAccounts) { + if ($existing_account eq $account) { + $already_exists = 1; + last; + } + } + # Only add if not already present + if (!$already_exists) { + push @{ $C->value->{adminAccounts} }, $account; + } print encode_json($C->value->{adminAccounts}); ')