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

113 lines
5.1 KiB
PHP

<?php
use App\Http\Controllers\Bo\AppUserController;
use App\Http\Controllers\Bo\ContactController;
use App\Http\Controllers\Bo\FormularyController;
use App\Http\Controllers\Bo\DashboardController;
use App\Http\Controllers\Bo\DirectoriesController;
use App\Http\Controllers\Bo\DocumentController;
use App\Http\Controllers\Bo\SettingController;
use App\Http\Controllers\Bo\TagController;
use App\Http\Controllers\Bo\TenantController;
use App\Http\Controllers\Bo\UserController;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Route;
use Stancl\Tenancy\Middleware\InitializeTenancyByPath;
// Redirect front to back.
Route::redirect('/', '/bo');
// Back routes.
Route::middleware(['web', 'admin-secure'])->name('bo.')->group(function () {
Route::prefix('/bo')->group(function () {
// Auth routes.
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
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');
});
});
// Tenant routes.
Route::middleware([
'restrict_tenant_access',
InitializeTenancyByPath::class
])->prefix('{tenant}/bo')->group(function () {
Route::middleware(['auth:backend'])->group(function () {
// * CONTACTS
Route::resource('contacts', ContactController::class)->only(['index', 'show']);
// * 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'])
->where('direction', 'up|down')
->name('app_users.change-order');
// * 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');
// * 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');
// * TAGS
Route::resource('tags', TagController::class)->except('show');
Route::get('/tags/{tag}/duplicate', [TagController::class, 'duplicate'])
->name('tags.duplicate');
Route::patch('/tags/change-order/{tag}/{direction}', [TagController::class, 'changeOrder'])
->where('direction', 'up|down')
->name('tags.change-order');
// * SETTINGS
Route::resource('settings', SettingController::class)->except('show');
// * FORMULARIES
Route::resource('formularies', FormularyController::class)->except('show');
Route::get('/formularies/{formulary}/duplicate', [FormularyController::class, 'duplicate'])
->name('formularies.duplicate');
Route::patch('/formularies/change-order/{formulary}/{direction}', [
FormularyController::class,
'changeOrder'
])->where('direction', 'up|down')
->name('formularies.change-order');
});
// * Public files download
Route::get('/docs/{uuid}/download', [DocumentController::class, 'download'])
->name('docs.download')
->middleware('signed');
});
});