Add super-admin Administration section and restructure global vs company settings

- Add Administration sidebar section (super-admin only) with Companies, Users, and Global Settings pages
- Add super-admin middleware, controllers, and API routes under /api/v1/super-admin/
- Allow super-admins to manage all companies and users across tenants
- Add user impersonation with short-lived tokens, audit logging, and UI banner
- Move system-level settings (Mail, PDF, Backup, Update, File Disk) from per-company to Administration > Global Settings
- Convert save_pdf_to_disk from CompanySetting to global Setting
- Add per-company mail configuration overrides (optional, falls back to global)
- Add CompanyMailConfigService to apply company mail config before sending emails
This commit is contained in:
Darko Gjorgjijoski
2026-04-03 10:35:40 +02:00
parent 25986b7bd5
commit 9432da467e
40 changed files with 2324 additions and 91 deletions

View File

@@ -5,6 +5,7 @@ namespace App\Traits;
use App\Models\Address;
use App\Models\CompanySetting;
use App\Models\FileDisk;
use App\Models\Setting;
use Carbon\Carbon;
use Illuminate\Support\Facades\App;
@@ -68,7 +69,7 @@ trait GeneratesPdfTrait
public function generatePDF($collection_name, $file_name, $deleteExistingFile = false)
{
$save_pdf_to_disk = CompanySetting::getSetting('save_pdf_to_disk', $this->company_id);
$save_pdf_to_disk = Setting::getSetting('save_pdf_to_disk') ?? 'NO';
if ($save_pdf_to_disk == 'NO') {
return 0;