ldc-com-app-bo/routes/web-bo.php

114 lines
5 KiB
PHP
Raw Permalink Normal View History

2023-03-14 14:57:03 +01:00
<?php
2023-03-14 16:17:23 +01:00
use App\Http\Controllers\Bo\AppUserController;
use App\Http\Controllers\Bo\ContactController;
2023-07-17 16:39:18 +02:00
use App\Http\Controllers\Bo\FormularyController;
2023-03-14 14:57:03 +01:00
use App\Http\Controllers\Bo\DashboardController;
2023-03-15 16:04:29 +01:00
use App\Http\Controllers\Bo\DirectoriesController;
2023-03-31 17:38:44 +02:00
use App\Http\Controllers\Bo\DocumentController;
2023-04-17 17:46:20 +02:00
use App\Http\Controllers\Bo\SettingController;
2023-07-13 08:34:54 +00:00
use App\Http\Controllers\Bo\TagController;
2025-05-20 16:20:23 +02:00
use App\Http\Controllers\Bo\TenantController;
use App\Http\Controllers\Bo\UserController;
2023-03-14 14:57:03 +01:00
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Route;
2025-05-20 16:20:23 +02:00
use Stancl\Tenancy\Middleware\InitializeTenancyByPath;
2023-03-14 14:57:03 +01:00
// Redirect front to back.
2025-05-20 16:20:23 +02:00
Route::redirect('/', '/bo');
// Back routes.
Route::middleware(['web', 'admin-secure'])->name('bo.')->group(function () {
2025-05-20 16:20:23 +02:00
Route::prefix('/bo')->group(function () {
// Auth routes.
2025-05-20 16:20:23 +02:00
Route::namespace('\App\Http\Controllers\Bo')->middleware(['throttle:credentials'])->group(function () {
Auth::routes([
'confirm' => false,
'login' => true,
'logout' => true,
'register' => false,
'reset' => false,
'verify' => false
]);
});
// No tenant routes.
Route::middleware(['auth:backend', 'restrict_tenant_access'])->group(function () {
// * HOME
Route::get('/', [DashboardController::class, 'index'])->name('dashboard');
// * TENANTS
2025-05-20 16:20:23 +02:00
Route::resource('tenants', TenantController::class);
Route::get('/tenants/{tenant}/duplicate', [TenantController::class, 'duplicate'])
->name('tenants.duplicate');
// * USERS
Route::resource('users', UserController::class);
Route::get('/users/{user}/duplicate', [UserController::class, 'duplicate'])
->name('users.duplicate');
2025-05-20 16:20:23 +02:00
});
2023-03-14 14:57:03 +01:00
});
// Tenant routes.
Route::middleware([
'restrict_tenant_access',
InitializeTenancyByPath::class
])->prefix('{tenant}/bo')->group(function () {
2025-05-20 16:20:23 +02:00
Route::middleware(['auth:backend'])->group(function () {
// * CONTACTS
Route::resource('contacts', ContactController::class)->only(['index', 'show']);
2023-07-13 08:34:54 +00:00
2025-05-20 16:20:23 +02:00
// * APP_USERS
Route::resource('app_users', AppUserController::class)->except('show');
Route::get('/app_users/{app_user}/duplicate', [AppUserController::class, 'duplicate'])
->name('app_users.duplicate');
Route::post('/app_users/import', [AppUserController::class, 'import'])->name('app_users.import');
Route::patch('/app_users/change-order/{app_user}/{direction}', [AppUserController::class, 'changeOrder'])
2025-05-20 16:20:23 +02:00
->where('direction', 'up|down')
->name('app_users.change-order');
2023-03-31 15:20:10 +02:00
2025-05-20 16:20:23 +02:00
// * DIRECTORIES
Route::resource('directories', DirectoriesController::class)->except('show');
Route::post('/directories/save-order/{directories}', [DirectoriesController::class, 'saveOrder'])
->name('directories.save-order');
Route::post('/directories/need-authorization/{id}', [DirectoriesController::class, 'needAuthorization'])
->name('directories.need-authorization');
2023-03-31 17:38:44 +02:00
2025-05-20 16:20:23 +02:00
// * DOCUMENTS
Route::resource('documents', DocumentController::class)->except('show');
Route::post('/documents/{document}/change-published', [DocumentController::class, 'changePublished'])
->name('documents.change-published');
Route::post('/documents/upload', [DocumentController::class, 'upload'])->name('documents.upload');
Route::patch('/documents/change-order/{document}/{direction}', [DocumentController::class, 'changeOrder'])
->where('direction', 'up|down')
->name('documents.change-order');
2023-04-17 17:46:20 +02:00
2025-05-20 16:20:23 +02:00
// * TAGS
Route::resource('tags', TagController::class)->except('show');
Route::get('/tags/{tag}/duplicate', [TagController::class, 'duplicate'])
->name('tags.duplicate');
2025-05-20 16:20:23 +02:00
Route::patch('/tags/change-order/{tag}/{direction}', [TagController::class, 'changeOrder'])
->where('direction', 'up|down')
->name('tags.change-order');
2023-07-13 08:34:54 +00:00
2025-05-20 16:20:23 +02:00
// * SETTINGS
Route::resource('settings', SettingController::class)->except('show');
2023-07-17 16:39:18 +02:00
2025-05-20 16:20:23 +02:00
// * FORMULARIES
Route::resource('formularies', FormularyController::class)->except('show');
Route::get('/formularies/{formulary}/duplicate', [FormularyController::class, 'duplicate'])
->name('formularies.duplicate');
2025-05-20 16:20:23 +02:00
Route::patch('/formularies/change-order/{formulary}/{direction}', [
FormularyController::class,
'changeOrder'
])->where('direction', 'up|down')
->name('formularies.change-order');
2025-05-20 16:20:23 +02:00
});
});
});
// Public files download.
Route::get('/{tenant}/docs/{uuid}/download', [DocumentController::class, 'download'])
->name('docs.download')
->middleware('signed:relative');