add: full multi-tenancy control

This commit is contained in:
Cauê Faleiros
2026-02-02 15:31:15 -03:00
commit c6ec92802b
1711 changed files with 258106 additions and 0 deletions

View File

@@ -0,0 +1,50 @@
<?php
namespace Webkul\Installer\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Event;
use Illuminate\Support\Str;
use Webkul\Installer\Helpers\DatabaseManager;
class CanInstall
{
/**
* Handles Requests if application is already installed then redirect to dashboard else to installer.
*/
public function handle(Request $request, Closure $next): mixed
{
if (Str::contains($request->getPathInfo(), '/install')) {
if ($this->isAlreadyInstalled() && ! $request->ajax()) {
return redirect()->route('admin.dashboard.index');
}
} else {
if (! $this->isAlreadyInstalled()) {
return redirect()->route('installer.index');
}
}
return $next($request);
}
/**
* Check if application is already installed.
*/
public function isAlreadyInstalled(): bool
{
if (file_exists(storage_path('installed'))) {
return true;
}
if (app(DatabaseManager::class)->isInstalled()) {
touch(storage_path('installed'));
Event::dispatch('krayin.installed');
return true;
}
return false;
}
}

View File

@@ -0,0 +1,27 @@
<?php
namespace Webkul\Installer\Http\Middleware;
use Closure;
class Locale
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @return mixed
*/
public function handle($request, Closure $next)
{
if ($localeCode = $request->query('locale')) {
app()->setLocale($localeCode);
session()->put('installer_locale', $localeCode);
} else {
app()->setLocale(session()->get('installer_locale') ?? config('app.locale'));
}
return $next($request);
}
}