validate([ 'name' => 'required|max:255', 'url' => 'required|unique:tenants|regex:/^[a-z0-9]{8,30}$/i' ]); $tenant = new Tenant(); $tenant->name = $validated["name"]; $tenant->url = $validated["url"]; $tenant->template = "default"; $tenant->owner = Auth::user()->id; $tenant->saveOrFail(); $this->switchTenantById($tenant->id); return redirect("/d"); } public function switchTenant($url, Request $request) { $tenant = Tenant::getByUrl($url); if($tenant->owner == Auth::id()) { $this->switchTenantById($tenant->id); return Redirect::back(); } else { return Redirect::back()->with(["msg" => "No Access to given Tenant"]); } } private function switchTenantById($id) { session(["current_tenant_id" => $id]); } public function watermarkView() { return view("tenant.watermark"); } public function watermarkSave(Request $request) { $validated = $request->validate([ 'files.0' => 'required|image' ]); $path = $validated["files"][0]->store("watermark/".session("current_tenant_id")); $tenant = Tenant::query()->where("id", "=", session("current_tenant_id"))->firstOrFail(); $oldImage = Image::query()->where("id", "=", $tenant->watermark)->first(); if(!is_null($oldImage)) { Storage::disk($image->driver)->delete($image->path); $oldImage->deleted_at = date("Y-m-d H:i:s"); $oldImage->saveOrFail(); } $image = new Image(); $image->path = $path; $image->driver = env('FILESYSTEM_DRIVER', 'local'); $image->filename = $validated["files"][0]->getClientOriginalName(); $image->gallery = null; $image->size = $validated["files"][0]->getSize(); $image->typ = "watermark"; $image->saveOrFail(); $tenant->watermark = $image->id; $tenant->saveOrFail(); return \redirect("/s/watermark"); } }