Porter — це легкий, надшвидкий пакет контролю доступу на основі ролей для Laravel, створений Хасаном Ібрагімом. Він розглядає ролі не лише як абстракції бази даних, а як бізнес-логіку. Хасан розробив цей пакет для розробників, які цінують простоту, продуктивність і чисту архітектуру.
Головна концепція Portera полягає в тому, що будь-яка модель може бути визнана Призначеною або Рольовою, а Ростер визначає відношення контролю доступу між ними.
BaseRole.use Hdaklue\Porter\Facades\Porter;
// Призначення ролі
Porter::assign($user, $project, 'admin');
// Перевірка ролі користувача
$isAdmin = $user->hasRoleOn($project, 'admin');
// Видалення ролі
Porter::remove($user, $project);
// Зміна ролі
Porter::changeRoleOn($user, $project, 'editor');
Porter також має інтерактивну команду Artisan, яка дозволяє створювати класи ролей.
php artisan porter:create
Приклад класу ролі може виглядати так:
use App\Porter\BaseRole; // Основний клас ролі вашого застосунку
final class AssistantRegionalManager extends BaseRole
{
public function getName(): string
{
return 'assistant_regional_manager';
}
public function getLevel(): int
{
return 8;
}
public function getDescription(): string
{
return "Ми завжди потребували офісного супергероя, що любить буряк і займається карате.";
}
}
Ви також можете інтегрувати це зі своїми моделями Laravel, використовуючи трейти CanBeAssignedToEntity та ReceivesRoleAssignments:
use Hdaklue\Porter\Concerns\{CanBeAssignedToEntity, ReceivesRoleAssignments};
class User extends Authenticatable
{
use CanBeAssignedToEntity;
// Ваш існуючий код моделі User...
}
class Project extends Model
{
use ReceivesRoleAssignments;
// Ваш існуючий код моделі Project...
}
На момент написання, Porter все ще є досить новим, і Хасан зацікавлений отримати відгуки та допомогу від спільноти у впровадженні нових функцій.
Щоб дізнатися більше про цей пакет, зробити свій внесок та переглянути вихідний код, ви можете знайти репозиторій на GitHub.
Laravel пропонує потужні можливості повнотекстового пошуку за допомогою методів whereFullText та orWhereFullText, що дозволяють здійснювати складні запити до бази даних. Дізнайтеся, як реалізувати ефективний пошук для вашого блогу чи системи управління контентом
У сучасній веб-розробці аутентифікація є ключовою для захисту додатків і даних користувачів. Дізнайтеся, як модуль nuxt-sanctum-authentication спростить інтеграцію між Nuxt 3 та Laravel Sanctum, забезпечуючи надійний і зручний спосіб реалізації аутентифікації для вашого проєкту
Використання Vite для створення фронтенд-ресурсів у вашому додатку Laravel може бути захоплюючим, але іноді ви можете стикнутися з певними помилками. У цій статті ми розглянемо чотири поширені помилки, з якими ви можете зіткнутися, а також підкажемо способи їх усунення, щоб ви могли знову зосередитися на розробці вашого додатку