['web','permission:settings.access'], 'prefix' => 'settings','as'=>'settings.', 'namespace' => 'Modules\Platform\User\Http\Controllers'], function () { Route::get('sharing_rules', ['as' => 'sharing_rules', 'uses' => 'SharingRulesController@index']); }); // Users & Roles are accessible with either full admin settings (cross-company) // or the scoped "user.settings" permission (limited to the current company). Route::group(['middleware' => ['web','permission:admin.settings|user.settings'], 'prefix' => 'settings','as'=>'settings.', 'namespace' => 'Modules\Platform\User\Http\Controllers'], function () { Route::get('/users/restore', ['as' => 'users.restore', 'uses' => 'User\UserController@restore']); Route::post('/users/restore/{id}', ['as' => 'users.restore.post', 'uses' => 'User\UserController@restorePost']); // Import routes must be declared BEFORE Route::resource to avoid {user} wildcard clash Route::get('/users/import/template', ['as' => 'users.import.template', 'uses' => 'User\UserController@importTemplate']); Route::get('/users/import', ['as' => 'users.import', 'uses' => 'User\UserController@importForm']); Route::post('/users/import', ['as' => 'users.import.process', 'uses' => 'User\UserController@importProcess']); Route::resource('users', 'User\UserController', []); Route::resource('roles', 'Roles\RolesController', []); Route::get('/users/ghost-login/{identifier}', ['as' => 'users.login-as', 'uses' => 'User\UserGhostLoginController@login']); Route::post('/users/change-password/{identifier}', ['as' => 'users.change-password', 'uses' => 'User\UserChangePasswordController@changePassword']); Route::post('/users/force_Delete/{identifier}', ['as' => 'users.forceDelete', 'uses' => 'User\UserController@force_Delete']); // Route::get('/users/forceDelete/{identifier}', ['as' => 'users.forceDelete', 'uses' => 'User\UserController@force_Delete']); Route::get('/users/activity/{identifier}', ['as' => 'users.activity', 'uses' => 'User\UserActivityController@activity']); Route::get('/users/stats/{identifier}', ['as' => 'users.stats', 'uses' => 'User\UserStatsController@stats']); Route::get('/roles/permissions/{id}', ['as' => 'roles.permissions', 'uses' => 'Roles\PermissionsController@setup']); Route::post('/roles/permissions/{id}', ['as' => 'roles.permissions-save', 'uses' => 'Roles\PermissionsController@save']); // User Extensions (SIP / PJSIP / WSS) Route::get('/users/{user}/extensions', ['as' => 'users.extensions.index', 'uses' => 'User\UserExtensionController@index']); Route::post('/users/{user}/extensions', ['as' => 'users.extensions.store', 'uses' => 'User\UserExtensionController@store']); Route::patch('/users/{user}/extensions/{ext}', ['as' => 'users.extensions.update', 'uses' => 'User\UserExtensionController@update']); Route::delete('/users/{user}/extensions/{ext}', ['as' => 'users.extensions.destroy', 'uses' => 'User\UserExtensionController@destroy']); Route::post('/users/{user}/send-welcome-email', ['as' => 'users.send-welcome-email', 'uses' => 'User\UserController@sendWelcomeEmail']); Route::post('/users/{user}/send-scheduled-emails', ['as' => 'users.send-scheduled-emails', 'uses' => 'User\UserController@sendScheduledEmails']); Route::post('/users/{user}/flush-api-token', ['as' => 'users.flush-api-token', 'uses' => 'User\UserController@flushApiToken']); Route::get('/users-summary-stats', ['as' => 'users.summary-stats', 'uses' => 'User\UserController@userSummaryStats']); }); Route::group(['middleware' => ['web','permission:user.settings|groups.update'], 'prefix' => 'settings','as'=>'settings.', 'namespace' => 'Modules\Platform\User\Http\Controllers'], function () { Route::resource('groups', 'GroupsController', []); });