Права доступу до маршрутів у Laravel, що використовують Enum

0
Перекладено ШІ
Оригінал: Laravel News
Оновлено: 15 лютого, 2025
Laravel спростив перевірку дозволів у маршрутах, додавши підтримку enum безпосередньо до методу can(). Ця функція дозволяє створювати більш зрозумілі та виразні визначення маршрутів, що особливо важливо при розробці адмінок та багатокористувацьких додатків. Чи готові ви дізнатися, як зробити ваш код ще чистішим і зручнішим? Читайте далі!

Laravel спростив перевірку дозволів у маршрутах, додавши пряму підтримку enum до методу can(). Це нововведення усуває необхідність явно отримувати значення enum, що робить визначення маршрутів більш зрозумілими і виразними.

Ця функція особливо корисна при створенні адмін-панелей або багатокористувацьких додатків, де управління дозволами є важливим, і ви хочете використовувати можливості типобезпечності PHP.

Route::get('/admin', function () {
    // ...
})->can(Permission::ACCESS_ADMIN);

Ось як реалізувати маршрути на основі ролей у адмін-панелі:

// app/Enums/AdminAccess.php

<?php

namespace App\Enums;

enum AdminAccess: string
{
    case VIEW_REPORTS = 'view_reports';
    case MANAGE_STAFF = 'manage_staff';
    case EDIT_CONFIG = 'edit_config';
}

// web.php
Route::prefix('admin')->group(function () {
    Route::get('/reports', ReportController::class)
        ->can(AdminAccess::VIEW_REPORTS);
    
    Route::get('/staff', StaffController::class)
        ->can(AdminAccess::MANAGE_STAFF);
    
    Route::post('/config', ConfigController::class)
        ->can(AdminAccess::EDIT_CONFIG);
});

Визначення маршрутів стали інтуїтивно зрозумілішими та легшими для супроводження:

// Попередній підхід
->can(AdminAccess::MANAGE_STAFF->value)
// Новий, чистіший підхід
->can(AdminAccess::MANAGE_STAFF)

Покращений метод can() робить маршрути на основі дозволів більш елегантними, зберігаючи переваги типізаційності PHP

Популярні

Logomark Logotype

Інтеграція Laravel Socialite з бібліотекою Google Client PHP

Ви хочете навчитися, як інтегрувати Google OAuth у вашому проекті Laravel, використовуючи Socialite? Дізнайтеся, як налаштувати доступ до сервісів Google, таких як Календар, у нашій сьогоднішній статті

Logomark Logotype

4 поширені помилки Vite у Laravel

Використання Vite для створення фронтенд-ресурсів у вашому додатку Laravel може бути захоплюючим, але іноді ви можете стикнутися з певними помилками. У цій статті ми розглянемо чотири поширені помилки, з якими ви можете зіткнутися, а також підкажемо способи їх усунення, щоб ви могли знову зосередитися на розробці вашого додатку

Logomark Logotype

Журнал аудиту в Laravel

Хочете забезпечити повну прозорість у своїх Laravel-додатках? Пакет Laravel Audit Log допоможе вам детально відстежувати всі зміни моделей Eloquent та відповідати вимогам регуляторів. Читайте далі, щоб дізнатися, як цей потужний інструмент може підвищити надійність вашого проєкту