From 31b0ccba99470ec5c90bc852f2c3554a5ca53b60 Mon Sep 17 00:00:00 2001 From: Andras Bacsai Date: Fri, 22 Sep 2023 15:46:30 +0200 Subject: [PATCH] fix: prevent overwrite already existing env variables in services --- app/Models/Service.php | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/app/Models/Service.php b/app/Models/Service.php index 9390bc435..13add6a15 100644 --- a/app/Models/Service.php +++ b/app/Models/Service.php @@ -313,7 +313,12 @@ class Service extends BaseModel $variableName = Str::of(replaceVariables(Str::of($value))); $generatedValue = null; if ($variableName->startsWith('SERVICE_USER')) { - $generatedValue = Str::random(10); + $variableDefined = EnvironmentVariable::whereServiceId($this->id)->where('key', $variableName->value())->first(); + if (!$variableDefined) { + $generatedValue = Str::random(10); + } else { + $generatedValue = $variableDefined->value; + } if (!$envs->has($variableName->value())) { $envs->put($variableName->value(), $generatedValue); EnvironmentVariable::updateOrCreate([ @@ -327,7 +332,12 @@ class Service extends BaseModel ]); } } else if ($variableName->startsWith('SERVICE_PASSWORD')) { - $generatedValue = Str::password(symbols: false); + $variableDefined = EnvironmentVariable::whereServiceId($this->id)->where('key', $variableName->value())->first(); + if (!$variableDefined) { + $generatedValue = Str::password(symbols: false); + } else { + $generatedValue = $variableDefined->value; + } if (!$envs->has($variableName->value())) { $envs->put($variableName->value(), $generatedValue); EnvironmentVariable::updateOrCreate([