3
0
mirror of https://github.com/snipe/snipe-it.git synced 2026-08-18 11:15:42 +00:00
Files
snipe-it/routes/web/users.php

161 lines
3.9 KiB
PHP

<?php
use App\Http\Controllers\Users;
use Illuminate\Support\Facades\Route;
use Tabuna\Breadcrumbs\Trail;
// User Management
Route::group(['prefix' => 'users', 'middleware' => ['auth']], function () {
Route::get(
'ldap',
[
Users\LDAPImportController::class,
'create',
]
)->name('ldap/user')
->breadcrumbs(fn (Trail $trail) => $trail->parent('users.index')
->push(trans('general.ldap_user_sync'), route('ldap/user')));
Route::post(
'ldap',
[
Users\LDAPImportController::class,
'store',
]
);
Route::get(
'export',
[
Users\UsersController::class,
'getExportUserCsv',
]
)->name('users.export');
Route::get(
'{user}/clone',
[
Users\UsersController::class,
'getClone',
]
)->name('users.clone.show')->withTrashed();
Route::post(
'{user}/clone',
[
Users\UsersController::class,
'postCreate',
]
)->name('users.clone.store')->withTrashed();
Route::post(
'{user}/restore',
[
Users\UsersController::class,
'getRestore',
]
)->name('users.restore.store')->withTrashed();
Route::post(
'{userId}/password',
[
Users\UsersController::class,
'sendPasswordReset',
]
)->name('users.password');
Route::get(
'{userId}/print',
[
Users\UsersController::class,
'printInventory',
]
)->name('users.print');
Route::post(
'{userId}/email',
[
Users\UsersController::class,
'emailAssetList',
]
)->name('users.email');
Route::post(
'{user}/acceptance-reminder',
[
Users\UsersController::class,
'resendAcceptanceReminder',
]
)->name('users.acceptance_reminder')->withTrashed();
Route::post(
'{user}/impersonate',
[
Users\ImpersonateController::class,
'start',
]
)->name('users.impersonate.start');
Route::post(
'impersonate/stop',
[
Users\ImpersonateController::class,
'stop',
]
)->name('users.impersonate.stop');
Route::post(
'bulkedit',
[
Users\BulkUsersController::class,
'edit',
]
)->name('users/bulkedit')
->breadcrumbs(function (Trail $trail) {
// Single POST endpoint fans out to several bulk-action confirmation
// views (edit, delete, merge, print). Pick the breadcrumb label to
// match the action the caller submitted so the user sees the same
// wording on the confirmation page and in the crumb.
$label = match (request()->input('bulk_actions')) {
'edit' => trans('general.bulk_edit'),
'delete' => trans('general.bulk_checkin_delete'),
'merge' => trans('general.merge_users'),
'print' => trans('admin/users/general.print_assigned'),
default => trans('general.bulk_actions'),
};
return $trail->parent('users.index')->push($label, route('users.index'));
});
Route::post(
'merge',
[
Users\BulkUsersController::class,
'merge',
]
)->name('users.merge.save');
Route::post(
'bulksave',
[
Users\BulkUsersController::class,
'destroy',
]
)->name('users/bulksave');
Route::post(
'bulkeditsave',
[
Users\BulkUsersController::class,
'update',
]
)->name('users/bulkeditsave');
});
Route::resource('users', Users\UsersController::class, [
'middleware' => ['auth'],
])->withTrashed();