Lae/routes/web.php

114 lines
5.8 KiB
PHP

<?php
use App\Http\Controllers\Web\AffiliateController;
use App\Http\Controllers\Web\Auth\ConfirmPasswordController;
use App\Http\Controllers\Web\Auth\ForgotPasswordController;
use App\Http\Controllers\Web\Auth\LoginController;
use App\Http\Controllers\Web\Auth\RegisterController;
use App\Http\Controllers\Web\Auth\ResetPasswordController;
use App\Http\Controllers\Web\Auth\VerificationController;
use App\Http\Controllers\Web\AuthController;
use App\Http\Controllers\Web\BalanceController;
use App\Http\Controllers\Web\HostController;
use App\Http\Controllers\Web\MaintenanceController;
use App\Http\Controllers\Web\RealNameController;
use App\Http\Controllers\Web\SubscriptionController;
use App\Http\Controllers\Web\TransferController;
use Illuminate\Support\Facades\Route;
Route::get('/', [AuthController::class, 'index'])->middleware('banned')->name('index');
Route::prefix('auth')->group(function () {
// Route::get('login', [LoginController::class, 'showLoginForm'])->name('login');
// Route::post('login', [LoginController::class, 'login']);
Route::post('logout', [LoginController::class, 'logout'])->name('logout');
Route::post('exists', [LoginController::class, 'userIfExists'])->name('login.exists-if-user');
Route::get('register', [RegisterController::class, 'showRegistrationForm'])->name('register');
Route::post('register', [RegisterController::class, 'register']);
Route::get('password/reset', [ForgotPasswordController::class, 'showLinkRequestForm'])->name('password.request');
Route::post('password/email', [ForgotPasswordController::class, 'sendResetLinkEmail'])->name('password.email');
Route::get('password/reset/{token}', [ResetPasswordController::class, 'showResetForm'])->name('password.reset');
Route::post('password/reset', [ResetPasswordController::class, 'reset'])->name('password.update');
Route::get('password/confirm', [ConfirmPasswordController::class, 'showConfirmForm'])->name('password.confirm');
Route::post('password/confirm', [ConfirmPasswordController::class, 'confirm']);
Route::get('email/verify', [VerificationController::class, 'show'])->name('verification.notice');
Route::get('email/verify/{id}/{hash}', [VerificationController::class, 'verify'])->name('verification.verify');
Route::post('email/resend', [VerificationController::class, 'resend'])->name('verification.resend');
Route::get('token/{token}', [AuthController::class, 'fastLogin'])->name('auth.fast-login');
Route::get('redirect', [AuthController::class, 'redirect'])->name('login');
Route::get('callback', [AuthController::class, 'callback'])->name('callback');
});
Route::middleware(['auth:web', 'banned', 'verified'])->group(
function () {
/* Start 账户区域 */
Route::withoutMiddleware(['banned', 'verified'])->group(
function () {
Route::view('banned', 'banned')->withoutMiddleware(['banned', 'verified'])->name('banned');
}
);
Route::get('confirm_redirect', [AuthController::class, 'confirm_redirect'])->name('confirm_redirect');
Route::post('newToken', [AuthController::class, 'newToken'])->name('token.new');
Route::delete('deleteAll', [AuthController::class, 'deleteAll'])->name('token.delete_all');
Route::withoutMiddleware('verified')->patch('user', [AuthController::class, 'update'])->name('users.update');
Route::post('sudo/exit', [AuthController::class, 'exitSudo'])->name('sudo.exit');
/* End 账户区域 */
/* Start 主机 */
Route::resource('hosts', HostController::class)->only(['index', 'update', 'destroy']);
Route::post('hosts/{host}/renew', [HostController::class, 'renew'])->name('hosts.renew');
/* End 主机 */
/* Start 财务 */
Route::get('transactions', [BalanceController::class, 'transactions'])->name('transactions');
Route::resource('balances', BalanceController::class)->except('show');
Route::get('/balances/{balance:order_id}', [BalanceController::class, 'show'])->withoutMiddleware('auth')->name('balances.show');
Route::middleware('password.confirm')->group(
function () {
Route::get('transfer', [TransferController::class, 'index'])->name('transfer');
Route::post('transfer', [TransferController::class, 'transfer']);
}
);
/* End 财务 */
/* Start 实名认证 */
Route::get('real_name', [RealNameController::class, 'create'])->name('real_name.create');
Route::post('real_name', [RealNameController::class, 'store'])->name('real_name.store');
/* End 实名认证 */
/* Start 推介 */
Route::middleware('resource_owner:affiliates')->resource('affiliates', AffiliateController::class)->only(['index', 'create', 'store', 'destroy']);
Route::middleware('guest')->withoutMiddleware(['verified', 'auth:web'])->get('affiliates/{affiliate:uuid}', [AffiliateController::class, 'show'])->name('affiliates.show');
/* End 推介 */
/* Start 订阅 */
Route::middleware('resource_owner:subscription')->resource('subscriptions', SubscriptionController::class)->except(['edit']);
/* End 订阅 */
/* Start 匿名登录 */
Route::get('auth_request/{auth_request}', [AuthController::class, 'showAuthRequest'])->withoutMiddleware(['auth:web', 'verified'])->name('auth_request.show');
Route::post('auth_request', [AuthController::class, 'storeAuthRequest'])->name('auth_request.store');
/* End 匿名登录 */
}
);
// 联系我们
Route::view('contact', 'contact')->name('contact');
// 支付回调
Route::match(['get', 'post'], '/balances/notify/{payment}', [BalanceController::class, 'notify'])->name('balances.notify');
// 维护
Route::get('maintenance', MaintenanceController::class)->name('maintenances');