mirror of
https://github.com/coollabsio/coolify.git
synced 2026-06-19 07:35:25 +00:00
062ad57740
Authorize cloud provider token access, audit sensitive operations, and standardize public IDs across deployment and resource flows.
66 lines
1.6 KiB
PHP
66 lines
1.6 KiB
PHP
<?php
|
|
|
|
namespace App\Livewire\Project\Database;
|
|
|
|
use App\Models\StandalonePostgresql;
|
|
use Exception;
|
|
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
|
|
use Livewire\Attributes\Locked;
|
|
use Livewire\Attributes\Validate;
|
|
use Livewire\Component;
|
|
|
|
class InitScript extends Component
|
|
{
|
|
use AuthorizesRequests;
|
|
|
|
#[Locked]
|
|
public StandalonePostgresql $database;
|
|
|
|
#[Locked]
|
|
public array $script;
|
|
|
|
#[Locked]
|
|
public int $index;
|
|
|
|
#[Validate(['nullable', 'string'])]
|
|
public ?string $filename = null;
|
|
|
|
#[Validate(['nullable', 'string'])]
|
|
public ?string $content = null;
|
|
|
|
public function mount()
|
|
{
|
|
try {
|
|
$this->index = data_get($this->script, 'index');
|
|
$this->filename = data_get($this->script, 'filename');
|
|
$this->content = data_get($this->script, 'content');
|
|
} catch (Exception $e) {
|
|
return handleError($e, $this);
|
|
}
|
|
}
|
|
|
|
public function submit()
|
|
{
|
|
try {
|
|
$this->authorize('update', $this->database);
|
|
$this->validate();
|
|
$this->script['index'] = $this->index;
|
|
$this->script['content'] = $this->content;
|
|
$this->script['filename'] = $this->filename;
|
|
$this->dispatch('save_init_script', $this->script);
|
|
} catch (Exception $e) {
|
|
return handleError($e, $this);
|
|
}
|
|
}
|
|
|
|
public function delete()
|
|
{
|
|
try {
|
|
$this->authorize('update', $this->database);
|
|
$this->dispatch('delete_init_script', $this->script);
|
|
} catch (Exception $e) {
|
|
return handleError($e, $this);
|
|
}
|
|
}
|
|
}
|