feat: show warning if people would like to use sslip with https
This commit is contained in:
@@ -337,7 +337,12 @@ class General extends Component
|
|||||||
|
|
||||||
return str($domain)->trim()->lower();
|
return str($domain)->trim()->lower();
|
||||||
});
|
});
|
||||||
|
|
||||||
$this->application->fqdn = $this->application->fqdn->unique()->implode(',');
|
$this->application->fqdn = $this->application->fqdn->unique()->implode(',');
|
||||||
|
$warning = sslipDomainWarning($this->application->fqdn);
|
||||||
|
if ($warning) {
|
||||||
|
$this->dispatch('warning', __('warning.sslipdomain'));
|
||||||
|
}
|
||||||
$this->resetDefaultLabels();
|
$this->resetDefaultLabels();
|
||||||
|
|
||||||
if ($this->application->isDirty('redirect')) {
|
if ($this->application->isDirty('redirect')) {
|
||||||
@@ -403,7 +408,7 @@ class General extends Component
|
|||||||
}
|
}
|
||||||
$this->application->custom_labels = base64_encode($this->customLabels);
|
$this->application->custom_labels = base64_encode($this->customLabels);
|
||||||
$this->application->save();
|
$this->application->save();
|
||||||
$showToaster && $this->dispatch('success', 'Application settings updated!');
|
$showToaster && ! $warning && $this->dispatch('success', 'Application settings updated!');
|
||||||
} catch (\Throwable $e) {
|
} catch (\Throwable $e) {
|
||||||
$originalFqdn = $this->application->getOriginal('fqdn');
|
$originalFqdn = $this->application->getOriginal('fqdn');
|
||||||
if ($originalFqdn !== $this->application->fqdn) {
|
if ($originalFqdn !== $this->application->fqdn) {
|
||||||
|
@@ -33,6 +33,10 @@ class EditDomain extends Component
|
|||||||
return str($domain)->trim()->lower();
|
return str($domain)->trim()->lower();
|
||||||
});
|
});
|
||||||
$this->application->fqdn = $this->application->fqdn->unique()->implode(',');
|
$this->application->fqdn = $this->application->fqdn->unique()->implode(',');
|
||||||
|
$warning = sslipDomainWarning($this->application->fqdn);
|
||||||
|
if ($warning) {
|
||||||
|
$this->dispatch('warning', __('warning.sslipdomain'));
|
||||||
|
}
|
||||||
check_domain_usage(resource: $this->application);
|
check_domain_usage(resource: $this->application);
|
||||||
$this->validate();
|
$this->validate();
|
||||||
$this->application->save();
|
$this->application->save();
|
||||||
@@ -40,7 +44,7 @@ class EditDomain extends Component
|
|||||||
if (str($this->application->fqdn)->contains(',')) {
|
if (str($this->application->fqdn)->contains(',')) {
|
||||||
$this->dispatch('warning', 'Some services do not support multiple domains, which can lead to problems and is NOT RECOMMENDED.<br><br>Only use multiple domains if you know what you are doing.');
|
$this->dispatch('warning', 'Some services do not support multiple domains, which can lead to problems and is NOT RECOMMENDED.<br><br>Only use multiple domains if you know what you are doing.');
|
||||||
} else {
|
} else {
|
||||||
$this->dispatch('success', 'Service saved.');
|
! $warning && $this->dispatch('success', 'Service saved.');
|
||||||
}
|
}
|
||||||
$this->application->service->parse();
|
$this->application->service->parse();
|
||||||
$this->dispatch('refresh');
|
$this->dispatch('refresh');
|
||||||
|
@@ -30,8 +30,6 @@ class ServiceApplicationView extends Component
|
|||||||
'application.is_stripprefix_enabled' => 'nullable|boolean',
|
'application.is_stripprefix_enabled' => 'nullable|boolean',
|
||||||
];
|
];
|
||||||
|
|
||||||
public function updatedApplicationFqdn() {}
|
|
||||||
|
|
||||||
public function instantSave()
|
public function instantSave()
|
||||||
{
|
{
|
||||||
$this->submit();
|
$this->submit();
|
||||||
@@ -83,7 +81,10 @@ class ServiceApplicationView extends Component
|
|||||||
return str($domain)->trim()->lower();
|
return str($domain)->trim()->lower();
|
||||||
});
|
});
|
||||||
$this->application->fqdn = $this->application->fqdn->unique()->implode(',');
|
$this->application->fqdn = $this->application->fqdn->unique()->implode(',');
|
||||||
|
$warning = sslipDomainWarning($this->application->fqdn);
|
||||||
|
if ($warning) {
|
||||||
|
$this->dispatch('warning', __('warning.sslipdomain'));
|
||||||
|
}
|
||||||
check_domain_usage(resource: $this->application);
|
check_domain_usage(resource: $this->application);
|
||||||
$this->validate();
|
$this->validate();
|
||||||
$this->application->save();
|
$this->application->save();
|
||||||
@@ -91,7 +92,7 @@ class ServiceApplicationView extends Component
|
|||||||
if (str($this->application->fqdn)->contains(',')) {
|
if (str($this->application->fqdn)->contains(',')) {
|
||||||
$this->dispatch('warning', 'Some services do not support multiple domains, which can lead to problems and is NOT RECOMMENDED.<br><br>Only use multiple domains if you know what you are doing.');
|
$this->dispatch('warning', 'Some services do not support multiple domains, which can lead to problems and is NOT RECOMMENDED.<br><br>Only use multiple domains if you know what you are doing.');
|
||||||
} else {
|
} else {
|
||||||
$this->dispatch('success', 'Service saved.');
|
! $warning && $this->dispatch('success', 'Service saved.');
|
||||||
}
|
}
|
||||||
$this->dispatch('generateDockerCompose');
|
$this->dispatch('generateDockerCompose');
|
||||||
} catch (\Throwable $e) {
|
} catch (\Throwable $e) {
|
||||||
|
@@ -3789,7 +3789,6 @@ function newParser(Application|Service $resource, int $pull_request_id = 0, ?int
|
|||||||
service_name: $serviceName,
|
service_name: $serviceName,
|
||||||
image: $image,
|
image: $image,
|
||||||
predefinedPort: $predefinedPort
|
predefinedPort: $predefinedPort
|
||||||
|
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4030,3 +4029,15 @@ function loggy($message = null, array $context = [])
|
|||||||
|
|
||||||
return app('log')->debug($message, $context);
|
return app('log')->debug($message, $context);
|
||||||
}
|
}
|
||||||
|
function sslipDomainWarning(string $domains)
|
||||||
|
{
|
||||||
|
$domains = str($domains)->trim()->explode(',');
|
||||||
|
$showSslipHttpsWarning = false;
|
||||||
|
$domains->each(function ($domain) use (&$showSslipHttpsWarning) {
|
||||||
|
if (str($domain)->contains('https') && str($domain)->contains('sslip')) {
|
||||||
|
$showSslipHttpsWarning = true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return $showSslipHttpsWarning;
|
||||||
|
}
|
||||||
|
@@ -33,5 +33,6 @@
|
|||||||
"resource.delete_volumes": "Permanently delete all volumes associated with this resource.",
|
"resource.delete_volumes": "Permanently delete all volumes associated with this resource.",
|
||||||
"resource.delete_connected_networks": "Permanently delete all non-predefined networks associated with this resource.",
|
"resource.delete_connected_networks": "Permanently delete all non-predefined networks associated with this resource.",
|
||||||
"resource.delete_configurations": "Permanently delete all configuration files from the server.",
|
"resource.delete_configurations": "Permanently delete all configuration files from the server.",
|
||||||
"database.delete_backups_locally": "All backups will be permanently deleted from local storage."
|
"database.delete_backups_locally": "All backups will be permanently deleted from local storage.",
|
||||||
|
"warning.sslipdomain": "Your configuration is saved, but sslip domain with https is <span class='dark:text-red-500 text-red-500 font-bold'>NOT</span> recommended, because Let's Encrypt servers with this public domain are rate limited (SSL certificate validation will fail). <br><br>Use your own domain instead."
|
||||||
}
|
}
|
||||||
|
@@ -17,7 +17,6 @@
|
|||||||
label="Image Tag" id="database.image"></x-forms.input>
|
label="Image Tag" id="database.image"></x-forms.input>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex items-end gap-2">
|
<div class="flex items-end gap-2">
|
||||||
|
|
||||||
<x-forms.input placeholder="5432" disabled="{{ $database->is_public }}" id="database.public_port"
|
<x-forms.input placeholder="5432" disabled="{{ $database->is_public }}" id="database.public_port"
|
||||||
label="Public Port" />
|
label="Public Port" />
|
||||||
<x-forms.checkbox instantSave id="database.is_public" label="Make it publicly available" />
|
<x-forms.checkbox instantSave id="database.is_public" label="Make it publicly available" />
|
||||||
|
Reference in New Issue
Block a user