52 lines
2.1 KiB
PHP
52 lines
2.1 KiB
PHP
<?php
|
|
|
|
use App\Http\Controllers\LoginController;
|
|
use App\Http\Controllers\ProjectController;
|
|
use App\Http\Controllers\TicketController;
|
|
use App\Http\Controllers\UserController;
|
|
use Illuminate\Support\Facades\Route;
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Web Routes
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| Here is where you can register web routes for your application. These
|
|
| routes are loaded by the RouteServiceProvider within a group which
|
|
| contains the "web" middleware group. Now create something great!
|
|
|
|
|
*/
|
|
|
|
Route::get('/', function () {
|
|
if (auth()->check()) {
|
|
return redirect()->route('ticket.index');
|
|
}
|
|
return view('home');
|
|
})->name("home");
|
|
Route::get('/login', [LoginController::class, 'index'])->name('login');
|
|
Route::post('/login', [LoginController::class, 'authenticate'])->name('authenticate');
|
|
Route::middleware(['auth'])->group(function () {
|
|
Route::post('/logout', [LoginController::class, 'logout'])->name('logout');
|
|
// Ticket
|
|
Route::resource('ticket', TicketController::class)->except(['destroy']);
|
|
Route::resource('projects', ProjectController::class);
|
|
Route::resource('users', UserController::class);
|
|
Route::prefix('/ticket')->name('ticket.')->group(function () {
|
|
Route::post('/{ticket}/status', [TicketController::class, 'changeStatus'])
|
|
->middleware('can:changeStatus,ticket')
|
|
->name('changeStatus');
|
|
Route::post('/{ticket}/subscribe', [TicketController::class, 'subscribe'])
|
|
->middleware('can:suscribeToTicket,ticket')
|
|
->name('subscribe');
|
|
Route::put('/{ticket}/archive', [TicketController::class, 'setToArchive'])
|
|
->middleware('can:changeStatus,ticket')
|
|
->name('archive');
|
|
Route::put('/{ticket}/message/create', [TicketController::class, 'createMessage'])
|
|
->middleware('can:createMessage,ticket')
|
|
->name('message.create');
|
|
});
|
|
// Projets
|
|
Route::middleware(['is-admin'])->group(function () {
|
|
Route::resource('project', ProjectController::class)->except('show');
|
|
});
|
|
});
|