mirror of
https://github.com/snipe/snipe-it.git
synced 2026-02-04 16:45:34 +00:00
Merge branch 'develop' into feature/8709-bulk-deletion-of-asset-categories-suppliers-manufacturers
This commit is contained in:
125
routes/api.php
125
routes/api.php
@ -40,6 +40,13 @@ Route::group(['prefix' => 'v1', 'middleware' => ['api', 'api-throttle:api']], fu
|
||||
]
|
||||
)->name('api.assets.requested');
|
||||
|
||||
Route::get('eulas',
|
||||
[
|
||||
Api\ProfileController::class,
|
||||
'eulas'
|
||||
]
|
||||
)->name('api.self.eulas');
|
||||
|
||||
Route::post('request/{asset}', [Api\CheckoutRequest::class, 'store'])->name('api.assets.requests.store');
|
||||
Route::post('request/{asset}/cancel', [Api\CheckoutRequest::class, 'destroy'])->name('api.assets.requests.destroy');
|
||||
|
||||
@ -549,35 +556,6 @@ Route::group(['prefix' => 'v1', 'middleware' => ['api', 'api-throttle:api']], fu
|
||||
]
|
||||
)->name('api.assets.restore');
|
||||
|
||||
Route::post('{asset}/files',
|
||||
[
|
||||
Api\AssetFilesController::class,
|
||||
'store'
|
||||
]
|
||||
)->name('api.assets.files.store');
|
||||
|
||||
Route::get('{asset}/files',
|
||||
[
|
||||
Api\AssetFilesController::class,
|
||||
'list'
|
||||
]
|
||||
)->name('api.assets.files.index');
|
||||
|
||||
Route::get('{asset_id}/file/{file_id}',
|
||||
[
|
||||
Api\AssetFilesController::class,
|
||||
'show'
|
||||
]
|
||||
)->name('api.assets.files.show');
|
||||
|
||||
Route::delete('{asset_id}/file/{file_id}',
|
||||
[
|
||||
Api\AssetFilesController::class,
|
||||
'destroy'
|
||||
]
|
||||
)->name('api.assets.files.destroy');
|
||||
|
||||
|
||||
|
||||
/** Begin assigned routes */
|
||||
Route::get('{asset}/assigned/assets',
|
||||
@ -625,7 +603,7 @@ Route::group(['prefix' => 'v1', 'middleware' => ['api', 'api-throttle:api']], fu
|
||||
* Asset maintenances API routes
|
||||
*/
|
||||
Route::resource('maintenances',
|
||||
Api\AssetMaintenancesController::class,
|
||||
Api\MaintenancesController::class,
|
||||
['names' => [
|
||||
'index' => 'api.maintenances.index',
|
||||
'show' => 'api.maintenances.show',
|
||||
@ -846,33 +824,6 @@ Route::group(['prefix' => 'v1', 'middleware' => ['api', 'api-throttle:api']], fu
|
||||
]
|
||||
)->name('api.models.restore');
|
||||
|
||||
Route::post('{model_id}/files',
|
||||
[
|
||||
Api\AssetModelFilesController::class,
|
||||
'store'
|
||||
]
|
||||
)->name('api.models.files.store');
|
||||
|
||||
Route::get('{model_id}/files',
|
||||
[
|
||||
Api\AssetModelFilesController::class,
|
||||
'list'
|
||||
]
|
||||
)->name('api.models.files.index');
|
||||
|
||||
Route::get('{model_id}/file/{file_id}',
|
||||
[
|
||||
Api\AssetModelFilesController::class,
|
||||
'show'
|
||||
]
|
||||
)->name('api.models.files.show');
|
||||
|
||||
Route::delete('{model_id}/file/{file_id}',
|
||||
[
|
||||
Api\AssetModelFilesController::class,
|
||||
'destroy'
|
||||
]
|
||||
)->name('api.models.files.destroy');
|
||||
});
|
||||
|
||||
Route::resource('models',
|
||||
@ -1080,6 +1031,13 @@ Route::group(['prefix' => 'v1', 'middleware' => ['api', 'api-throttle:api']], fu
|
||||
]
|
||||
)->name('api.users.selectlist');
|
||||
|
||||
Route::post('ldapsync',
|
||||
[
|
||||
Api\UsersController::class,
|
||||
'syncLdapUsers'
|
||||
]
|
||||
)->name('api.users.ldapsync');
|
||||
|
||||
Route::post('two_factor_reset',
|
||||
[
|
||||
Api\UsersController::class,
|
||||
@ -1094,6 +1052,14 @@ Route::group(['prefix' => 'v1', 'middleware' => ['api', 'api-throttle:api']], fu
|
||||
]
|
||||
)->name('api.users.me');
|
||||
|
||||
Route::get('{user}/eulas',
|
||||
[
|
||||
Api\UsersController::class,
|
||||
'eulas'
|
||||
]
|
||||
)->name('api.user.eulas');
|
||||
|
||||
|
||||
Route::get('list/{status?}',
|
||||
[
|
||||
Api\UsersController::class,
|
||||
@ -1129,12 +1095,6 @@ Route::group(['prefix' => 'v1', 'middleware' => ['api', 'api-throttle:api']], fu
|
||||
]
|
||||
)->name('api.users.licenselist');
|
||||
|
||||
Route::post('{user}/upload',
|
||||
[
|
||||
Api\UsersController::class,
|
||||
'postUpload'
|
||||
]
|
||||
)->name('api.users.uploads');
|
||||
|
||||
Route::post('{user}/restore',
|
||||
[
|
||||
@ -1350,5 +1310,44 @@ Route::group(['prefix' => 'v1', 'middleware' => ['api', 'api-throttle:api']], fu
|
||||
])->name('api.assets.labels');
|
||||
// end generate label routes
|
||||
|
||||
/**
|
||||
* Uploaded files API routes
|
||||
*/
|
||||
|
||||
// List files
|
||||
Route::get('{object_type}/{id}/files',
|
||||
[
|
||||
Api\UploadedFilesController::class,
|
||||
'index'
|
||||
]
|
||||
)->name('api.files.index')
|
||||
->where(['object_type' => 'accessories|assets|components|consumables|hardware|licenses|locations|maintenances|models|users']);
|
||||
|
||||
// Get a file
|
||||
Route::get('{object_type}/{id}/files/{file_id}',
|
||||
[
|
||||
Api\UploadedFilesController::class,
|
||||
'show'
|
||||
]
|
||||
)->name('api.files.show')
|
||||
->where(['object_type' => 'accessories|assets|components|consumables|hardware|licenses|locations|maintenances|models|users']);
|
||||
|
||||
// Upload files(s)
|
||||
Route::post('{object_type}/{id}/files',
|
||||
[
|
||||
Api\UploadedFilesController::class,
|
||||
'store'
|
||||
]
|
||||
)->name('api.files.store')
|
||||
->where(['object_type' => 'accessories|assets|components|consumables|hardware|licenses|locations|maintenances|models|users']);
|
||||
|
||||
// Delete files(s)
|
||||
Route::delete('{object_type}/{id}/files/{file_id}/delete',
|
||||
[
|
||||
Api\UploadedFilesController::class,
|
||||
'destroy'
|
||||
]
|
||||
)->name('api.files.destroy')
|
||||
->where(['object_type' => 'accessories|assets|components|consumables|hardware|licenses|locations|maintenances|models|users']);
|
||||
|
||||
}); // end API routes
|
||||
|
||||
@ -16,7 +16,7 @@ use App\Http\Controllers\DepreciationsController;
|
||||
use App\Http\Controllers\GroupsController;
|
||||
use App\Http\Controllers\HealthController;
|
||||
use App\Http\Controllers\LabelsController;
|
||||
use App\Http\Controllers\LocationsController;
|
||||
use App\Http\Controllers\UploadedFilesController;
|
||||
use App\Http\Controllers\ManufacturersController;
|
||||
use App\Http\Controllers\ModalController;
|
||||
use App\Http\Controllers\NotesController;
|
||||
@ -57,7 +57,12 @@ Route::group(['middleware' => 'auth'], function () {
|
||||
[LabelsController::class, 'show']
|
||||
)->where('labelName', '.*')->name('labels.show');
|
||||
|
||||
Route::get('/test-email', function () {
|
||||
$mailable = new \App\Mail\CheckoutComponentMail(
|
||||
|
||||
);
|
||||
return $mailable->render(); // dumps HTML
|
||||
});
|
||||
/*
|
||||
* Manufacturers
|
||||
*/
|
||||
@ -385,7 +390,6 @@ Route::group(['prefix' => 'account', 'middleware' => ['auth']], function () {
|
||||
$trail->parent('home')
|
||||
->push(trans('general.requested_assets_menu'), route('account.requested')));
|
||||
|
||||
// Profile
|
||||
Route::get(
|
||||
'requestable-assets', [ViewAssetsController::class, 'getRequestableIndex'])
|
||||
->name('requestable-assets')
|
||||
@ -403,6 +407,16 @@ Route::group(['prefix' => 'account', 'middleware' => ['auth']], function () {
|
||||
Route::post('request/{itemType}/{itemId}/{cancel_by_admin?}/{requestingUser?}', [ViewAssetsController::class, 'getRequestItem'])
|
||||
->name('account/request-item');
|
||||
|
||||
Route::get(
|
||||
'display-sig/{filename}',
|
||||
[ProfileController::class, 'displaySig']
|
||||
)->name('profile.signature.view');
|
||||
|
||||
Route::get(
|
||||
'stored-eula-file/{filename}',
|
||||
[ProfileController::class, 'getStoredEula']
|
||||
)->name('profile.storedeula.download');
|
||||
|
||||
// Account Dashboard
|
||||
Route::get('/', [ViewAssetsController::class, 'getIndex'])
|
||||
->name('account');
|
||||
@ -469,18 +483,18 @@ Route::group(['prefix' => 'reports', 'middleware' => ['auth']], function () {
|
||||
->push(trans('general.depreciation_report'), route('reports.audit')));
|
||||
|
||||
Route::get(
|
||||
'asset_maintenances', [ReportsController::class, 'getAssetMaintenancesReport'])
|
||||
->name('reports/asset_maintenances')
|
||||
'maintenances', [ReportsController::class, 'getMaintenancesReport'])
|
||||
->name('ui.reports.maintenances')
|
||||
->breadcrumbs(fn (Trail $trail) =>
|
||||
$trail->parent('home')
|
||||
->push(trans('general.asset_maintenance_report'), route('reports/asset_maintenances')));
|
||||
->push(trans('general.asset_maintenance_report'), route('ui.reports.maintenances')));
|
||||
|
||||
// Is this still used?
|
||||
Route::get('export/asset_maintenances', [ReportsController::class, 'exportAssetMaintenancesReport'])
|
||||
->name('reports/export/asset_maintenances')
|
||||
Route::get('export/maintenances', [ReportsController::class, 'exportMaintenancesReport'])
|
||||
->name('reports/export/maintenances')
|
||||
->breadcrumbs(fn (Trail $trail) =>
|
||||
$trail->parent('home')
|
||||
->push(trans('general.asset_maintenance_report'), route('reports/export/asset_maintenances')));
|
||||
->push(trans('general.asset_maintenance_report'), route('reports/export/maintenances')));
|
||||
|
||||
Route::get('licenses', [ReportsController::class, 'getLicenseReport'])
|
||||
->name('reports/licenses')
|
||||
@ -688,6 +702,39 @@ Route::group(['middleware' => 'web'], function () {
|
||||
'logout',
|
||||
[LoginController::class, 'logout']
|
||||
)->name('logout.post');
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Uploaded files API routes
|
||||
*/
|
||||
|
||||
// Get a file
|
||||
Route::get('{object_type}/{id}/files/{file_id}',
|
||||
[
|
||||
UploadedFilesController::class,
|
||||
'show'
|
||||
]
|
||||
)->name('ui.files.show')
|
||||
->where(['object_type' => 'assets|maintenances|hardware|models|users|locations|accessories|consumables|licenses|components']);
|
||||
|
||||
// Upload files(s)
|
||||
Route::post('{object_type}/{id}/files',
|
||||
[
|
||||
UploadedFilesController::class,
|
||||
'store'
|
||||
]
|
||||
)->name('ui.files.store')
|
||||
->where(['object_type' => 'assets|maintenances|hardware|models|users|locations|accessories|consumables|licenses|components']);
|
||||
|
||||
// Delete files(s)
|
||||
Route::delete('{object_type}/{id}/files/{file_id}/delete',
|
||||
[
|
||||
UploadedFilesController::class,
|
||||
'destroy'
|
||||
]
|
||||
)->name('ui.files.destroy')
|
||||
->where(['object_type' => 'assets|hardware|models|users|locations|accessories|consumables|licenses|components']);
|
||||
});
|
||||
|
||||
|
||||
|
||||
@ -27,21 +27,6 @@ Route::group(['prefix' => 'accessories', 'middleware' => ['auth']], function ()
|
||||
[Accessories\AccessoryCheckinController::class, 'store']
|
||||
)->name('accessories.checkin.store');
|
||||
|
||||
Route::post(
|
||||
'{accessoryId}/upload',
|
||||
[Accessories\AccessoriesFilesController::class, 'store']
|
||||
)->name('upload/accessory');
|
||||
|
||||
Route::delete(
|
||||
'{accessoryId}/deletefile/{fileId}',
|
||||
[Accessories\AccessoriesFilesController::class, 'destroy']
|
||||
)->name('delete/accessoryfile');
|
||||
|
||||
Route::get(
|
||||
'{accessoryId}/showfile/{fileId}/{download?}',
|
||||
[Accessories\AccessoriesFilesController::class, 'show']
|
||||
)->name('show.accessoryfile');
|
||||
|
||||
Route::get('{accessory}/clone',
|
||||
[Accessories\AccessoriesController::class, 'getClone']
|
||||
)->name('clone/accessories');
|
||||
|
||||
@ -25,20 +25,6 @@ Route::group(['prefix' => 'components', 'middleware' => ['auth']], function () {
|
||||
[Components\ComponentCheckinController::class, 'store']
|
||||
)->name('components.checkin.store');
|
||||
|
||||
Route::post(
|
||||
'{componentId}/upload',
|
||||
[Components\ComponentsFilesController::class, 'store']
|
||||
)->name('upload/component');
|
||||
|
||||
Route::delete(
|
||||
'{componentId}/deletefile/{fileId}',
|
||||
[Components\ComponentsFilesController::class, 'destroy']
|
||||
)->name('delete/componentfile');
|
||||
|
||||
Route::get(
|
||||
'{componentId}/showfile/{fileId}/{download?}',
|
||||
[Components\ComponentsFilesController::class, 'show']
|
||||
)->name('show.componentfile');
|
||||
|
||||
});
|
||||
|
||||
|
||||
@ -16,20 +16,6 @@ Route::group(['prefix' => 'consumables', 'middleware' => ['auth']], function ()
|
||||
[Consumables\ConsumableCheckoutController::class, 'store']
|
||||
)->name('consumables.checkout.store');
|
||||
|
||||
Route::post(
|
||||
'{consumableId}/upload',
|
||||
[Consumables\ConsumablesFilesController::class, 'store']
|
||||
)->name('upload/consumable');
|
||||
|
||||
Route::delete(
|
||||
'{consumableId}/deletefile/{fileId}',
|
||||
[Consumables\ConsumablesFilesController::class, 'destroy']
|
||||
)->name('delete/consumablefile');
|
||||
|
||||
Route::get(
|
||||
'{consumableId}/showfile/{fileId}/{download?}',
|
||||
[Consumables\ConsumablesFilesController::class, 'show']
|
||||
)->name('show.consumablefile');
|
||||
|
||||
Route::get('{consumable}/clone',
|
||||
[Consumables\ConsumablesController::class, 'clone']
|
||||
|
||||
@ -1,11 +1,10 @@
|
||||
<?php
|
||||
|
||||
use App\Http\Controllers\AssetMaintenancesController;
|
||||
use App\Http\Controllers\MaintenancesController;
|
||||
use App\Http\Controllers\Assets\AssetsController;
|
||||
use App\Http\Controllers\Assets\BulkAssetsController;
|
||||
use App\Http\Controllers\Assets\AssetCheckoutController;
|
||||
use App\Http\Controllers\Assets\AssetCheckinController;
|
||||
use App\Http\Controllers\Assets\AssetFilesController;
|
||||
use App\Models\Setting;
|
||||
use Tabuna\Breadcrumbs\Trail;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
@ -141,18 +140,6 @@ Route::group(
|
||||
[AssetsController::class, 'getRestore']
|
||||
)->name('restore/hardware')->withTrashed();
|
||||
|
||||
Route::post('{asset}/upload',
|
||||
[AssetFilesController::class, 'store']
|
||||
)->name('upload/asset')->withTrashed();
|
||||
|
||||
Route::get('{asset}/showfile/{fileId}/{download?}',
|
||||
[AssetFilesController::class, 'show']
|
||||
)->name('show/assetfile')->withTrashed();
|
||||
|
||||
Route::delete('{asset}/showfile/{fileId}/delete',
|
||||
[AssetFilesController::class, 'destroy']
|
||||
)->name('delete/assetfile')->withTrashed();
|
||||
|
||||
Route::post(
|
||||
'bulkedit',
|
||||
[BulkAssetsController::class, 'edit']
|
||||
@ -195,7 +182,7 @@ Route::resource('hardware',
|
||||
|
||||
// Asset Maintenances
|
||||
Route::resource('maintenances',
|
||||
AssetMaintenancesController::class, [
|
||||
MaintenancesController::class, [
|
||||
'parameters' => ['maintenance' => 'maintenance', 'asset' => 'asset_id'],
|
||||
]);
|
||||
|
||||
|
||||
@ -47,19 +47,6 @@ Route::group(['prefix' => 'licenses', 'middleware' => ['auth']], function () {
|
||||
[Licenses\LicenseCheckoutController::class, 'bulkCheckout']
|
||||
)->name('licenses.bulkcheckout');
|
||||
|
||||
Route::post(
|
||||
'{licenseId}/upload',
|
||||
[Licenses\LicenseFilesController::class, 'store']
|
||||
)->name('upload/license');
|
||||
|
||||
Route::delete(
|
||||
'{licenseId}/deletefile/{fileId}',
|
||||
[Licenses\LicenseFilesController::class, 'destroy']
|
||||
)->name('delete/licensefile');
|
||||
Route::get(
|
||||
'{licenseId}/showfile/{fileId}/{download?}',
|
||||
[Licenses\LicenseFilesController::class, 'show']
|
||||
)->name('show.licensefile');
|
||||
Route::get(
|
||||
'export',
|
||||
[
|
||||
|
||||
@ -1,24 +1,10 @@
|
||||
<?php
|
||||
|
||||
use App\Http\Controllers\LocationsController;
|
||||
use App\Http\Controllers\LocationsFilesController;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
Route::group(['prefix' => 'locations', 'middleware' => ['auth']], function () {
|
||||
|
||||
Route::post('{location}/upload',
|
||||
[LocationsFilesController::class, 'store']
|
||||
)->name('upload/locations')->withTrashed();
|
||||
|
||||
Route::get('{location}/showfile/{fileId}/{download?}',
|
||||
[LocationsFilesController::class, 'show']
|
||||
)->name('show/locationsfile')->withTrashed();
|
||||
|
||||
Route::delete('{location}/showfile/{fileId}/delete',
|
||||
[LocationsFilesController::class, 'destroy']
|
||||
)->name('delete/locationsfile')->withTrashed();
|
||||
|
||||
|
||||
Route::post(
|
||||
'bulkdelete',
|
||||
[LocationsController::class, 'postBulkDelete']
|
||||
@ -34,7 +20,6 @@ Route::group(['prefix' => 'locations', 'middleware' => ['auth']], function () {
|
||||
[LocationsController::class, 'postRestore']
|
||||
)->name('locations.restore');
|
||||
|
||||
|
||||
Route::get('{locationId}/clone',
|
||||
[LocationsController::class, 'getClone']
|
||||
)->name('clone/location');
|
||||
|
||||
@ -1,7 +1,6 @@
|
||||
<?php
|
||||
|
||||
use App\Http\Controllers\AssetModelsController;
|
||||
use App\Http\Controllers\AssetModelsFilesController;
|
||||
use App\Http\Controllers\BulkAssetModelsController;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
use Tabuna\Breadcrumbs\Trail;
|
||||
@ -11,18 +10,6 @@ use Tabuna\Breadcrumbs\Trail;
|
||||
|
||||
Route::group(['prefix' => 'models', 'middleware' => ['auth']], function () {
|
||||
|
||||
Route::post('{model}/upload',
|
||||
[AssetModelsFilesController::class, 'store']
|
||||
)->name('upload/models')->withTrashed();
|
||||
|
||||
Route::get('{model}/showfile/{fileId}/{download?}',
|
||||
[AssetModelsFilesController::class, 'show']
|
||||
)->name('show/modelfile')->withTrashed();
|
||||
|
||||
Route::delete('{model}/showfile/{fileId}/delete',
|
||||
[AssetModelsFilesController::class, 'destroy']
|
||||
)->name('delete/modelfile')->withTrashed();
|
||||
|
||||
Route::get(
|
||||
'{model}/clone',
|
||||
[
|
||||
|
||||
@ -1,7 +1,6 @@
|
||||
<?php
|
||||
|
||||
use App\Http\Controllers\Users;
|
||||
use App\Http\Controllers\Users\UserFilesController;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
// User Management
|
||||
@ -64,30 +63,6 @@ Route::group(['prefix' => 'users', 'middleware' => ['auth']], function () {
|
||||
]
|
||||
)->name('unsuspend/user');
|
||||
|
||||
Route::post(
|
||||
'{user}/upload',
|
||||
[
|
||||
Users\UserFilesController::class,
|
||||
'store'
|
||||
]
|
||||
)->name('upload/user')->withTrashed();
|
||||
|
||||
Route::delete(
|
||||
'{userId}/deletefile/{fileId}',
|
||||
[
|
||||
Users\UserFilesController::class,
|
||||
'destroy'
|
||||
]
|
||||
)->name('userfile.destroy');
|
||||
|
||||
Route::get(
|
||||
'{user}/showfile/{fileId}',
|
||||
[
|
||||
Users\UserFilesController::class,
|
||||
'show'
|
||||
]
|
||||
)->name('show/userfile')->withTrashed();
|
||||
|
||||
Route::post(
|
||||
'{userId}/password',
|
||||
[
|
||||
|
||||
Reference in New Issue
Block a user