diff --git a/app/Actions/Site/CreateSite.php b/app/Actions/Site/CreateSite.php index 195dc26..f2ef934 100755 --- a/app/Actions/Site/CreateSite.php +++ b/app/Actions/Site/CreateSite.php @@ -114,7 +114,7 @@ public static function rules(Server $server, array $input): array 'regex:/^[a-z_][a-z0-9_-]*[a-z0-9]$/', 'min:3', 'max:32', - 'unique:sites,user', + Rule::unique('sites', 'user')->where('server_id', $server->id), Rule::notIn($server->getSshUsers()), ], ]; diff --git a/app/Http/Controllers/API/SiteController.php b/app/Http/Controllers/API/SiteController.php index d872ba1..3f0d832 100644 --- a/app/Http/Controllers/API/SiteController.php +++ b/app/Http/Controllers/API/SiteController.php @@ -52,6 +52,7 @@ public function index(Project $project, Server $server): ResourceCollection #[BodyParam(name: 'branch', description: 'Branch, Required for Sites which support source control', example: 'main')] #[BodyParam(name: 'composer', type: 'boolean', description: 'Run composer if site supports composer', example: true)] #[BodyParam(name: 'version', description: 'Version, if the site type requires a version like PHPMyAdmin', example: '5.2.1')] + #[BodyParam(name: 'user', description: 'user, to isolate the website under a new user')] #[ResponseFromApiResource(SiteResource::class, Site::class)] public function create(Request $request, Project $project, Server $server): SiteResource { diff --git a/app/Web/Pages/Servers/Sites/Index.php b/app/Web/Pages/Servers/Sites/Index.php index 528ff25..37bbf72 100644 --- a/app/Web/Pages/Servers/Sites/Index.php +++ b/app/Web/Pages/Servers/Sites/Index.php @@ -134,9 +134,9 @@ protected function getHeaderActions(): array // WordPress $this->wordpressFields(), TextInput::make('user') - ->label('Username') - ->hintIcon('heroicon-o-information-circle') - ->hintIconTooltip( + ->label('User') + ->placeholder('vito') + ->helperText( 'Optional. If provided, a new user will be created and the site will be owned by this user.' ) ->rules(fn (Get $get) => CreateSite::rules($this->server, $get())['user']),