61 lines
2.7 KiB
PHP
61 lines
2.7 KiB
PHP
<?php
|
|
|
|
use App\Http\Controllers\ProjectBoardController;
|
|
use App\Http\Controllers\ProjectController;
|
|
use App\Http\Controllers\ProjectSettingsController;
|
|
use App\Http\Controllers\ProjectTemplateController;
|
|
use Illuminate\Support\Facades\Route;
|
|
|
|
Route::prefix('projects')->name('projects.')->group(function (): void {
|
|
Route::get('/', [ProjectController::class, 'index'])->name('index');
|
|
|
|
Route::middleware('can:create-project')->group(function (): void {
|
|
Route::get('create', [ProjectController::class, 'create'])->name('create');
|
|
Route::post('/', [ProjectController::class, 'store'])->name('store');
|
|
});
|
|
|
|
Route::prefix('{project}')
|
|
->group(function (): void {
|
|
Route::middleware('can:view-project,project')->group(function (): void {
|
|
Route::get('/', [ProjectController::class, 'show'])->name('show');
|
|
Route::get('board', [ProjectBoardController::class, 'index'])->name('board.index');
|
|
Route::get('backlog', [ProjectController::class, 'backlog'])->name('backlog.index');
|
|
|
|
Route::middleware('can:create-project')->group(function (): void {
|
|
Route::get('templates/create', [ProjectTemplateController::class, 'create'])->name('templates.create');
|
|
Route::post('templates', [ProjectTemplateController::class, 'store'])->name('templates.store');
|
|
});
|
|
});
|
|
|
|
Route::delete('/', [ProjectController::class, 'destroy'])
|
|
->middleware('can:access-admin')
|
|
->name('destroy');
|
|
|
|
Route::middleware('can:admin-project,project')->group(function (): void {
|
|
Route::get('access', [ProjectSettingsController::class, 'access'])->name('access');
|
|
|
|
Route::prefix('permissions')->name('permissions.')->group(function (): void {
|
|
Route::patch('users/{user}', [ProjectController::class, 'updateUserPermissions'])
|
|
->name('users.update');
|
|
Route::patch('teams/{team}', [ProjectController::class, 'updateTeamPermissions'])
|
|
->name('teams.update');
|
|
});
|
|
});
|
|
|
|
Route::scopeBindings()->group(function (): void {
|
|
Route::prefix('tickets')
|
|
->name('tickets.')
|
|
->group(function (): void {
|
|
require __DIR__.'/project/tickets.php';
|
|
});
|
|
|
|
Route::prefix('settings')
|
|
->name('settings.')
|
|
->middleware('can:admin-project,project')
|
|
->group(function (): void {
|
|
require __DIR__.'/project/settings.php';
|
|
});
|
|
});
|
|
});
|
|
});
|