* Check user permissions on the routes #508 * Formatting
This commit is contained in:
@@ -24,6 +24,9 @@
|
|||||||
- name: fares
|
- name: fares
|
||||||
display_name: Fares
|
display_name: Fares
|
||||||
description: Create/edit fares
|
description: Create/edit fares
|
||||||
|
- name: files
|
||||||
|
display_name: Files
|
||||||
|
description: Manage the files available
|
||||||
- name: finances
|
- name: finances
|
||||||
display_name: Finances
|
display_name: Finances
|
||||||
description: Create/view finance related items
|
description: Create/view finance related items
|
||||||
|
|||||||
+103
-72
@@ -13,172 +13,203 @@ Route::group(
|
|||||||
],
|
],
|
||||||
static function () {
|
static function () {
|
||||||
// CRUD for airlines
|
// CRUD for airlines
|
||||||
Route::resource('airlines', 'AirlinesController');
|
Route::resource('airlines', 'AirlinesController')->middleware('ability:admin,airlines');
|
||||||
|
|
||||||
// CRUD for roles
|
// CRUD for roles
|
||||||
Route::resource('roles', 'RolesController');
|
Route::resource('roles', 'RolesController')->middleware('role:admin');
|
||||||
|
|
||||||
Route::get('airports/export', 'AirportController@export')->name('airports.export');
|
Route::get('airports/export', 'AirportController@export')
|
||||||
Route::match(['get', 'post', 'put'], 'airports/fuel', 'AirportController@fuel');
|
->name('airports.export')
|
||||||
|
->middleware('ability:admin,airports');
|
||||||
|
|
||||||
Route::match(['get', 'post'], 'airports/import', 'AirportController@import')->name(
|
Route::match(['get', 'post', 'put'], 'airports/fuel', 'AirportController@fuel')
|
||||||
'airports.import'
|
->middleware('ability:admin,airports');
|
||||||
);
|
|
||||||
|
Route::match(['get', 'post'], 'airports/import', 'AirportController@import')
|
||||||
|
->name('airports.import')->middleware('ability:admin,airports');
|
||||||
|
|
||||||
Route::match(
|
Route::match(
|
||||||
['get', 'post', 'put', 'delete'],
|
['get', 'post', 'put', 'delete'],
|
||||||
'airports/{id}/expenses',
|
'airports/{id}/expenses',
|
||||||
'AirportController@expenses'
|
'AirportController@expenses'
|
||||||
);
|
)->middleware('ability:admin,airports');
|
||||||
|
|
||||||
Route::resource('airports', 'AirportController');
|
Route::resource('airports', 'AirportController')->middleware('ability:admin,airports');
|
||||||
|
|
||||||
// Awards
|
// Awards
|
||||||
Route::resource('awards', 'AwardController');
|
Route::resource('awards', 'AwardController')->middleware('ability:admin,awards');
|
||||||
|
|
||||||
// aircraft and fare associations
|
// aircraft and fare associations
|
||||||
Route::get('aircraft/export', 'AircraftController@export')->name('aircraft.export');
|
Route::get('aircraft/export', 'AircraftController@export')
|
||||||
|
->name('aircraft.export')
|
||||||
|
->middleware('ability:admin,aircraft');
|
||||||
|
|
||||||
Route::match(['get', 'post'], 'aircraft/import', 'AircraftController@import')->name(
|
Route::match(['get', 'post'], 'aircraft/import', 'AircraftController@import')
|
||||||
'aircraft.import'
|
->name('aircraft.import')->middleware('ability:admin,aircraft');
|
||||||
);
|
|
||||||
|
|
||||||
Route::match(
|
Route::match(
|
||||||
['get', 'post', 'put', 'delete'],
|
['get', 'post', 'put', 'delete'],
|
||||||
'aircraft/{id}/expenses',
|
'aircraft/{id}/expenses',
|
||||||
'AircraftController@expenses'
|
'AircraftController@expenses'
|
||||||
);
|
)->middleware('ability:admin,aircraft');
|
||||||
|
|
||||||
Route::resource('aircraft', 'AircraftController');
|
Route::resource('aircraft', 'AircraftController')->middleware('ability:admin,aircraft');
|
||||||
|
|
||||||
// expenses
|
// expenses
|
||||||
Route::get('expenses/export', 'ExpenseController@export')->name('expenses.export');
|
Route::get('expenses/export', 'ExpenseController@export')
|
||||||
|
->name('expenses.export')
|
||||||
|
->middleware('ability:admin,finances');
|
||||||
|
|
||||||
Route::match(['get', 'post'], 'expenses/import', 'ExpenseController@import')->name(
|
Route::match(['get', 'post'], 'expenses/import', 'ExpenseController@import')
|
||||||
'expenses.import'
|
->name('expenses.import')
|
||||||
);
|
->middleware('ability:admin,finances');
|
||||||
|
|
||||||
Route::resource('expenses', 'ExpenseController');
|
Route::resource('expenses', 'ExpenseController')->middleware('ability:admin,finances');
|
||||||
|
|
||||||
// fares
|
// fares
|
||||||
Route::get('fares/export', 'FareController@export')->name('fares.export');
|
Route::get('fares/export', 'FareController@export')
|
||||||
|
->name('fares.export')
|
||||||
|
->middleware('ability:admin,finances');
|
||||||
|
|
||||||
Route::match(['get', 'post'], 'fares/import', 'FareController@import')->name(
|
Route::match(['get', 'post'], 'fares/import', 'FareController@import')
|
||||||
'fares.import'
|
->name('fares.import')->middleware('ability:admin,finances');
|
||||||
);
|
|
||||||
|
|
||||||
Route::resource('fares', 'FareController');
|
Route::resource('fares', 'FareController')->middleware('ability:admin,finances');
|
||||||
|
|
||||||
// files
|
// files
|
||||||
Route::post('files', 'FileController@store')->name('files.store');
|
Route::post('files', 'FileController@store')
|
||||||
Route::delete('files/{id}', 'FileController@destroy')->name('files.delete');
|
->name('files.store')
|
||||||
|
->middleware('ability:admin,files');
|
||||||
|
|
||||||
|
Route::delete('files/{id}', 'FileController@destroy')
|
||||||
|
->name('files.delete')
|
||||||
|
->middleware('ability:admin,files');
|
||||||
|
|
||||||
// finances
|
// finances
|
||||||
Route::resource('finances', 'FinanceController');
|
Route::resource('finances', 'FinanceController')->middleware('ability:admin,finances');
|
||||||
|
|
||||||
// flights and aircraft associations
|
// flights and aircraft associations
|
||||||
Route::get('flights/export', 'FlightController@export')->name('flights.export');
|
Route::get('flights/export', 'FlightController@export')
|
||||||
|
->name('flights.export')
|
||||||
|
->middleware('ability:admin,flights');
|
||||||
|
|
||||||
Route::match(['get', 'post'], 'flights/import', 'FlightController@import')->name(
|
Route::match(['get', 'post'], 'flights/import', 'FlightController@import')
|
||||||
'flights.import'
|
->name('flights.import')
|
||||||
);
|
->middleware('ability:admin,flights');
|
||||||
|
|
||||||
Route::match(
|
Route::match(
|
||||||
['get', 'post', 'put', 'delete'],
|
['get', 'post', 'put', 'delete'],
|
||||||
'flights/{id}/fares',
|
'flights/{id}/fares',
|
||||||
'FlightController@fares'
|
'FlightController@fares'
|
||||||
);
|
)->middleware('ability:admin,flights');
|
||||||
|
|
||||||
Route::match(
|
Route::match(
|
||||||
['get', 'post', 'put', 'delete'],
|
['get', 'post', 'put', 'delete'],
|
||||||
'flights/{id}/fields',
|
'flights/{id}/fields',
|
||||||
'FlightController@field_values'
|
'FlightController@field_values'
|
||||||
);
|
)->middleware('ability:admin,flights');
|
||||||
|
|
||||||
Route::match(
|
Route::match(
|
||||||
['get', 'post', 'put', 'delete'],
|
['get', 'post', 'put', 'delete'],
|
||||||
'flights/{id}/subfleets',
|
'flights/{id}/subfleets',
|
||||||
'FlightController@subfleets'
|
'FlightController@subfleets'
|
||||||
);
|
)->middleware('ability:admin,flights');
|
||||||
|
|
||||||
Route::resource('flights', 'FlightController');
|
Route::resource('flights', 'FlightController')
|
||||||
|
->middleware('ability:admin,flights');
|
||||||
|
|
||||||
Route::resource('flightfields', 'FlightFieldController');
|
Route::resource('flightfields', 'FlightFieldController')
|
||||||
|
->middleware('ability:admin,flights');
|
||||||
|
|
||||||
// pirep related routes
|
// pirep related routes
|
||||||
Route::get('pireps/fares', 'PirepController@fares');
|
Route::get('pireps/fares', 'PirepController@fares')->middleware('ability:admin,pireps');
|
||||||
Route::get('pireps/pending', 'PirepController@pending');
|
Route::get('pireps/pending', 'PirepController@pending')->middleware('ability:admin,pireps');
|
||||||
Route::resource('pireps', 'PirepController');
|
Route::resource('pireps', 'PirepController')->middleware('ability:admin,pireps');
|
||||||
Route::match(['get', 'post', 'delete'], 'pireps/{id}/comments', 'PirepController@comments');
|
|
||||||
Route::match(['post', 'put'], 'pireps/{id}/status', 'PirepController@status')->name(
|
|
||||||
'pirep.status'
|
|
||||||
);
|
|
||||||
|
|
||||||
Route::resource('pirepfields', 'PirepFieldController');
|
Route::match(['get', 'post', 'delete'], 'pireps/{id}/comments', 'PirepController@comments')
|
||||||
|
->middleware('ability:admin,pireps');
|
||||||
|
|
||||||
|
Route::match(['post', 'put'], 'pireps/{id}/status', 'PirepController@status')
|
||||||
|
->name('pirep.status')
|
||||||
|
->middleware('ability:admin,pireps');
|
||||||
|
|
||||||
|
Route::resource('pirepfields', 'PirepFieldController')
|
||||||
|
->middleware('ability:admin,pireps');
|
||||||
|
|
||||||
// rankings
|
// rankings
|
||||||
Route::resource('ranks', 'RankController');
|
Route::resource('ranks', 'RankController')->middleware('ability:admin,ranks');
|
||||||
Route::match(
|
Route::match(
|
||||||
['get', 'post', 'put', 'delete'],
|
['get', 'post', 'put', 'delete'],
|
||||||
'ranks/{id}/subfleets',
|
'ranks/{id}/subfleets',
|
||||||
'RankController@subfleets'
|
'RankController@subfleets'
|
||||||
);
|
)->middleware('ability:admin,ranks');
|
||||||
|
|
||||||
// settings
|
// settings
|
||||||
Route::match(['get'], 'settings', 'SettingsController@index');
|
Route::match(['get'], 'settings', 'SettingsController@index')
|
||||||
Route::match(['post', 'put'], 'settings', 'SettingsController@update')->name(
|
->middleware('ability:admin,settings');
|
||||||
'settings.update'
|
|
||||||
);
|
Route::match(['post', 'put'], 'settings', 'SettingsController@update')
|
||||||
|
->name('settings.update')
|
||||||
|
->middleware('ability:admin,settings');
|
||||||
|
|
||||||
// maintenance
|
// maintenance
|
||||||
Route::match(['get'], 'maintenance', 'MaintenanceController@index')->name(
|
Route::match(['get'], 'maintenance', 'MaintenanceController@index')
|
||||||
'maintenance.index'
|
->name('maintenance.index')
|
||||||
);
|
->middleware('ability:admin,maintenance');
|
||||||
Route::match(['post'], 'maintenance', 'MaintenanceController@cache')->name(
|
|
||||||
'maintenance.cache'
|
Route::match(['post'], 'maintenance', 'MaintenanceController@cache')
|
||||||
);
|
->name('maintenance.cache')
|
||||||
|
->middleware('ability:admin,maintenance');
|
||||||
|
|
||||||
// subfleet
|
// subfleet
|
||||||
Route::get('subfleets/export', 'SubfleetController@export')->name('subfleets.export');
|
Route::get('subfleets/export', 'SubfleetController@export')
|
||||||
Route::match(['get', 'post'], 'subfleets/import', 'SubfleetController@import')->name(
|
->name('subfleets.export')
|
||||||
'subfleets.import'
|
->middleware('ability:admin,fleet');
|
||||||
);
|
|
||||||
|
Route::match(['get', 'post'], 'subfleets/import', 'SubfleetController@import')
|
||||||
|
->name('subfleets.import')
|
||||||
|
->middleware('ability:admin,fleet');
|
||||||
|
|
||||||
Route::match(
|
Route::match(
|
||||||
['get', 'post', 'put', 'delete'],
|
['get', 'post', 'put', 'delete'],
|
||||||
'subfleets/{id}/expenses',
|
'subfleets/{id}/expenses',
|
||||||
'SubfleetController@expenses'
|
'SubfleetController@expenses'
|
||||||
);
|
)->middleware('ability:admin,fleet');
|
||||||
|
|
||||||
Route::match(
|
Route::match(
|
||||||
['get', 'post', 'put', 'delete'],
|
['get', 'post', 'put', 'delete'],
|
||||||
'subfleets/{id}/fares',
|
'subfleets/{id}/fares',
|
||||||
'SubfleetController@fares'
|
'SubfleetController@fares'
|
||||||
);
|
)->middleware('ability:admin,fleet');
|
||||||
|
|
||||||
Route::match(
|
Route::match(
|
||||||
['get', 'post', 'put', 'delete'],
|
['get', 'post', 'put', 'delete'],
|
||||||
'subfleets/{id}/ranks',
|
'subfleets/{id}/ranks',
|
||||||
'SubfleetController@ranks'
|
'SubfleetController@ranks'
|
||||||
);
|
)->middleware('ability:admin,fleet');
|
||||||
|
|
||||||
Route::resource('subfleets', 'SubfleetController');
|
Route::resource('subfleets', 'SubfleetController')->middleware('ability:admin,fleet');
|
||||||
|
|
||||||
Route::resource('users', 'UserController');
|
Route::resource('users', 'UserController')->middleware('ability:admin,users');
|
||||||
Route::get(
|
Route::get(
|
||||||
'users/{id}/regen_apikey',
|
'users/{id}/regen_apikey',
|
||||||
'UserController@regen_apikey'
|
'UserController@regen_apikey'
|
||||||
)->name('users.regen_apikey');
|
)->name('users.regen_apikey')->middleware('ability:admin,users');
|
||||||
|
|
||||||
// defaults
|
// defaults
|
||||||
Route::get('', ['uses' => 'DashboardController@index'])->middleware('update_pending');
|
Route::get('', ['uses' => 'DashboardController@index'])
|
||||||
Route::get('/', ['uses' => 'DashboardController@index'])->middleware('update_pending');
|
->middleware('update_pending', 'ability:admin,admin-access');
|
||||||
|
|
||||||
|
Route::get('/', ['uses' => 'DashboardController@index'])
|
||||||
|
->middleware('update_pending', 'ability:admin,admin-access');
|
||||||
|
|
||||||
|
Route::get('dashboard', ['uses' => 'DashboardController@index', 'name' => 'dashboard'])
|
||||||
|
->middleware('update_pending', 'ability:admin,admin-access');
|
||||||
|
|
||||||
Route::get('dashboard', ['uses' => 'DashboardController@index', 'name' => 'dashboard']);
|
|
||||||
Route::match(
|
Route::match(
|
||||||
['get', 'post', 'delete'],
|
['get', 'post', 'delete'],
|
||||||
'dashboard/news',
|
'dashboard/news',
|
||||||
['uses' => 'DashboardController@news']
|
['uses' => 'DashboardController@news']
|
||||||
)->name('dashboard.news');
|
)->name('dashboard.news')->middleware('update_pending', 'ability:admin,admin-access');
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|||||||
+27
-2
@@ -168,8 +168,33 @@ return [
|
|||||||
'middleware' => [
|
'middleware' => [
|
||||||
'register' => true,
|
'register' => true,
|
||||||
'handling' => 'redirect',
|
'handling' => 'redirect',
|
||||||
'params' => '/login',
|
/**
|
||||||
|
* Handlers for the unauthorized method in the middlewares.
|
||||||
|
* The name of the handler must be the same as the handling.
|
||||||
|
*/
|
||||||
|
'handlers' => [
|
||||||
|
/**
|
||||||
|
* Aborts the execution with a 403 code and allows you to provide the response text
|
||||||
|
*/
|
||||||
|
'abort' => [
|
||||||
|
'code' => 403,
|
||||||
|
'message' => 'User does not have any of the necessary access rights.',
|
||||||
|
],
|
||||||
|
/**
|
||||||
|
* Redirects the user to the given url.
|
||||||
|
* If you want to flash a key to the session,
|
||||||
|
* you can do it by setting the key and the content of the message
|
||||||
|
* If the message content is empty it won't be added to the redirection.
|
||||||
|
*/
|
||||||
|
'redirect' => [
|
||||||
|
'url' => '/',
|
||||||
|
'message' => [
|
||||||
|
'key' => 'flash_notification.message',
|
||||||
|
'content' => 'User does not have any of the necessary access rights.',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'params' => '/login',
|
||||||
],
|
],
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
Reference in New Issue
Block a user