first&last
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| API Routes
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Here is where you can register API routes for your application. These
|
||||
| routes are loaded by the RouteServiceProvider and all of them will
|
||||
| be assigned to the "api" middleware group. Make something great!
|
||||
|
|
||||
*/
|
||||
|
||||
Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
|
||||
return $request->user();
|
||||
});
|
||||
@@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\Broadcast;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Broadcast Channels
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Here you may register all of the event broadcasting channels that your
|
||||
| application supports. The given channel authorization callbacks are
|
||||
| used to check if an authenticated user can listen to the channel.
|
||||
|
|
||||
*/
|
||||
|
||||
Broadcast::channel('App.Models.User.{id}', function ($user, $id) {
|
||||
return (int) $user->id === (int) $id;
|
||||
});
|
||||
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Foundation\Inspiring;
|
||||
use Illuminate\Support\Facades\Artisan;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Console Routes
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This file is where you may define all of your Closure based console
|
||||
| commands. Each Closure is bound to a command instance allowing a
|
||||
| simple approach to interacting with each command's IO methods.
|
||||
|
|
||||
*/
|
||||
|
||||
Artisan::command('inspire', function () {
|
||||
$this->comment(Inspiring::quote());
|
||||
})->purpose('Display an inspiring quote');
|
||||
+123
@@ -0,0 +1,123 @@
|
||||
<?php
|
||||
|
||||
use App\Http\Controllers\AttachmentController;
|
||||
use App\Http\Controllers\Auth\ForgotPasswordController;
|
||||
use App\Http\Controllers\Auth\ResetPasswordController;
|
||||
use App\Livewire\Auth\LoginPage;
|
||||
use App\Livewire\Dashboard\DashboardPage;
|
||||
use App\Livewire\Directories\DepartmentsPage;
|
||||
use App\Livewire\Directories\EquipmentCategoriesPage;
|
||||
use App\Livewire\Directories\EquipmentPage;
|
||||
use App\Livewire\Directories\RequestTypesPage;
|
||||
use App\Livewire\MyRequests\MyRequestFormPage;
|
||||
use App\Livewire\MyRequests\MyRequestsIndexPage;
|
||||
use App\Livewire\Notifications\NotificationsPage;
|
||||
use App\Livewire\Profile\ProfilePage;
|
||||
use App\Livewire\Reports\EquipmentReportPage;
|
||||
use App\Livewire\Reports\GeneralReportPage;
|
||||
use App\Livewire\Reports\SlaReportPage;
|
||||
use App\Livewire\Reports\TechniciansReportPage;
|
||||
use App\Livewire\Requests\RequestFormPage;
|
||||
use App\Livewire\Requests\RequestIndexPage;
|
||||
use App\Livewire\Requests\RequestShowPage;
|
||||
use App\Livewire\System\ActivityLogPage;
|
||||
use App\Livewire\System\SettingsPage;
|
||||
use App\Livewire\Tasks\MyTasksPage;
|
||||
use App\Livewire\Users\UserFormPage;
|
||||
use App\Livewire\Users\UserShowPage;
|
||||
use App\Livewire\Users\UsersIndexPage;
|
||||
use App\Services\ActivityLogService;
|
||||
use App\Support\RoleRedirect;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
Route::get('/', function () {
|
||||
if (!auth()->check()) {
|
||||
return redirect()->route('login');
|
||||
}
|
||||
|
||||
return redirect()->route(RoleRedirect::routeFor(auth()->user()));
|
||||
});
|
||||
|
||||
Route::middleware('guest')->group(function () {
|
||||
Route::get('/login', LoginPage::class)->name('login');
|
||||
Route::get('/forgot-password', [ForgotPasswordController::class, 'create'])->name('password.request');
|
||||
Route::post('/forgot-password', [ForgotPasswordController::class, 'store'])->name('password.email');
|
||||
Route::get('/reset-password/{token}', [ResetPasswordController::class, 'create'])->name('password.reset');
|
||||
Route::post('/reset-password', [ResetPasswordController::class, 'store'])->name('password.store');
|
||||
});
|
||||
|
||||
Route::post('/logout', function (Request $request, ActivityLogService $activityLogService) {
|
||||
if (auth()->check()) {
|
||||
$activityLogService->log(auth()->user(), auth()->user(), auth()->id(), 'logout', 'Выход из системы', $request->ip());
|
||||
}
|
||||
|
||||
Auth::logout();
|
||||
$request->session()->invalidate();
|
||||
$request->session()->regenerateToken();
|
||||
|
||||
return redirect()->route('login')->with('success', 'Вы вышли из системы.');
|
||||
})->middleware('auth')->name('logout');
|
||||
|
||||
Route::middleware(['auth', 'active_user'])->group(function () {
|
||||
Route::get('/profile', ProfilePage::class)->name('profile');
|
||||
Route::get('/notifications', NotificationsPage::class)->name('notifications.index');
|
||||
Route::get('/requests/{request}', RequestShowPage::class)
|
||||
->whereNumber('request')
|
||||
->name('requests.show');
|
||||
Route::get('/my-requests/{request}', RequestShowPage::class)
|
||||
->whereNumber('request')
|
||||
->name('my-requests.show');
|
||||
|
||||
Route::get('/requests/{request}/attachments/{attachment}', [AttachmentController::class, 'download'])
|
||||
->whereNumber('request')
|
||||
->whereNumber('attachment')
|
||||
->name('attachments.download');
|
||||
|
||||
Route::middleware('role:admin,manager')->group(function () {
|
||||
Route::get('/dashboard', DashboardPage::class)->name('dashboard');
|
||||
|
||||
Route::get('/requests', RequestIndexPage::class)->name('requests.index');
|
||||
Route::get('/requests/create', RequestFormPage::class)->name('requests.create');
|
||||
Route::get('/requests/{request}/edit', RequestFormPage::class)
|
||||
->whereNumber('request')
|
||||
->name('requests.edit');
|
||||
|
||||
Route::get('/users', UsersIndexPage::class)->name('users.index');
|
||||
Route::get('/users/{user}', UserShowPage::class)
|
||||
->whereNumber('user')
|
||||
->name('users.show');
|
||||
|
||||
Route::get('/reports', fn () => redirect()->route('reports.general'))->name('reports');
|
||||
Route::get('/reports/general', GeneralReportPage::class)->name('reports.general');
|
||||
Route::get('/reports/technicians', TechniciansReportPage::class)->name('reports.technicians');
|
||||
Route::get('/reports/sla', SlaReportPage::class)->name('reports.sla');
|
||||
Route::get('/reports/equipment', EquipmentReportPage::class)->name('reports.equipment');
|
||||
});
|
||||
|
||||
Route::middleware('role:admin')->group(function () {
|
||||
Route::get('/users/create', UserFormPage::class)->name('users.create');
|
||||
Route::get('/users/{user}/edit', UserFormPage::class)
|
||||
->whereNumber('user')
|
||||
->name('users.edit');
|
||||
|
||||
Route::get('/directories', fn () => redirect()->route('directories.departments'))->name('directories');
|
||||
Route::get('/directories/departments', DepartmentsPage::class)->name('directories.departments');
|
||||
Route::get('/directories/equipment-categories', EquipmentCategoriesPage::class)->name('directories.equipment-categories');
|
||||
Route::get('/directories/request-types', RequestTypesPage::class)->name('directories.request-types');
|
||||
Route::get('/directories/equipment', EquipmentPage::class)->name('directories.equipment');
|
||||
|
||||
Route::get('/activity-log', ActivityLogPage::class)->name('activity-log');
|
||||
Route::get('/settings', SettingsPage::class)->name('settings');
|
||||
});
|
||||
|
||||
Route::middleware('role:technician')->group(function () {
|
||||
Route::get('/my-tasks', MyTasksPage::class)->name('my-tasks');
|
||||
});
|
||||
|
||||
Route::middleware('role:client')->group(function () {
|
||||
Route::get('/my-requests', MyRequestsIndexPage::class)->name('my-requests.index');
|
||||
Route::get('/my-requests/create', MyRequestFormPage::class)->name('my-requests.create');
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user