Add more permissions
This commit is contained in:
+55
-46
@@ -284,7 +284,7 @@
|
||||
})->name('search');
|
||||
|
||||
// person
|
||||
Route::put('person/{person:uuid}', [PersonController::class, 'update'])->name('person.update');
|
||||
Route::put('person/{person:uuid}', [PersonController::class, 'update'])->name('person.update')->middleware('permission:person-edit');
|
||||
Route::post('person/{person:uuid}/address', [PersonController::class, 'createAddress'])->name('person.address.create');
|
||||
Route::put('person/{person:uuid}/address/{address_id}', [PersonController::class, 'updateAddress'])->name('person.address.update');
|
||||
Route::delete('person/{person:uuid}/address/{address_id}', [PersonController::class, 'deleteAddress'])->name('person.address.delete');
|
||||
@@ -302,10 +302,14 @@
|
||||
Route::get('clients', [ClientController::class, 'index'])->name('client');
|
||||
Route::get('clients/{client:uuid}', [ClientController::class, 'show'])->name('client.show');
|
||||
Route::get('clients/{client:uuid}/contracts', [ClientController::class, 'contracts'])->name('client.contracts');
|
||||
Route::post('clients', [ClientController::class, 'store'])->name('client.store');
|
||||
Route::put('clients/{client:uuid}', [ClientController::class, 'update'])->name('client.update');
|
||||
Route::post('clients/{client:uuid}/emergency-person', [ClientController::class, 'emergencyCreatePerson'])->name('client.emergencyPerson');
|
||||
|
||||
Route::middleware('permission:client-edit')->group( function() {
|
||||
Route::post('clients', [ClientController::class, 'store'])->name('client.store');
|
||||
Route::put('clients/{client:uuid}', [ClientController::class, 'update'])->name('client.update');
|
||||
Route::post('clients/{client:uuid}/emergency-person', [ClientController::class, 'emergencyCreatePerson'])->name('client.emergencyPerson');
|
||||
|
||||
});
|
||||
|
||||
// client-case
|
||||
Route::get('client-cases', [ClientCaseContoller::class, 'index'])->name('clientCase');
|
||||
Route::get('client-cases/{client_case:uuid}', [ClientCaseContoller::class, 'show'])->name('clientCase.show');
|
||||
@@ -314,17 +318,21 @@
|
||||
Route::post('client-cases', [ClientCaseContoller::class, 'store'])->name('clientCase.store');
|
||||
Route::post('client-cases/{client_case:uuid}/emergency-person', [ClientCaseContoller::class, 'emergencyCreatePerson'])->name('clientCase.emergencyPerson');
|
||||
// client-case / contract
|
||||
Route::post('client-cases/{client_case:uuid}/contract', [ClientCaseContoller::class, 'storeContract'])->name('clientCase.contract.store');
|
||||
Route::put('client-cases/{client_case:uuid}/contract/{uuid}', [ClientCaseContoller::class, 'updateContract'])->name('clientCase.contract.update');
|
||||
Route::get('client-cases/{client_case:uuid}/contract/{uuid}/debug-accounts', [ClientCaseContoller::class, 'debugContractAccounts'])->name('clientCase.contract.debugAccounts');
|
||||
Route::delete('client-cases/{client_case:uuid}/contract/{uuid}', [ClientCaseContoller::class, 'deleteContract'])->name('clientCase.contract.delete');
|
||||
|
||||
Route::middleware('permission:contract-edit')->group( function () {
|
||||
Route::post('client-cases/{client_case:uuid}/contract', [ClientCaseContoller::class, 'storeContract'])->name('clientCase.contract.store');
|
||||
Route::put('client-cases/{client_case:uuid}/contract/{uuid}', [ClientCaseContoller::class, 'updateContract'])->name('clientCase.contract.update');
|
||||
Route::delete('client-cases/{client_case:uuid}/contract/{uuid}', [ClientCaseContoller::class, 'deleteContract'])->name('clientCase.contract.delete');
|
||||
});
|
||||
|
||||
// client-case / contract / objects
|
||||
Route::post('client-cases/{client_case:uuid}/contract/{uuid}/objects', [CaseObjectController::class, 'store'])->name('clientCase.contract.object.store');
|
||||
Route::put('client-cases/{client_case:uuid}/objects/{id}', [CaseObjectController::class, 'update'])->name('clientCase.object.update');
|
||||
Route::delete('client-cases/{client_case:uuid}/objects/{id}', [CaseObjectController::class, 'destroy'])->name('clientCase.object.delete');
|
||||
// client-case / activity
|
||||
Route::post('client-cases/{client_case:uuid}/activity', [ClientCaseContoller::class, 'storeActivity'])->name('clientCase.activity.store');
|
||||
Route::delete('client-cases/{client_case:uuid}/activity/{activity}', [ClientCaseContoller::class, 'deleteActivity'])->name('clientCase.activity.delete');
|
||||
Route::delete('client-cases/{client_case:uuid}/activity/{activity}', [ClientCaseContoller::class, 'deleteActivity'])->name('clientCase.activity.delete')->middleware("permission:activity-edit");
|
||||
// client-case / segments
|
||||
Route::post('client-cases/{client_case:uuid}/segments', [ClientCaseContoller::class, 'attachSegment'])->name('clientCase.segments.attach');
|
||||
// client-case / documents
|
||||
@@ -385,45 +393,46 @@
|
||||
// segments index overview
|
||||
Route::get('segments', [SegmentController::class, 'index'])->name('segments.index');
|
||||
Route::get('segments/{segment}', [SegmentController::class, 'show'])->name('segments.show');
|
||||
|
||||
Route::middleware("permission:manage-imports")->group( function () {
|
||||
// imports
|
||||
Route::get('imports/create', [ImportController::class, 'create'])->name('imports.create');
|
||||
Route::get('imports', [ImportController::class, 'index'])->name('imports.index');
|
||||
Route::get('imports/import/{import:uuid}', [ImportController::class, 'show'])->name('imports.continue');
|
||||
Route::post('imports', [ImportController::class, 'store'])->name('imports.store');
|
||||
Route::get('imports/{import}/columns', [ImportController::class, 'columns'])->name('imports.columns');
|
||||
Route::post('imports/{import}/process', [ImportController::class, 'process'])->name('imports.process');
|
||||
Route::post('imports/{import}/mappings', [ImportController::class, 'saveMappings'])->name('imports.mappings.save');
|
||||
Route::get('imports/{import}/mappings', [ImportController::class, 'getMappings'])->name('imports.mappings.get');
|
||||
Route::get('imports/{import}/events', [ImportController::class, 'getEvents'])->name('imports.events');
|
||||
Route::get('imports/{import}/missing-keyref-rows', [ImportController::class, 'missingKeyrefRows'])->name('imports.missing-keyref-rows');
|
||||
Route::get('imports/{import}/missing-keyref-csv', [ImportController::class, 'exportMissingKeyrefCsv'])->name('imports.missing-keyref-csv');
|
||||
Route::get('imports/{import}/preview', [ImportController::class, 'preview'])->name('imports.preview');
|
||||
Route::get('imports/{import}/missing-contracts', [ImportController::class, 'missingContracts'])->name('imports.missing-contracts');
|
||||
Route::post('imports/{import}/options', [ImportController::class, 'updateOptions'])->name('imports.options');
|
||||
// Generic simulation endpoint (new) – provides projected effects for first N rows regardless of payments template
|
||||
Route::get('imports/{import}/simulate', [ImportController::class, 'simulate'])->name('imports.simulate');
|
||||
// Backwards compatible payments simulation route (legacy name) – now proxies to generic simulate method
|
||||
Route::get('imports/{import}/simulate-payments', [ImportController::class, 'simulatePayments'])->name('imports.simulatePayments');
|
||||
|
||||
// imports
|
||||
Route::get('imports/create', [ImportController::class, 'create'])->name('imports.create');
|
||||
Route::get('imports', [ImportController::class, 'index'])->name('imports.index');
|
||||
Route::get('imports/import/{import:uuid}', [ImportController::class, 'show'])->name('imports.continue');
|
||||
Route::post('imports', [ImportController::class, 'store'])->name('imports.store');
|
||||
Route::get('imports/{import}/columns', [ImportController::class, 'columns'])->name('imports.columns');
|
||||
Route::post('imports/{import}/process', [ImportController::class, 'process'])->name('imports.process');
|
||||
Route::post('imports/{import}/mappings', [ImportController::class, 'saveMappings'])->name('imports.mappings.save');
|
||||
Route::get('imports/{import}/mappings', [ImportController::class, 'getMappings'])->name('imports.mappings.get');
|
||||
Route::get('imports/{import}/events', [ImportController::class, 'getEvents'])->name('imports.events');
|
||||
Route::get('imports/{import}/missing-keyref-rows', [ImportController::class, 'missingKeyrefRows'])->name('imports.missing-keyref-rows');
|
||||
Route::get('imports/{import}/missing-keyref-csv', [ImportController::class, 'exportMissingKeyrefCsv'])->name('imports.missing-keyref-csv');
|
||||
Route::get('imports/{import}/preview', [ImportController::class, 'preview'])->name('imports.preview');
|
||||
Route::get('imports/{import}/missing-contracts', [ImportController::class, 'missingContracts'])->name('imports.missing-contracts');
|
||||
Route::post('imports/{import}/options', [ImportController::class, 'updateOptions'])->name('imports.options');
|
||||
// Generic simulation endpoint (new) – provides projected effects for first N rows regardless of payments template
|
||||
Route::get('imports/{import}/simulate', [ImportController::class, 'simulate'])->name('imports.simulate');
|
||||
// Backwards compatible payments simulation route (legacy name) – now proxies to generic simulate method
|
||||
Route::get('imports/{import}/simulate-payments', [ImportController::class, 'simulatePayments'])->name('imports.simulatePayments');
|
||||
|
||||
// import templates
|
||||
Route::get('imports/templates', [ImportTemplateController::class, 'index'])->name('importTemplates.index');
|
||||
Route::get('imports/templates/create', [ImportTemplateController::class, 'create'])->name('importTemplates.create');
|
||||
Route::post('imports/templates', [ImportTemplateController::class, 'store'])->name('importTemplates.store');
|
||||
Route::get('imports/templates/edit/{template:uuid}', [ImportTemplateController::class, 'edit'])->name('importTemplates.edit');
|
||||
Route::put('imports/templates/{template:uuid}', [ImportTemplateController::class, 'update'])->name('importTemplates.update');
|
||||
Route::delete('imports/templates/{template:uuid}', [ImportTemplateController::class, 'destroy'])->name('importTemplates.destroy');
|
||||
Route::post('imports/templates/{template:uuid}/mappings', [ImportTemplateController::class, 'addMapping'])->name('importTemplates.mappings.add');
|
||||
Route::post('imports/templates/{template:uuid}/mappings/bulk', [ImportTemplateController::class, 'bulkAddMappings'])->name('importTemplates.mappings.bulk');
|
||||
Route::put('imports/templates/{template:uuid}/mappings/{mapping}', [ImportTemplateController::class, 'updateMapping'])->name('importTemplates.mappings.update');
|
||||
Route::delete('imports/templates/{template:uuid}/mappings/{mapping}', [ImportTemplateController::class, 'deleteMapping'])->name('importTemplates.mappings.delete');
|
||||
Route::post('imports/templates{template:uuid}/mappings/reorder', [ImportTemplateController::class, 'reorderMappings'])->name('importTemplates.mappings.reorder');
|
||||
Route::post('imports/templates/{template}/apply/{import}', [ImportTemplateController::class, 'applyToImport'])->name('importTemplates.apply');
|
||||
// Delete an unfinished import
|
||||
Route::delete('imports/{import}', [ImportController::class, 'destroy'])->name('imports.destroy');
|
||||
// Route::put()
|
||||
// types
|
||||
|
||||
// import templates
|
||||
Route::get('imports/templates', [ImportTemplateController::class, 'index'])->name('importTemplates.index');
|
||||
Route::get('imports/templates/create', [ImportTemplateController::class, 'create'])->name('importTemplates.create');
|
||||
Route::post('imports/templates', [ImportTemplateController::class, 'store'])->name('importTemplates.store');
|
||||
Route::get('imports/templates/edit/{template:uuid}', [ImportTemplateController::class, 'edit'])->name('importTemplates.edit');
|
||||
Route::put('imports/templates/{template:uuid}', [ImportTemplateController::class, 'update'])->name('importTemplates.update');
|
||||
Route::delete('imports/templates/{template:uuid}', [ImportTemplateController::class, 'destroy'])->name('importTemplates.destroy');
|
||||
Route::post('imports/templates/{template:uuid}/mappings', [ImportTemplateController::class, 'addMapping'])->name('importTemplates.mappings.add');
|
||||
Route::post('imports/templates/{template:uuid}/mappings/bulk', [ImportTemplateController::class, 'bulkAddMappings'])->name('importTemplates.mappings.bulk');
|
||||
Route::put('imports/templates/{template:uuid}/mappings/{mapping}', [ImportTemplateController::class, 'updateMapping'])->name('importTemplates.mappings.update');
|
||||
Route::delete('imports/templates/{template:uuid}/mappings/{mapping}', [ImportTemplateController::class, 'deleteMapping'])->name('importTemplates.mappings.delete');
|
||||
Route::post('imports/templates{template:uuid}/mappings/reorder', [ImportTemplateController::class, 'reorderMappings'])->name('importTemplates.mappings.reorder');
|
||||
Route::post('imports/templates/{template}/apply/{import}', [ImportTemplateController::class, 'applyToImport'])->name('importTemplates.apply');
|
||||
// Delete an unfinished import
|
||||
Route::delete('imports/{import}', [ImportController::class, 'destroy'])->name('imports.destroy');
|
||||
// Route::put()
|
||||
// types
|
||||
});
|
||||
// accounts / payments & bookings
|
||||
Route::prefix('accounts/{account}')->name('accounts.')->group(function (): void {
|
||||
Route::get('payments', [AccountPaymentController::class, 'index'])->name('payments.index');
|
||||
|
||||
Reference in New Issue
Block a user