From fb2e94c52a8a07c49e1978d85de8935cd11c5855 Mon Sep 17 00:00:00 2001 From: Martin Folkerts Date: Wed, 26 Mar 2025 20:42:37 +0100 Subject: [PATCH] added method to convert projectname to valid dir name; --- laravel_app/app/Livewire/Projects/ProjectManager.php | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/laravel_app/app/Livewire/Projects/ProjectManager.php b/laravel_app/app/Livewire/Projects/ProjectManager.php index bd08415..cc05e0f 100644 --- a/laravel_app/app/Livewire/Projects/ProjectManager.php +++ b/laravel_app/app/Livewire/Projects/ProjectManager.php @@ -6,6 +6,7 @@ use App\Models\ProjectEmailRecipient; use App\Rules\HarvestFile; use Illuminate\Support\Facades\Validator; +use Illuminate\Support\Str; use Illuminate\Validation\Rule; use Livewire\Component; use Livewire\WithFileUploads; @@ -87,11 +88,19 @@ public function createProject() ])->validate(); $project = Project::create([ 'name' => $this->formData['name'], - 'download_path' => $this->formData['name'] + 'download_path' => $this->makeValidDirectoryName($this->formData['name']) ]); return redirect()->route('project.show',[$project->name,'settings']); } + private function makeValidDirectoryName($string) + { + return Str::of($string) + ->replaceMatches('/[^a-zA-Z0-9_-]/', '_') // Replace invalid characters + ->trim() // Remove leading/trailing spaces + ->lower(); // Convert to lowercase + } + public function saveProject() { $this->resetErrorBag();