143 lines
5.9 KiB
PHP
143 lines
5.9 KiB
PHP
<?php
|
|
|
|
use App\Http\Controllers\Bo\ActivityLogController;
|
|
use App\Http\Controllers\Bo\BackController;
|
|
use App\Http\Controllers\Bo\BannedIpController;
|
|
use App\Http\Controllers\Bo\CodeController;
|
|
use App\Http\Controllers\Bo\FaqQuestionController;
|
|
use App\Http\Controllers\Bo\FaqThemeController;
|
|
use App\Http\Controllers\Bo\InstantWinController;
|
|
use App\Http\Controllers\Bo\PrizeController;
|
|
use App\Http\Controllers\Bo\ProductController;
|
|
use App\Http\Controllers\Bo\RangeController;
|
|
use App\Http\Controllers\Bo\SettingsController;
|
|
use App\Http\Controllers\Bo\StaticPageController;
|
|
use App\Http\Controllers\Bo\UserController;
|
|
use App\Http\Controllers\Bo\ParticipationController;
|
|
use App\Http\Controllers\Bo\TenantController;
|
|
use App\Http\Controllers\Controller;
|
|
use App\Http\Middleware\CheckThemeVersion;
|
|
use Illuminate\Support\Facades\Auth;
|
|
use Illuminate\Support\Facades\Route;
|
|
use Stancl\Tenancy\Middleware\InitializeTenancyByPath;
|
|
|
|
Route::middleware(['back', 'admin-secure'])->name('bo.')->group(function () {
|
|
Route::prefix('bo')->group(function () {
|
|
// * Authenticable routes
|
|
Route::namespace('\App\Http\Controllers\Bo')->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('/', [BackController::class, 'index'])->name('dashboard');
|
|
|
|
// * TENANTS.
|
|
Route::resource('tenants', TenantController::class);
|
|
Route::get('/tenants/{tenant}/duplicate', [TenantController::class, 'duplicate'])
|
|
->name('tenants.duplicate');
|
|
Route::get('/tenants/json/paginate', [TenantController::class, 'jsonPaginateModels'])
|
|
->name('tenants.json-paginate');
|
|
|
|
// * USERS.
|
|
Route::resource('users', UserController::class)->except('show');
|
|
Route::patch('users/{user}/change-published', [
|
|
UserController::class,
|
|
'changePublished'
|
|
])->name('users.change-published');
|
|
Route::get('users/{user}/duplicate', [
|
|
UserController::class,
|
|
'duplicate'
|
|
])->name('users.duplicate');
|
|
});
|
|
|
|
// * Others routes
|
|
Route::post('theme/set', [Controller::class, 'setTheme'])->name('theme.set');
|
|
});
|
|
|
|
Route::middleware([
|
|
'restrict_tenant_access',
|
|
InitializeTenancyByPath::class,
|
|
CheckThemeVersion::class,
|
|
'auth:backend',
|
|
])->prefix('{tenant}/bo')->group(function () {
|
|
// * StaticPages
|
|
Route::resource('pages', StaticPageController::class)
|
|
->names([
|
|
'index' => 'static_pages.index',
|
|
'edit' => 'static_pages.edit',
|
|
'update' => 'static_pages.update',
|
|
])->parameters(['pages' => 'static_page'])
|
|
->withoutMiddleware('htmlsanitize')
|
|
->middleware('htmlsanitize:content')
|
|
->only(['index', 'edit', 'update']);
|
|
|
|
// * RANGES
|
|
Route::resource('ranges', RangeController::class);
|
|
|
|
// * PRODUCTS
|
|
Route::resource('products', ProductController::class);
|
|
|
|
// * FAQ - THEMES
|
|
Route::resource('faq-themes', FaqThemeController::class)->except('show');
|
|
|
|
// * FAQ - QUESTIONS
|
|
Route::resource('faq-questions', FaqQuestionController::class)->except('show')
|
|
->withoutMiddleware('htmlsanitize')
|
|
->middleware('htmlsanitize:answer');
|
|
|
|
// * PRIZES
|
|
Route::resource('prizes', PrizeController::class)
|
|
->withoutMiddleware('htmlsanitize')
|
|
->middleware(['htmlsanitize:arg_content']);
|
|
|
|
// * SETTINGS.
|
|
Route::get('settings', [SettingsController::class, 'edition'])->name('settings.edition');
|
|
Route::resource('settings', SettingsController::class)->only(['update']);
|
|
|
|
// * INSTANT WIN
|
|
Route::prefix('instant-win')->name('instant-win.')->group(function () {
|
|
Route::get('/', [InstantWinController::class, 'index'])->name('index');
|
|
Route::get('generate', [InstantWinController::class, 'generate'])->name('generate');
|
|
});
|
|
|
|
// * PARTICIPATIONS
|
|
Route::prefix('participations')->name('participations.')->group(function () {
|
|
// * WINNERS LIST
|
|
Route::get('winners-list', [ParticipationController::class, 'viewWinnerList'])->name('winners-list');
|
|
Route::get('{participation}/set-comment', [ParticipationController::class, 'setComment'])
|
|
->name('set-comment');
|
|
Route::patch('{participation}/set-comment', [ParticipationController::class, 'setCommentSubmit'])
|
|
->name('set-comment-submit');
|
|
Route::patch('{participation}/change-prize-sent', [ParticipationController::class, 'changePrizeSent'])
|
|
->name('change-prize-sent');
|
|
});
|
|
|
|
// * UNIQUES CODES.
|
|
Route::prefix('codes')->name('codes.')->group(function () {
|
|
Route::get('/', [CodeController::class, 'index'])->name('index');
|
|
Route::post('/', [CodeController::class, 'generate'])->name('generate');
|
|
Route::get('search', [CodeController::class, 'search'])->name('search');
|
|
Route::post('export', [CodeController::class, 'export'])->name('export');
|
|
});
|
|
|
|
// * BANNED IPS
|
|
Route::resource('banned_ips', BannedIpController::class)->except('show');
|
|
|
|
// * ACTIVITY LOGS.
|
|
Route::resource('activity_logs', ActivityLogController::class)->only(['index', 'show']);
|
|
|
|
// * STATISTICS.
|
|
Route::get('/statistics', [BackController::class, 'statistics'])->name('statistics.index');
|
|
});
|
|
});
|