124 lines
5 KiB
PHP
124 lines
5 KiB
PHP
<?php
|
|
|
|
use App\Http\Controllers\FileController;
|
|
use App\Http\Controllers\HomeController;
|
|
use App\Http\Controllers\LabelController;
|
|
use App\Http\Controllers\LogController;
|
|
use App\Http\Controllers\MarkerController;
|
|
use App\Http\Controllers\ScheduleMacroController;
|
|
use App\Http\Controllers\ProjectController;
|
|
use App\Http\Controllers\ScheduleController;
|
|
use App\Http\Controllers\SiteController;
|
|
use App\Http\Controllers\TicketController;
|
|
use App\Http\Controllers\UserController;
|
|
use Illuminate\Support\Facades\Auth;
|
|
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('/', [HomeController::class, 'home'])->middleware('guest')->name('home');
|
|
|
|
Route::middleware(['throttle:credentials'])->group(function () {
|
|
// * guest:web middleware specified in AuthController
|
|
Auth::routes([
|
|
'login' => true,
|
|
'logout' => true,
|
|
'register' => false,
|
|
// For resetting passwords.
|
|
'reset' => true,
|
|
// For additional password confirmations.
|
|
'confirm' => true,
|
|
// For email verification.
|
|
'verify' => false
|
|
]);
|
|
});
|
|
|
|
// * Session Ping
|
|
Route::get('/ping', function () {
|
|
if (request()->isJson()) {
|
|
abort(404);
|
|
}
|
|
return auth()->check() ? response()->json() : response()->json([], 401);
|
|
})->withoutMiddleware('auth');
|
|
|
|
Route::middleware(['auth'])->group(function () {
|
|
|
|
// * Macro planning
|
|
Route::get('/macroplanning', [ScheduleMacroController::class, 'show'])->name('macroplanning.show');
|
|
Route::post('/activity', [ScheduleMacroController::class, 'postActivity'])->name('macroplanning.activity');
|
|
|
|
// * Logged user actions
|
|
Route::get('/users/change-password', [UserController::class, 'passwordReset'])->name('users.passwordReset');
|
|
Route::post('/users/change-password', [UserController::class, 'passwordResetSubmit'])
|
|
->name('users.passwordResetSubmit');
|
|
|
|
Route::get('/users/stats', [UserController::class, 'stats'])->name('users.stats');
|
|
|
|
// * Resources
|
|
Route::resource('ticket', TicketController::class)->except(['destroy']);
|
|
Route::resource('users', UserController::class);
|
|
Route::resource(
|
|
'labels',
|
|
LabelController::class
|
|
)->except("show");
|
|
Route::resource('sites', SiteController::class)
|
|
->withoutMiddleware('xss')
|
|
->middleware('xss:description,todo');
|
|
Route::resource('projects', ProjectController::class)
|
|
->withoutMiddleware('xss')
|
|
->middleware('xss:description,todo');
|
|
Route::resource('projects.macro_markers', MarkerController::class)
|
|
->parameters([
|
|
'macro_markers' => 'marker'
|
|
]);
|
|
|
|
// * LOGS and Files
|
|
Route::resource('logs', LogController::class);
|
|
Route::resource('files', FileController::class);
|
|
Route::resource('projects.logs', LogController::class);
|
|
Route::resource('projects.files', FileController::class);
|
|
Route::resource('sites.logs', LogController::class);
|
|
Route::resource('sites.files', FileController::class);
|
|
|
|
// * Ticket
|
|
Route::prefix('/ticket')->name('ticket.')->group(function () {
|
|
Route::post('/{ticket}/assignTo', [TicketController::class, 'assignTo'])
|
|
->middleware('can:assignTo,ticket')
|
|
->name('assignTo');
|
|
Route::post('/{ticket}/reopen', [TicketController::class, 'reopen'])
|
|
->middleware('can:reopen,ticket')
|
|
->name('reopen');
|
|
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');
|
|
Route::put('/{ticket}/message/{message}/update', [TicketController::class, 'updateMessage'])
|
|
->middleware('can:updateMessage,ticket,message')
|
|
->name('message.update');
|
|
});
|
|
|
|
Route::prefix('/schedule')->name('schedule.')->group(function () {
|
|
Route::get('/', [ScheduleController::class, 'index'])->name('index');
|
|
Route::post('/setCellContent', [ScheduleController::class, 'setCellContent'])
|
|
->name('setCellContent');
|
|
Route::post('/eraseCellContent', [ScheduleController::class, 'eraseCellContent'])
|
|
->name('eraseCellContent');
|
|
});
|
|
});
|