69 lines
2.5 KiB
PHP
69 lines
2.5 KiB
PHP
<?php
|
||
|
||
use Illuminate\Support\Facades\Route;
|
||
use App\Http\Controllers\ProfileController;
|
||
use App\Http\Controllers\CalendarController;
|
||
use App\Http\Controllers\EventController;
|
||
use App\Http\Controllers\DavController;
|
||
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken;
|
||
|
||
/*
|
||
|--------------------------------------------------------------------------
|
||
| Public pages
|
||
|--------------------------------------------------------------------------
|
||
*/
|
||
|
||
Route::view('/', 'welcome');
|
||
|
||
/*
|
||
|--------------------------------------------------------------------------
|
||
| Breeze starter‑kit pages
|
||
|--------------------------------------------------------------------------
|
||
*/
|
||
|
||
Route::view('/dashboard', 'dashboard')
|
||
->middleware(['auth', 'verified'])
|
||
->name('dashboard');
|
||
|
||
Route::middleware('auth')->group(function () {
|
||
/* User profile (generated by Breeze) */
|
||
Route::get ('/profile', [ProfileController::class, 'edit' ])->name('profile.edit');
|
||
Route::patch ('/profile', [ProfileController::class, 'update'])->name('profile.update');
|
||
Route::delete('/profile', [ProfileController::class, 'destroy'])->name('profile.destroy');
|
||
|
||
/* Calendars CRUD */
|
||
Route::resource('calendars', CalendarController::class);
|
||
|
||
/* Nested Events CRUD */
|
||
Route::prefix('calendars/{calendar}')
|
||
->name('calendars.')
|
||
->group(function () {
|
||
Route::get ('events/create', [EventController::class, 'create'])->name('events.create');
|
||
Route::post('events', [EventController::class, 'store' ])->name('events.store');
|
||
Route::get ('events/{event}/edit', [EventController::class, 'edit' ])->name('events.edit');
|
||
Route::put ('events/{event}', [EventController::class, 'update'])->name('events.update');
|
||
});
|
||
});
|
||
|
||
/* Breeze auth routes (login, register, password reset, etc.) */
|
||
require __DIR__.'/auth.php';
|
||
|
||
/*
|
||
|--------------------------------------------------------------------------
|
||
| SabreDAV endpoint (CalDAV + CardDAV)
|
||
|--------------------------------------------------------------------------
|
||
| Leave this outside the auth middleware; the SabreLaravelAuthPlugin handles
|
||
| authentication for DAV clients.
|
||
*/
|
||
Route::match(
|
||
[
|
||
'GET', 'HEAD', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS',
|
||
'PROPFIND', 'PROPPATCH', 'REPORT', 'MKCOL',
|
||
'COPY', 'MOVE', 'LOCK', 'UNLOCK',
|
||
],
|
||
'/dav/{path?}',
|
||
DavController::class
|
||
)
|
||
->withoutMiddleware([VerifyCsrfToken::class]) // disable CSRF check
|
||
->where('path', '.*');
|