113 lines
5 KiB
PHP
113 lines
5 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('/{tenant}/docs/{uuid}/download', [DocumentController::class, 'download'])
|
|
->name('docs.download')
|
|
->middleware('signed:relative');
|