45
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
<?php
|
||||
|
||||
use App\Http\Controllers\Api\SignatureController;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
// Appelé par l'add-in Outlook (jeton Entra NAA en Bearer).
|
||||
Route::prefix('v1')->middleware(['entra.token', 'throttle:signature'])->group(function () {
|
||||
Route::get('/signature', [SignatureController::class, 'show'])->name('api.signature');
|
||||
});
|
||||
@@ -0,0 +1,7 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\Schedule;
|
||||
|
||||
// Synchro incrémentale (delta) toutes les 15 minutes, complète chaque nuit.
|
||||
Schedule::command('signature:sync')->everyFifteenMinutes()->withoutOverlapping(10);
|
||||
Schedule::command('signature:sync --full')->dailyAt('02:30')->withoutOverlapping(60);
|
||||
@@ -0,0 +1,54 @@
|
||||
<?php
|
||||
|
||||
use App\Http\Controllers\Admin\AgentController;
|
||||
use App\Http\Controllers\Admin\AssignmentController;
|
||||
use App\Http\Controllers\Admin\DashboardController;
|
||||
use App\Http\Controllers\Admin\SyncController;
|
||||
use App\Http\Controllers\Admin\TemplateController;
|
||||
use App\Http\Controllers\Auth\EntraLoginController;
|
||||
use App\Http\Controllers\Portal\PortalController;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
Route::redirect('/', '/me');
|
||||
|
||||
// SSO Entra
|
||||
Route::get('/login', [EntraLoginController::class, 'redirect'])->name('login');
|
||||
Route::get('/auth/callback', [EntraLoginController::class, 'callback'])->name('auth.callback');
|
||||
Route::post('/logout', [EntraLoginController::class, 'logout'])->name('logout')->middleware('auth');
|
||||
|
||||
// Portail agent (tout agent synchronisé)
|
||||
Route::middleware('auth')->group(function () {
|
||||
Route::get('/me', PortalController::class)->name('portal.home');
|
||||
});
|
||||
|
||||
// Back-office : réseau interne + rôle éditeur minimum
|
||||
Route::prefix('admin')->middleware(['admin.network', 'auth', 'role:editor'])->name('admin.')->group(function () {
|
||||
Route::get('/', DashboardController::class)->name('dashboard');
|
||||
|
||||
// Templates — éditeur : brouillons ; administrateur : publication, défaut, suppression
|
||||
Route::get('/templates', [TemplateController::class, 'index'])->name('templates.index');
|
||||
Route::get('/templates/create', [TemplateController::class, 'create'])->name('templates.create');
|
||||
Route::post('/templates', [TemplateController::class, 'store'])->name('templates.store');
|
||||
Route::post('/templates/preview', [TemplateController::class, 'preview'])->name('templates.preview');
|
||||
Route::get('/templates/{template}', [TemplateController::class, 'edit'])->name('templates.edit');
|
||||
Route::put('/templates/{template}', [TemplateController::class, 'update'])->name('templates.update');
|
||||
Route::post('/templates/{template}/versions/{version}/restore', [TemplateController::class, 'restore'])->name('templates.restore');
|
||||
|
||||
Route::middleware('role:admin')->group(function () {
|
||||
Route::post('/templates/{template}/publish', [TemplateController::class, 'publish'])->name('templates.publish');
|
||||
Route::post('/templates/{template}/default', [TemplateController::class, 'makeDefault'])->name('templates.default');
|
||||
Route::delete('/templates/{template}', [TemplateController::class, 'destroy'])->name('templates.destroy');
|
||||
|
||||
Route::get('/affectations', [AssignmentController::class, 'index'])->name('assignments.index');
|
||||
Route::post('/affectations', [AssignmentController::class, 'store'])->name('assignments.store');
|
||||
Route::put('/affectations/{assignment}', [AssignmentController::class, 'update'])->name('assignments.update');
|
||||
Route::delete('/affectations/{assignment}', [AssignmentController::class, 'destroy'])->name('assignments.destroy');
|
||||
|
||||
Route::post('/synchro', SyncController::class)->name('sync');
|
||||
});
|
||||
|
||||
// Agents : simulation « qui reçoit quoi » et recherche pour l'aperçu
|
||||
Route::get('/agents', [AgentController::class, 'index'])->name('agents.index');
|
||||
Route::get('/agents/recherche', [AgentController::class, 'lookup'])->name('agents.lookup');
|
||||
Route::get('/agents/{agent}', [AgentController::class, 'show'])->name('agents.show');
|
||||
});
|
||||
Reference in New Issue
Block a user