feat(auth): restrict sensitive data visibility for team members
Hide database passwords, connection URLs, and debug logs from team members: - Database components: hide passwords and connection URLs for members - Deployment UI: gate debug log toggle behind update permission - Debug logs: prevent members from viewing debug output - Storage/services: hide sensitive credentials from members Members can still view non-sensitive configuration while admins retain full access to all data.
This commit is contained in:
parent
0636789071
commit
c924655999
27 changed files with 382 additions and 119 deletions
|
|
@ -21,9 +21,9 @@ public function handle($request, $next, ...$abilities)
|
|||
{
|
||||
try {
|
||||
$token = $request->user()->currentAccessToken();
|
||||
$teamId = (int) data_get($token, 'team_id');
|
||||
$teamId = data_get($token, 'team_id');
|
||||
|
||||
if ($teamId && ! $request->user()->isAdminOfTeam($teamId)) {
|
||||
if ($teamId !== null && ! $request->user()->isAdminOfTeam((int) $teamId)) {
|
||||
$tokenAbilities = $token->abilities ?? [];
|
||||
$disallowed = array_intersect($tokenAbilities, self::MEMBER_DISALLOWED_ABILITIES);
|
||||
|
||||
|
|
|
|||
|
|
@ -59,7 +59,9 @@ public function mount()
|
|||
$this->application_deployment_queue = $application_deployment_queue;
|
||||
$this->horizon_job_status = $this->application_deployment_queue->getHorizonJobStatus();
|
||||
$this->deployment_uuid = $deploymentUuid;
|
||||
$this->is_debug_enabled = $this->application->settings->is_debug_enabled;
|
||||
$this->is_debug_enabled = auth()->user()->isMember()
|
||||
? false
|
||||
: $this->application->settings->is_debug_enabled;
|
||||
$this->isKeepAliveOn();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -28,7 +28,9 @@ public function mount()
|
|||
{
|
||||
$this->application = Application::ownedByCurrentTeam()->find($this->application_deployment_queue->application_id);
|
||||
$this->server = $this->application->destination->server;
|
||||
$this->is_debug_enabled = $this->application->settings->is_debug_enabled;
|
||||
$this->is_debug_enabled = auth()->user()->isMember()
|
||||
? false
|
||||
: $this->application->settings->is_debug_enabled;
|
||||
}
|
||||
|
||||
public function deploymentFinished()
|
||||
|
|
@ -67,10 +69,15 @@ public function copyLogsToClipboard(): string
|
|||
return '';
|
||||
}
|
||||
|
||||
$isMember = auth()->user()->isMember();
|
||||
|
||||
$markdown = "# Deployment Logs\n\n";
|
||||
$markdown .= "```\n";
|
||||
|
||||
foreach ($logs as $log) {
|
||||
if ($isMember && ! empty($log['hidden'])) {
|
||||
continue;
|
||||
}
|
||||
if (isset($log['output'])) {
|
||||
$markdown .= $log['output']."\n";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -44,6 +44,8 @@ class General extends Component
|
|||
|
||||
public bool $isLogDrainEnabled = false;
|
||||
|
||||
public bool $isPasswordHiddenForMember = false;
|
||||
|
||||
public function getListeners()
|
||||
{
|
||||
$teamId = Auth::user()->currentTeam()->id;
|
||||
|
|
@ -67,6 +69,13 @@ public function mount()
|
|||
} catch (\Throwable $e) {
|
||||
return handleError($e, $this);
|
||||
}
|
||||
|
||||
$this->isPasswordHiddenForMember = auth()->user()?->isMember() ?? false;
|
||||
if ($this->isPasswordHiddenForMember) {
|
||||
$this->clickhouseAdminPassword = '';
|
||||
$this->dbUrl = null;
|
||||
$this->dbUrlPublic = null;
|
||||
}
|
||||
}
|
||||
|
||||
protected function rules(): array
|
||||
|
|
|
|||
|
|
@ -48,6 +48,8 @@ class General extends Component
|
|||
|
||||
public bool $enable_ssl = false;
|
||||
|
||||
public bool $isPasswordHiddenForMember = false;
|
||||
|
||||
public function getListeners()
|
||||
{
|
||||
$userId = Auth::id();
|
||||
|
|
@ -79,6 +81,13 @@ public function mount()
|
|||
} catch (\Throwable $e) {
|
||||
return handleError($e, $this);
|
||||
}
|
||||
|
||||
$this->isPasswordHiddenForMember = auth()->user()?->isMember() ?? false;
|
||||
if ($this->isPasswordHiddenForMember) {
|
||||
$this->dragonflyPassword = '';
|
||||
$this->dbUrl = null;
|
||||
$this->dbUrlPublic = null;
|
||||
}
|
||||
}
|
||||
|
||||
protected function rules(): array
|
||||
|
|
|
|||
|
|
@ -50,6 +50,8 @@ class General extends Component
|
|||
|
||||
public bool $enable_ssl = false;
|
||||
|
||||
public bool $isPasswordHiddenForMember = false;
|
||||
|
||||
public function getListeners()
|
||||
{
|
||||
$userId = Auth::id();
|
||||
|
|
@ -81,6 +83,13 @@ public function mount()
|
|||
} catch (\Throwable $e) {
|
||||
return handleError($e, $this);
|
||||
}
|
||||
|
||||
$this->isPasswordHiddenForMember = auth()->user()?->isMember() ?? false;
|
||||
if ($this->isPasswordHiddenForMember) {
|
||||
$this->keydbPassword = '';
|
||||
$this->dbUrl = null;
|
||||
$this->dbUrlPublic = null;
|
||||
}
|
||||
}
|
||||
|
||||
protected function rules(): array
|
||||
|
|
|
|||
|
|
@ -56,6 +56,8 @@ class General extends Component
|
|||
|
||||
public ?Carbon $certificateValidUntil = null;
|
||||
|
||||
public bool $isPasswordHiddenForMember = false;
|
||||
|
||||
public function getListeners()
|
||||
{
|
||||
$userId = Auth::id();
|
||||
|
|
@ -137,6 +139,14 @@ public function mount()
|
|||
} catch (Exception $e) {
|
||||
return handleError($e, $this);
|
||||
}
|
||||
|
||||
$this->isPasswordHiddenForMember = auth()->user()?->isMember() ?? false;
|
||||
if ($this->isPasswordHiddenForMember) {
|
||||
$this->mariadbRootPassword = '';
|
||||
$this->mariadbPassword = '';
|
||||
$this->db_url = null;
|
||||
$this->db_url_public = null;
|
||||
}
|
||||
}
|
||||
|
||||
public function syncData(bool $toModel = false)
|
||||
|
|
|
|||
|
|
@ -56,6 +56,8 @@ class General extends Component
|
|||
|
||||
public ?Carbon $certificateValidUntil = null;
|
||||
|
||||
public bool $isPasswordHiddenForMember = false;
|
||||
|
||||
public function getListeners()
|
||||
{
|
||||
$userId = Auth::id();
|
||||
|
|
@ -137,6 +139,13 @@ public function mount()
|
|||
} catch (Exception $e) {
|
||||
return handleError($e, $this);
|
||||
}
|
||||
|
||||
$this->isPasswordHiddenForMember = auth()->user()?->isMember() ?? false;
|
||||
if ($this->isPasswordHiddenForMember) {
|
||||
$this->mongoInitdbRootPassword = '';
|
||||
$this->db_url = null;
|
||||
$this->db_url_public = null;
|
||||
}
|
||||
}
|
||||
|
||||
public function syncData(bool $toModel = false)
|
||||
|
|
|
|||
|
|
@ -58,6 +58,8 @@ class General extends Component
|
|||
|
||||
public ?Carbon $certificateValidUntil = null;
|
||||
|
||||
public bool $isPasswordHiddenForMember = false;
|
||||
|
||||
public function getListeners()
|
||||
{
|
||||
$userId = Auth::id();
|
||||
|
|
@ -142,6 +144,14 @@ public function mount()
|
|||
} catch (Exception $e) {
|
||||
return handleError($e, $this);
|
||||
}
|
||||
|
||||
$this->isPasswordHiddenForMember = auth()->user()?->isMember() ?? false;
|
||||
if ($this->isPasswordHiddenForMember) {
|
||||
$this->mysqlRootPassword = '';
|
||||
$this->mysqlPassword = '';
|
||||
$this->db_url = null;
|
||||
$this->db_url_public = null;
|
||||
}
|
||||
}
|
||||
|
||||
public function syncData(bool $toModel = false)
|
||||
|
|
|
|||
|
|
@ -66,6 +66,8 @@ class General extends Component
|
|||
|
||||
public ?Carbon $certificateValidUntil = null;
|
||||
|
||||
public bool $isPasswordHiddenForMember = false;
|
||||
|
||||
public function getListeners()
|
||||
{
|
||||
$userId = Auth::id();
|
||||
|
|
@ -155,6 +157,13 @@ public function mount()
|
|||
} catch (Exception $e) {
|
||||
return handleError($e, $this);
|
||||
}
|
||||
|
||||
$this->isPasswordHiddenForMember = auth()->user()?->isMember() ?? false;
|
||||
if ($this->isPasswordHiddenForMember) {
|
||||
$this->postgresPassword = '';
|
||||
$this->db_url = null;
|
||||
$this->db_url_public = null;
|
||||
}
|
||||
}
|
||||
|
||||
public function syncData(bool $toModel = false)
|
||||
|
|
|
|||
|
|
@ -54,6 +54,8 @@ class General extends Component
|
|||
|
||||
public ?Carbon $certificateValidUntil = null;
|
||||
|
||||
public bool $isPasswordHiddenForMember = false;
|
||||
|
||||
public function getListeners()
|
||||
{
|
||||
$userId = Auth::id();
|
||||
|
|
@ -130,6 +132,13 @@ public function mount()
|
|||
} catch (\Throwable $e) {
|
||||
return handleError($e, $this);
|
||||
}
|
||||
|
||||
$this->isPasswordHiddenForMember = auth()->user()?->isMember() ?? false;
|
||||
if ($this->isPasswordHiddenForMember) {
|
||||
$this->redisPassword = '';
|
||||
$this->dbUrl = null;
|
||||
$this->dbUrlPublic = null;
|
||||
}
|
||||
}
|
||||
|
||||
public function syncData(bool $toModel = false)
|
||||
|
|
|
|||
|
|
@ -101,8 +101,7 @@ public function convertToDirectory()
|
|||
public function loadStorageOnServer()
|
||||
{
|
||||
try {
|
||||
// Loading content is a read operation, so we use 'view' permission
|
||||
$this->authorize('view', $this->resource);
|
||||
$this->authorize('update', $this->resource);
|
||||
|
||||
$this->fileStorage->loadStorageOnServer();
|
||||
$this->syncData();
|
||||
|
|
|
|||
|
|
@ -17,6 +17,8 @@ class StackForm extends Component
|
|||
|
||||
public Collection $fields;
|
||||
|
||||
public bool $isPasswordHiddenForMember = false;
|
||||
|
||||
protected $listeners = ['saveCompose'];
|
||||
|
||||
// Explicit properties
|
||||
|
|
@ -121,6 +123,17 @@ public function mount()
|
|||
})->flatMap(function ($group) {
|
||||
return $group;
|
||||
});
|
||||
|
||||
$this->isPasswordHiddenForMember = auth()->user()?->isMember() ?? false;
|
||||
if ($this->isPasswordHiddenForMember) {
|
||||
$this->fields = $this->fields->map(function ($field) {
|
||||
if (data_get($field, 'isPassword')) {
|
||||
$field['value'] = null;
|
||||
}
|
||||
|
||||
return $field;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
public function saveCompose($raw)
|
||||
|
|
|
|||
|
|
@ -31,6 +31,8 @@ class Form extends Component
|
|||
|
||||
public ?bool $isUsable = null;
|
||||
|
||||
public bool $isPasswordHiddenForMember = false;
|
||||
|
||||
protected function rules(): array
|
||||
{
|
||||
return [
|
||||
|
|
@ -109,6 +111,12 @@ private function syncData(bool $toModel = false): void
|
|||
public function mount()
|
||||
{
|
||||
$this->syncData(false);
|
||||
|
||||
$this->isPasswordHiddenForMember = auth()->user()?->isMember() ?? false;
|
||||
if ($this->isPasswordHiddenForMember) {
|
||||
$this->key = '';
|
||||
$this->secret = '';
|
||||
}
|
||||
}
|
||||
|
||||
public function testConnection()
|
||||
|
|
|
|||
|
|
@ -183,6 +183,11 @@ function decode_remote_command_output(?ApplicationDeploymentQueue $application_d
|
|||
$application = Application::find(data_get($application_deployment_queue, 'application_id'));
|
||||
$is_debug_enabled = data_get($application, 'settings.is_debug_enabled');
|
||||
|
||||
// Members should never see debug logs, even if an admin enabled debug mode
|
||||
if ($is_debug_enabled && auth()->check() && auth()->user()->isMember()) {
|
||||
$is_debug_enabled = false;
|
||||
}
|
||||
|
||||
$logs = data_get($application_deployment_queue, 'logs');
|
||||
if (empty($logs)) {
|
||||
return collect([]);
|
||||
|
|
|
|||
|
|
@ -290,6 +290,7 @@ class="p-1 text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-
|
|||
d="M12 6v6h4.5m4.5 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />
|
||||
</svg>
|
||||
</button>
|
||||
@can('update', $application)
|
||||
<button wire:click="toggleDebug"
|
||||
title="{{ $is_debug_enabled ? 'Hide Debug Logs' : 'Show Debug Logs' }}"
|
||||
class="p-1 text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200 {{ $is_debug_enabled ? '!text-warning' : '' }}">
|
||||
|
|
@ -299,6 +300,7 @@ class="p-1 text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-
|
|||
d="M12 12.75c1.148 0 2.278.08 3.383.237 1.037.146 1.866.966 1.866 2.013 0 3.728-2.35 6.75-5.25 6.75S6.75 18.728 6.75 15c0-1.046.83-1.867 1.866-2.013A24.204 24.204 0 0 1 12 12.75Zm0 0c2.883 0 5.647.508 8.207 1.44a23.91 23.91 0 0 1-1.152 6.06M12 12.75c-2.883 0-5.647.508-8.208 1.44.125 2.104.52 4.136 1.153 6.06M12 12.75a2.25 2.25 0 0 0 2.248-2.354M12 12.75a2.25 2.25 0 0 1-2.248-2.354M12 8.25c.995 0 1.971-.08 2.922-.236.403-.066.74-.358.795-.762a3.778 3.778 0 0 0-.399-2.25M12 8.25c-.995 0-1.97-.08-2.922-.236-.402-.066-.74-.358-.795-.762a3.734 3.734 0 0 1 .4-2.253M12 8.25a2.25 2.25 0 0 0-2.248 2.146M12 8.25a2.25 2.25 0 0 1 2.248 2.146M8.683 5a6.032 6.032 0 0 1-1.155-1.002c.07-.63.27-1.222.574-1.747m.581 2.749A3.75 3.75 0 0 1 15.318 5m0 0c.427-.283.815-.62 1.155-.999a4.471 4.471 0 0 0-.575-1.752M4.921 6a24.048 24.048 0 0 0-.392 3.314c1.668.546 3.416.914 5.223 1.082M19.08 6c.205 1.08.337 2.187.392 3.314a23.882 23.882 0 0 1-5.223 1.082" />
|
||||
</svg>
|
||||
</button>
|
||||
@endcan
|
||||
<button title="Follow Logs" :class="alwaysScroll ? '!text-warning' : ''"
|
||||
x-on:click="toggleScroll"
|
||||
class="p-1 text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200">
|
||||
|
|
|
|||
|
|
@ -17,8 +17,12 @@
|
|||
<div class="flex gap-2">
|
||||
<x-forms.input label="Initial Username" id="clickhouseAdminUser" placeholder="If empty: clickhouse"
|
||||
readonly helper="You can only change this in the database." canGate="update" :canResource="$database" />
|
||||
<x-forms.input label="Initial Password" id="clickhouseAdminPassword" type="password" required readonly
|
||||
helper="You can only change this in the database." canGate="update" :canResource="$database" />
|
||||
@if ($isPasswordHiddenForMember)
|
||||
<x-forms.input label="Initial Password" disabled value="Hidden (only admins can view)" />
|
||||
@else
|
||||
<x-forms.input label="Initial Password" id="clickhouseAdminPassword" type="password" required readonly
|
||||
helper="You can only change this in the database." canGate="update" :canResource="$database" />
|
||||
@endif
|
||||
</div>
|
||||
@else
|
||||
<div class=" dark:text-warning">Please verify these values. You can only modify them before the initial
|
||||
|
|
@ -26,8 +30,12 @@
|
|||
</div>
|
||||
<div class="flex gap-2">
|
||||
<x-forms.input label="Username" id="clickhouseAdminUser" required canGate="update" :canResource="$database" />
|
||||
<x-forms.input label="Password" id="clickhouseAdminPassword" type="password" required canGate="update"
|
||||
:canResource="$database" />
|
||||
@if ($isPasswordHiddenForMember)
|
||||
<x-forms.input label="Password" disabled value="Hidden (only admins can view)" />
|
||||
@else
|
||||
<x-forms.input label="Password" id="clickhouseAdminPassword" type="password" required canGate="update"
|
||||
:canResource="$database" />
|
||||
@endif
|
||||
</div>
|
||||
@endif
|
||||
<x-forms.input
|
||||
|
|
@ -41,17 +49,25 @@
|
|||
helper="A comma separated list of ports you would like to map to the host system.<br><span class='inline-block font-bold dark:text-warning'>Example</span>3000:5432,3002:5433"
|
||||
canGate="update" :canResource="$database" />
|
||||
</div>
|
||||
<x-forms.input label="Clickhouse URL (internal)"
|
||||
helper="If you change the user/password/port, this could be different. This is with the default values."
|
||||
type="password" readonly wire:model="dbUrl" canGate="update" :canResource="$database" />
|
||||
@if ($dbUrlPublic)
|
||||
<x-forms.input label="Clickhouse URL (public)"
|
||||
helper="If you change the user/password/port, this could be different. This is with the default values."
|
||||
type="password" readonly wire:model="dbUrlPublic" canGate="update" :canResource="$database" />
|
||||
@if ($isPasswordHiddenForMember)
|
||||
<x-forms.input label="Clickhouse URL (internal)" disabled value="Hidden (only admins can view)" />
|
||||
@else
|
||||
<x-forms.input label="Clickhouse URL (public)"
|
||||
<x-forms.input label="Clickhouse URL (internal)"
|
||||
helper="If you change the user/password/port, this could be different. This is with the default values."
|
||||
readonly value="Starting the database will generate this." canGate="update" :canResource="$database" />
|
||||
type="password" readonly wire:model="dbUrl" canGate="update" :canResource="$database" />
|
||||
@endif
|
||||
@if ($isPasswordHiddenForMember)
|
||||
<x-forms.input label="Clickhouse URL (public)" disabled value="Hidden (only admins can view)" />
|
||||
@else
|
||||
@if ($dbUrlPublic)
|
||||
<x-forms.input label="Clickhouse URL (public)"
|
||||
helper="If you change the user/password/port, this could be different. This is with the default values."
|
||||
type="password" readonly wire:model="dbUrlPublic" canGate="update" :canResource="$database" />
|
||||
@else
|
||||
<x-forms.input label="Clickhouse URL (public)"
|
||||
helper="If you change the user/password/port, this could be different. This is with the default values."
|
||||
readonly value="Starting the database will generate this." canGate="update" :canResource="$database" />
|
||||
@endif
|
||||
@endif
|
||||
</div>
|
||||
<div>
|
||||
|
|
|
|||
|
|
@ -18,16 +18,24 @@
|
|||
|
||||
@if ($database->started_at)
|
||||
<div class="flex gap-2">
|
||||
<x-forms.input label="Initial Password" id="dragonflyPassword" type="password" required readonly
|
||||
helper="You can only change this in the database." canGate="update" :canResource="$database" />
|
||||
@if ($isPasswordHiddenForMember)
|
||||
<x-forms.input label="Initial Password" disabled value="Hidden (only admins can view)" />
|
||||
@else
|
||||
<x-forms.input label="Initial Password" id="dragonflyPassword" type="password" required readonly
|
||||
helper="You can only change this in the database." canGate="update" :canResource="$database" />
|
||||
@endif
|
||||
</div>
|
||||
@else
|
||||
<div class=" dark:text-warning">Please verify these values. You can only modify them before the initial
|
||||
start. After that, you need to modify it in the database.
|
||||
</div>
|
||||
<div class="flex gap-2">
|
||||
<x-forms.input label="Password" id="dragonflyPassword" type="password" required canGate="update"
|
||||
:canResource="$database" />
|
||||
@if ($isPasswordHiddenForMember)
|
||||
<x-forms.input label="Password" disabled value="Hidden (only admins can view)" />
|
||||
@else
|
||||
<x-forms.input label="Password" id="dragonflyPassword" type="password" required canGate="update"
|
||||
:canResource="$database" />
|
||||
@endif
|
||||
</div>
|
||||
@endif
|
||||
<div class="flex flex-col gap-2">
|
||||
|
|
@ -37,18 +45,26 @@
|
|||
helper="A comma separated list of ports you would like to map to the host system.<br><span class='inline-block font-bold dark:text-warning'>Example</span>3000:5432,3002:5433"
|
||||
canGate="update" :canResource="$database" />
|
||||
</div>
|
||||
<x-forms.input label="Dragonfly URL (internal)"
|
||||
helper="If you change the user/password/port, this could be different. This is with the default values."
|
||||
type="password" readonly wire:model="dbUrl" canGate="update" :canResource="$database" />
|
||||
|
||||
@if ($dbUrlPublic)
|
||||
<x-forms.input label="Dragonfly URL (public)"
|
||||
helper="If you change the user/password/port, this could be different. This is with the default values."
|
||||
type="password" readonly wire:model="dbUrlPublic" canGate="update" :canResource="$database" />
|
||||
@if ($isPasswordHiddenForMember)
|
||||
<x-forms.input label="Dragonfly URL (internal)" disabled value="Hidden (only admins can view)" />
|
||||
@else
|
||||
<x-forms.input label="Dragonfly URL (public)"
|
||||
<x-forms.input label="Dragonfly URL (internal)"
|
||||
helper="If you change the user/password/port, this could be different. This is with the default values."
|
||||
readonly value="Starting the database will generate this." canGate="update" :canResource="$database" />
|
||||
type="password" readonly wire:model="dbUrl" canGate="update" :canResource="$database" />
|
||||
@endif
|
||||
|
||||
@if ($isPasswordHiddenForMember)
|
||||
<x-forms.input label="Dragonfly URL (public)" disabled value="Hidden (only admins can view)" />
|
||||
@else
|
||||
@if ($dbUrlPublic)
|
||||
<x-forms.input label="Dragonfly URL (public)"
|
||||
helper="If you change the user/password/port, this could be different. This is with the default values."
|
||||
type="password" readonly wire:model="dbUrlPublic" canGate="update" :canResource="$database" />
|
||||
@else
|
||||
<x-forms.input label="Dragonfly URL (public)"
|
||||
helper="If you change the user/password/port, this could be different. This is with the default values."
|
||||
readonly value="Starting the database will generate this." canGate="update" :canResource="$database" />
|
||||
@endif
|
||||
@endif
|
||||
</div>
|
||||
<div class="flex flex-col gap-2">
|
||||
|
|
|
|||
|
|
@ -15,16 +15,24 @@
|
|||
|
||||
@if ($database->started_at)
|
||||
<div class="flex gap-2">
|
||||
<x-forms.input label="Initial Password" id="keydbPassword" type="password" required readonly
|
||||
helper="You can only change this in the database." canGate="update" :canResource="$database" />
|
||||
@if ($isPasswordHiddenForMember)
|
||||
<x-forms.input label="Initial Password" disabled value="Hidden (only admins can view)" />
|
||||
@else
|
||||
<x-forms.input label="Initial Password" id="keydbPassword" type="password" required readonly
|
||||
helper="You can only change this in the database." canGate="update" :canResource="$database" />
|
||||
@endif
|
||||
</div>
|
||||
@else
|
||||
<div class=" dark:text-warning">Please verify these values. You can only modify them before the initial
|
||||
start. After that, you need to modify it in the database.
|
||||
</div>
|
||||
<div class="flex gap-2">
|
||||
<x-forms.input label="Password" id="keydbPassword" type="password" required canGate="update"
|
||||
:canResource="$database" />
|
||||
@if ($isPasswordHiddenForMember)
|
||||
<x-forms.input label="Password" disabled value="Hidden (only admins can view)" />
|
||||
@else
|
||||
<x-forms.input label="Password" id="keydbPassword" type="password" required canGate="update"
|
||||
:canResource="$database" />
|
||||
@endif
|
||||
</div>
|
||||
@endif
|
||||
<x-forms.input
|
||||
|
|
@ -38,17 +46,25 @@
|
|||
helper="A comma separated list of ports you would like to map to the host system.<br><span class='inline-block font-bold dark:text-warning'>Example</span>3000:5432,3002:5433"
|
||||
canGate="update" :canResource="$database" />
|
||||
</div>
|
||||
<x-forms.input label="KeyDB URL (internal)"
|
||||
helper="If you change the user/password/port, this could be different. This is with the default values."
|
||||
type="password" readonly wire:model="dbUrl" canGate="update" :canResource="$database" />
|
||||
@if ($dbUrlPublic)
|
||||
<x-forms.input label="KeyDB URL (public)"
|
||||
helper="If you change the user/password/port, this could be different. This is with the default values."
|
||||
type="password" readonly wire:model="dbUrlPublic" canGate="update" :canResource="$database" />
|
||||
@if ($isPasswordHiddenForMember)
|
||||
<x-forms.input label="KeyDB URL (internal)" disabled value="Hidden (only admins can view)" />
|
||||
@else
|
||||
<x-forms.input label="KeyDB URL (public)"
|
||||
<x-forms.input label="KeyDB URL (internal)"
|
||||
helper="If you change the user/password/port, this could be different. This is with the default values."
|
||||
readonly value="Starting the database will generate this." canGate="update" :canResource="$database" />
|
||||
type="password" readonly wire:model="dbUrl" canGate="update" :canResource="$database" />
|
||||
@endif
|
||||
@if ($isPasswordHiddenForMember)
|
||||
<x-forms.input label="KeyDB URL (public)" disabled value="Hidden (only admins can view)" />
|
||||
@else
|
||||
@if ($dbUrlPublic)
|
||||
<x-forms.input label="KeyDB URL (public)"
|
||||
helper="If you change the user/password/port, this could be different. This is with the default values."
|
||||
type="password" readonly wire:model="dbUrlPublic" canGate="update" :canResource="$database" />
|
||||
@else
|
||||
<x-forms.input label="KeyDB URL (public)"
|
||||
helper="If you change the user/password/port, this could be different. This is with the default values."
|
||||
readonly value="Starting the database will generate this." canGate="update" :canResource="$database" />
|
||||
@endif
|
||||
@endif
|
||||
</div>
|
||||
<div class="flex flex-col gap-2">
|
||||
|
|
|
|||
|
|
@ -17,15 +17,23 @@
|
|||
</div>
|
||||
@if ($database->started_at)
|
||||
<div class="flex xl:flex-row flex-col gap-2">
|
||||
<x-forms.input label="Root Password" id="mariadbRootPassword" type="password" required
|
||||
helper="If you change this in the database, please sync it here, otherwise automations (like backups) won't work."
|
||||
canGate="update" :canResource="$database" />
|
||||
@if ($isPasswordHiddenForMember)
|
||||
<x-forms.input label="Root Password" disabled value="Hidden (only admins can view)" />
|
||||
@else
|
||||
<x-forms.input label="Root Password" id="mariadbRootPassword" type="password" required
|
||||
helper="If you change this in the database, please sync it here, otherwise automations (like backups) won't work."
|
||||
canGate="update" :canResource="$database" />
|
||||
@endif
|
||||
<x-forms.input label="Normal User" id="mariadbUser" required
|
||||
helper="If you change this in the database, please sync it here, otherwise automations (like backups) won't work."
|
||||
canGate="update" :canResource="$database" />
|
||||
<x-forms.input label="Normal User Password" id="mariadbPassword" type="password" required
|
||||
helper="If you change this in the database, please sync it here, otherwise automations (like backups) won't work."
|
||||
canGate="update" :canResource="$database" />
|
||||
@if ($isPasswordHiddenForMember)
|
||||
<x-forms.input label="Normal User Password" disabled value="Hidden (only admins can view)" />
|
||||
@else
|
||||
<x-forms.input label="Normal User Password" id="mariadbPassword" type="password" required
|
||||
helper="If you change this in the database, please sync it here, otherwise automations (like backups) won't work."
|
||||
canGate="update" :canResource="$database" />
|
||||
@endif
|
||||
</div>
|
||||
<div class="flex flex-col gap-2">
|
||||
<x-forms.input label="Initial Database" id="mariadbDatabase"
|
||||
|
|
@ -34,12 +42,20 @@
|
|||
</div>
|
||||
@else
|
||||
<div class="flex xl:flex-row flex-col gap-2 pb-2">
|
||||
<x-forms.input label="Root Password" id="mariadbRootPassword" type="password"
|
||||
helper="You can only change this in the database." canGate="update" :canResource="$database" />
|
||||
@if ($isPasswordHiddenForMember)
|
||||
<x-forms.input label="Root Password" disabled value="Hidden (only admins can view)" />
|
||||
@else
|
||||
<x-forms.input label="Root Password" id="mariadbRootPassword" type="password"
|
||||
helper="You can only change this in the database." canGate="update" :canResource="$database" />
|
||||
@endif
|
||||
<x-forms.input label="Normal User" id="mariadbUser" required
|
||||
helper="You can only change this in the database." canGate="update" :canResource="$database" />
|
||||
<x-forms.input label="Normal User Password" id="mariadbPassword" type="password" required
|
||||
helper="You can only change this in the database." canGate="update" :canResource="$database" />
|
||||
@if ($isPasswordHiddenForMember)
|
||||
<x-forms.input label="Normal User Password" disabled value="Hidden (only admins can view)" />
|
||||
@else
|
||||
<x-forms.input label="Normal User Password" id="mariadbPassword" type="password" required
|
||||
helper="You can only change this in the database." canGate="update" :canResource="$database" />
|
||||
@endif
|
||||
</div>
|
||||
<div class="flex flex-col gap-2">
|
||||
<x-forms.input label="Initial Database" id="mariadbDatabase"
|
||||
|
|
@ -61,13 +77,21 @@
|
|||
helper="A comma separated list of ports you would like to map to the host system.<br><span class='inline-block font-bold dark:text-warning'>Example</span>3000:5432,3002:5433"
|
||||
canGate="update" :canResource="$database" />
|
||||
</div>
|
||||
<x-forms.input label="MariaDB URL (internal)"
|
||||
helper="If you change the user/password/port, this could be different. This is with the default values."
|
||||
type="password" readonly wire:model="db_url" canGate="update" :canResource="$database" />
|
||||
@if ($db_url_public)
|
||||
<x-forms.input label="MariaDB URL (public)"
|
||||
@if ($isPasswordHiddenForMember)
|
||||
<x-forms.input label="MariaDB URL (internal)" disabled value="Hidden (only admins can view)" />
|
||||
@else
|
||||
<x-forms.input label="MariaDB URL (internal)"
|
||||
helper="If you change the user/password/port, this could be different. This is with the default values."
|
||||
type="password" readonly wire:model="db_url_public" canGate="update" :canResource="$database" />
|
||||
type="password" readonly wire:model="db_url" canGate="update" :canResource="$database" />
|
||||
@endif
|
||||
@if ($isPasswordHiddenForMember)
|
||||
<x-forms.input label="MariaDB URL (public)" disabled value="Hidden (only admins can view)" />
|
||||
@else
|
||||
@if ($db_url_public)
|
||||
<x-forms.input label="MariaDB URL (public)"
|
||||
helper="If you change the user/password/port, this could be different. This is with the default values."
|
||||
type="password" readonly wire:model="db_url_public" canGate="update" :canResource="$database" />
|
||||
@endif
|
||||
@endif
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -21,10 +21,14 @@
|
|||
placeholder="If empty: postgres"
|
||||
helper="If you change this in the database, please sync it here, otherwise automations (like backups) won't work."
|
||||
canGate="update" :canResource="$database" />
|
||||
<x-forms.input label="Initial Password" id="mongoInitdbRootPassword" type="password"
|
||||
required
|
||||
helper="If you change this in the database, please sync it here, otherwise automations (like backups) won't work."
|
||||
canGate="update" :canResource="$database" />
|
||||
@if ($isPasswordHiddenForMember)
|
||||
<x-forms.input label="Initial Password" disabled value="Hidden (only admins can view)" />
|
||||
@else
|
||||
<x-forms.input label="Initial Password" id="mongoInitdbRootPassword" type="password"
|
||||
required
|
||||
helper="If you change this in the database, please sync it here, otherwise automations (like backups) won't work."
|
||||
canGate="update" :canResource="$database" />
|
||||
@endif
|
||||
<x-forms.input label="Initial Database" id="mongoInitdbDatabase"
|
||||
placeholder="If empty, it will be the same as Username." readonly
|
||||
helper="You can only change this in the database." canGate="update" :canResource="$database" />
|
||||
|
|
@ -33,8 +37,12 @@
|
|||
<div class="flex xl:flex-row flex-col gap-2 pb-2">
|
||||
<x-forms.input required label="Username" id="mongoInitdbRootUsername"
|
||||
placeholder="If empty: postgres" canGate="update" :canResource="$database" />
|
||||
<x-forms.input label="Password" id="mongoInitdbRootPassword" type="password" required
|
||||
canGate="update" :canResource="$database" />
|
||||
@if ($isPasswordHiddenForMember)
|
||||
<x-forms.input label="Password" disabled value="Hidden (only admins can view)" />
|
||||
@else
|
||||
<x-forms.input label="Password" id="mongoInitdbRootPassword" type="password" required
|
||||
canGate="update" :canResource="$database" />
|
||||
@endif
|
||||
<x-forms.input required label="Database" id="mongoInitdbDatabase"
|
||||
placeholder="If empty, it will be the same as Username." canGate="update" :canResource="$database" />
|
||||
</div>
|
||||
|
|
@ -50,13 +58,21 @@
|
|||
helper="A comma separated list of ports you would like to map to the host system.<br><span class='inline-block font-bold dark:text-warning'>Example</span>3000:5432,3002:5433"
|
||||
canGate="update" :canResource="$database" />
|
||||
</div>
|
||||
<x-forms.input label="Mongo URL (internal)"
|
||||
helper="If you change the user/password/port, this could be different. This is with the default values."
|
||||
type="password" readonly wire:model="db_url" canGate="update" :canResource="$database" />
|
||||
@if ($db_url_public)
|
||||
<x-forms.input label="Mongo URL (public)"
|
||||
@if ($isPasswordHiddenForMember)
|
||||
<x-forms.input label="Mongo URL (internal)" disabled value="Hidden (only admins can view)" />
|
||||
@else
|
||||
<x-forms.input label="Mongo URL (internal)"
|
||||
helper="If you change the user/password/port, this could be different. This is with the default values."
|
||||
type="password" readonly wire:model="db_url_public" canGate="update" :canResource="$database" />
|
||||
type="password" readonly wire:model="db_url" canGate="update" :canResource="$database" />
|
||||
@endif
|
||||
@if ($isPasswordHiddenForMember)
|
||||
<x-forms.input label="Mongo URL (public)" disabled value="Hidden (only admins can view)" />
|
||||
@else
|
||||
@if ($db_url_public)
|
||||
<x-forms.input label="Mongo URL (public)"
|
||||
helper="If you change the user/password/port, this could be different. This is with the default values."
|
||||
type="password" readonly wire:model="db_url_public" canGate="update" :canResource="$database" />
|
||||
@endif
|
||||
@endif
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -17,12 +17,20 @@
|
|||
</div>
|
||||
@if ($database->started_at)
|
||||
<div class="flex xl:flex-row flex-col gap-2">
|
||||
<x-forms.input label="Root Password" id="mysqlRootPassword" type="password" required
|
||||
helper="If you change this in the database, please sync it here, otherwise automations (like backups) won't work." canGate="update" :canResource="$database" />
|
||||
@if ($isPasswordHiddenForMember)
|
||||
<x-forms.input label="Root Password" disabled value="Hidden (only admins can view)" />
|
||||
@else
|
||||
<x-forms.input label="Root Password" id="mysqlRootPassword" type="password" required
|
||||
helper="If you change this in the database, please sync it here, otherwise automations (like backups) won't work." canGate="update" :canResource="$database" />
|
||||
@endif
|
||||
<x-forms.input label="Normal User" id="mysqlUser" required
|
||||
helper="If you change this in the database, please sync it here, otherwise automations (like backups) won't work." canGate="update" :canResource="$database" />
|
||||
<x-forms.input label="Normal User Password" id="mysqlPassword" type="password" required
|
||||
helper="If you change this in the database, please sync it here, otherwise automations (like backups) won't work." canGate="update" :canResource="$database" />
|
||||
@if ($isPasswordHiddenForMember)
|
||||
<x-forms.input label="Normal User Password" disabled value="Hidden (only admins can view)" />
|
||||
@else
|
||||
<x-forms.input label="Normal User Password" id="mysqlPassword" type="password" required
|
||||
helper="If you change this in the database, please sync it here, otherwise automations (like backups) won't work." canGate="update" :canResource="$database" />
|
||||
@endif
|
||||
</div>
|
||||
<div class="flex flex-col gap-2">
|
||||
<x-forms.input label="Initial Database" id="mysqlDatabase"
|
||||
|
|
@ -31,12 +39,20 @@
|
|||
</div>
|
||||
@else
|
||||
<div class="flex xl:flex-row flex-col gap-4 pb-2">
|
||||
<x-forms.input label="Root Password" id="mysqlRootPassword" type="password"
|
||||
helper="You can only change this in the database." canGate="update" :canResource="$database" />
|
||||
@if ($isPasswordHiddenForMember)
|
||||
<x-forms.input label="Root Password" disabled value="Hidden (only admins can view)" />
|
||||
@else
|
||||
<x-forms.input label="Root Password" id="mysqlRootPassword" type="password"
|
||||
helper="You can only change this in the database." canGate="update" :canResource="$database" />
|
||||
@endif
|
||||
<x-forms.input label="Normal User" id="mysqlUser" required
|
||||
helper="You can only change this in the database." canGate="update" :canResource="$database" />
|
||||
<x-forms.input label="Normal User Password" id="mysqlPassword" type="password" required
|
||||
helper="You can only change this in the database." canGate="update" :canResource="$database" />
|
||||
@if ($isPasswordHiddenForMember)
|
||||
<x-forms.input label="Normal User Password" disabled value="Hidden (only admins can view)" />
|
||||
@else
|
||||
<x-forms.input label="Normal User Password" id="mysqlPassword" type="password" required
|
||||
helper="You can only change this in the database." canGate="update" :canResource="$database" />
|
||||
@endif
|
||||
</div>
|
||||
<div class="flex flex-col gap-2">
|
||||
<x-forms.input label="Initial Database" id="mysqlDatabase"
|
||||
|
|
@ -56,13 +72,21 @@
|
|||
<x-forms.input placeholder="3000:5432" id="portsMappings" label="Ports Mappings"
|
||||
helper="A comma separated list of ports you would like to map to the host system.<br><span class='inline-block font-bold dark:text-warning'>Example</span>3000:5432,3002:5433" canGate="update" :canResource="$database" />
|
||||
</div>
|
||||
<x-forms.input label="MySQL URL (internal)"
|
||||
helper="If you change the user/password/port, this could be different. This is with the default values."
|
||||
type="password" readonly wire:model="db_url" />
|
||||
@if ($db_url_public)
|
||||
<x-forms.input label="MySQL URL (public)"
|
||||
@if ($isPasswordHiddenForMember)
|
||||
<x-forms.input label="MySQL URL (internal)" disabled value="Hidden (only admins can view)" />
|
||||
@else
|
||||
<x-forms.input label="MySQL URL (internal)"
|
||||
helper="If you change the user/password/port, this could be different. This is with the default values."
|
||||
type="password" readonly wire:model="db_url_public" />
|
||||
type="password" readonly wire:model="db_url" />
|
||||
@endif
|
||||
@if ($isPasswordHiddenForMember)
|
||||
<x-forms.input label="MySQL URL (public)" disabled value="Hidden (only admins can view)" />
|
||||
@else
|
||||
@if ($db_url_public)
|
||||
<x-forms.input label="MySQL URL (public)"
|
||||
helper="If you change the user/password/port, this could be different. This is with the default values."
|
||||
type="password" readonly wire:model="db_url_public" />
|
||||
@endif
|
||||
@endif
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -34,9 +34,13 @@
|
|||
<x-forms.input label="Username" id="postgresUser" placeholder="If empty: postgres" canGate="update"
|
||||
:canResource="$database"
|
||||
helper="If you change this in the database, please sync it here, otherwise automations (like backups) won't work." />
|
||||
<x-forms.input label="Password" id="postgresPassword" type="password" required canGate="update"
|
||||
:canResource="$database"
|
||||
helper="If you change this in the database, please sync it here, otherwise automations (like backups) won't work." />
|
||||
@if ($isPasswordHiddenForMember)
|
||||
<x-forms.input label="Password" disabled value="Hidden (only admins can view)" />
|
||||
@else
|
||||
<x-forms.input label="Password" id="postgresPassword" type="password" required canGate="update"
|
||||
:canResource="$database"
|
||||
helper="If you change this in the database, please sync it here, otherwise automations (like backups) won't work." />
|
||||
@endif
|
||||
<x-forms.input label="Initial Database" id="postgresDb"
|
||||
placeholder="If empty, it will be the same as Username." readonly
|
||||
helper="You can only change this in the database." />
|
||||
|
|
@ -45,8 +49,12 @@
|
|||
<div class="flex xl:flex-row flex-col gap-2 pb-2">
|
||||
<x-forms.input label="Username" id="postgresUser" placeholder="If empty: postgres" canGate="update"
|
||||
:canResource="$database" />
|
||||
<x-forms.input label="Password" id="postgresPassword" type="password" required canGate="update"
|
||||
:canResource="$database" />
|
||||
@if ($isPasswordHiddenForMember)
|
||||
<x-forms.input label="Password" disabled value="Hidden (only admins can view)" />
|
||||
@else
|
||||
<x-forms.input label="Password" id="postgresPassword" type="password" required canGate="update"
|
||||
:canResource="$database" />
|
||||
@endif
|
||||
<x-forms.input label="Initial Database" id="postgresDb"
|
||||
placeholder="If empty, it will be the same as Username." canGate="update" :canResource="$database" />
|
||||
</div>
|
||||
|
|
@ -69,13 +77,21 @@
|
|||
canGate="update" :canResource="$database" />
|
||||
</div>
|
||||
|
||||
<x-forms.input label="Postgres URL (internal)"
|
||||
helper="If you change the user/password/port, this could be different. This is with the default values."
|
||||
type="password" readonly wire:model="db_url" />
|
||||
@if ($db_url_public)
|
||||
<x-forms.input label="Postgres URL (public)"
|
||||
@if ($isPasswordHiddenForMember)
|
||||
<x-forms.input label="Postgres URL (internal)" disabled value="Hidden (only admins can view)" />
|
||||
@else
|
||||
<x-forms.input label="Postgres URL (internal)"
|
||||
helper="If you change the user/password/port, this could be different. This is with the default values."
|
||||
type="password" readonly wire:model="db_url_public" />
|
||||
type="password" readonly wire:model="db_url" />
|
||||
@endif
|
||||
@if ($isPasswordHiddenForMember)
|
||||
<x-forms.input label="Postgres URL (public)" disabled value="Hidden (only admins can view)" />
|
||||
@else
|
||||
@if ($db_url_public)
|
||||
<x-forms.input label="Postgres URL (public)"
|
||||
helper="If you change the user/password/port, this could be different. This is with the default values."
|
||||
type="password" readonly wire:model="db_url_public" />
|
||||
@endif
|
||||
@endif
|
||||
</div>
|
||||
<div class="flex flex-col gap-2">
|
||||
|
|
|
|||
|
|
@ -23,8 +23,12 @@
|
|||
<x-forms.input label="Username" id="redisUsername"
|
||||
helper="You can only change this in the database." canGate="update" :canResource="$database" />
|
||||
@endif
|
||||
<x-forms.input label="Password" id="redisPassword" type="password"
|
||||
helper="You can only change this in the database." canGate="update" :canResource="$database" />
|
||||
@if ($isPasswordHiddenForMember)
|
||||
<x-forms.input label="Password" disabled value="Hidden (only admins can view)" />
|
||||
@else
|
||||
<x-forms.input label="Password" id="redisPassword" type="password"
|
||||
helper="You can only change this in the database." canGate="update" :canResource="$database" />
|
||||
@endif
|
||||
</div>
|
||||
@else
|
||||
<div class="pt-2 dark:text-warning">You can only change the username and password in the database after
|
||||
|
|
@ -39,13 +43,17 @@
|
|||
Note: If the environment variable REDIS_USERNAME is set as a shared variable (environment, project, or team-based), this input field will become read-only."
|
||||
:disabled="$this->isSharedVariable('REDIS_USERNAME')" canGate="update" :canResource="$database" />
|
||||
@endif
|
||||
<x-forms.input label="Password" id="redisPassword" type="password" required
|
||||
helper="You can change the Redis Password in the input field below or by editing the value of the REDIS_PASSWORD environment variable.
|
||||
@if ($isPasswordHiddenForMember)
|
||||
<x-forms.input label="Password" disabled value="Hidden (only admins can view)" />
|
||||
@else
|
||||
<x-forms.input label="Password" id="redisPassword" type="password" required
|
||||
helper="You can change the Redis Password in the input field below or by editing the value of the REDIS_PASSWORD environment variable.
|
||||
<br><br>
|
||||
If you change the Redis Password in the database, please sync it here, otherwise automations (like backups) won't work.
|
||||
<br><br>
|
||||
Note: If the environment variable REDIS_PASSWORD is set as a shared variable (environment, project, or team-based), this input field will become read-only."
|
||||
:disabled="$this->isSharedVariable('REDIS_PASSWORD')" canGate="update" :canResource="$database" />
|
||||
:disabled="$this->isSharedVariable('REDIS_PASSWORD')" canGate="update" :canResource="$database" />
|
||||
@endif
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
|
|
@ -60,13 +68,21 @@
|
|||
helper="A comma separated list of ports you would like to map to the host system.<br><span class='inline-block font-bold dark:text-warning'>Example</span>3000:5432,3002:5433"
|
||||
canGate="update" :canResource="$database" />
|
||||
</div>
|
||||
<x-forms.input label="Redis URL (internal)"
|
||||
helper="If you change the user/password/port, this could be different. This is with the default values."
|
||||
type="password" readonly wire:model="dbUrl" canGate="update" :canResource="$database" />
|
||||
@if ($dbUrlPublic)
|
||||
<x-forms.input label="Redis URL (public)"
|
||||
@if ($isPasswordHiddenForMember)
|
||||
<x-forms.input label="Redis URL (internal)" disabled value="Hidden (only admins can view)" />
|
||||
@else
|
||||
<x-forms.input label="Redis URL (internal)"
|
||||
helper="If you change the user/password/port, this could be different. This is with the default values."
|
||||
type="password" readonly wire:model="dbUrlPublic" canGate="update" :canResource="$database" />
|
||||
type="password" readonly wire:model="dbUrl" canGate="update" :canResource="$database" />
|
||||
@endif
|
||||
@if ($isPasswordHiddenForMember)
|
||||
<x-forms.input label="Redis URL (public)" disabled value="Hidden (only admins can view)" />
|
||||
@else
|
||||
@if ($dbUrlPublic)
|
||||
<x-forms.input label="Redis URL (public)"
|
||||
helper="If you change the user/password/port, this could be different. This is with the default values."
|
||||
type="password" readonly wire:model="dbUrlPublic" canGate="update" :canResource="$database" />
|
||||
@endif
|
||||
@endif
|
||||
</div>
|
||||
<div class="flex flex-col gap-2">
|
||||
|
|
|
|||
|
|
@ -87,7 +87,7 @@
|
|||
@else
|
||||
{{-- Read-only view --}}
|
||||
@if (!$fileStorage->is_directory)
|
||||
@can('view', $resource)
|
||||
@can('update', $resource)
|
||||
<div class="flex gap-2">
|
||||
<x-forms.button type="button" wire:click="loadStorageOnServer">Load from
|
||||
server</x-forms.button>
|
||||
|
|
|
|||
|
|
@ -39,10 +39,14 @@ class="font-bold">{{ data_get($field, 'serviceName') }}</span>{{ data_get($field
|
|||
<x-helper helper="Variable name: {{ $serviceName }}" />
|
||||
@endif
|
||||
</div>
|
||||
<x-forms.input canGate="update" :canResource="$service"
|
||||
type="{{ data_get($field, 'isPassword') ? 'password' : 'text' }}"
|
||||
required="{{ str(data_get($field, 'rules'))?->contains('required') }}"
|
||||
id="fields.{{ $serviceName }}.value"></x-forms.input>
|
||||
@if ($isPasswordHiddenForMember && data_get($field, 'isPassword'))
|
||||
<x-forms.input disabled value="Hidden (only admins can view)" />
|
||||
@else
|
||||
<x-forms.input canGate="update" :canResource="$service"
|
||||
type="{{ data_get($field, 'isPassword') ? 'password' : 'text' }}"
|
||||
required="{{ str(data_get($field, 'rules'))?->contains('required') }}"
|
||||
id="fields.{{ $serviceName }}.value"></x-forms.input>
|
||||
@endif
|
||||
@endforeach
|
||||
</div>
|
||||
@endif
|
||||
|
|
|
|||
|
|
@ -41,10 +41,15 @@ class="px-2 py-1 text-xs font-semibold text-red-800 bg-red-100 rounded dark:text
|
|||
<x-forms.input canGate="update" :canResource="$storage" required label="Region" id="region" />
|
||||
</div>
|
||||
<div class="flex gap-2">
|
||||
<x-forms.input canGate="update" :canResource="$storage" required type="password" label="Access Key"
|
||||
id="key" />
|
||||
<x-forms.input canGate="update" :canResource="$storage" required type="password" label="Secret Key"
|
||||
id="secret" />
|
||||
@if ($isPasswordHiddenForMember)
|
||||
<x-forms.input label="Access Key" disabled value="Hidden (only admins can view)" />
|
||||
<x-forms.input label="Secret Key" disabled value="Hidden (only admins can view)" />
|
||||
@else
|
||||
<x-forms.input canGate="update" :canResource="$storage" required type="password" label="Access Key"
|
||||
id="key" />
|
||||
<x-forms.input canGate="update" :canResource="$storage" required type="password" label="Secret Key"
|
||||
id="secret" />
|
||||
@endif
|
||||
</div>
|
||||
@can('validateConnection', $storage)
|
||||
<x-forms.button class="mt-4" isHighlighted wire:click="testConnection">
|
||||
|
|
|
|||
Loading…
Reference in a new issue