Пакет Laravel MultiPersona є "легковаговою системою контекстного управління для користувачів Laravel". Він дозволяє одному користувачу динамічно змінювати різні ролі, акаунти або контексти без необхідності створювати кілька логінів чи сесій.
Цей пакет передбачає наявність моделі Persona, яка прив'язується до одного користувача. Сервіс персон, наданий пакетом, виконує операції на кшталт отримання поточної персоні, перемикання між ними, перевірки прав доступу тощо.
use Illuminate\Foundation\Auth\User as Authenticatable;
use Grazulex\LaravelMultiPersona\Traits\HasPersonas;
class User extends Authenticatable
{
use HasPersonas;
// ... решта вашої моделі
}
// Отримати активну персону
$currentPersona = persona();
// Список усіх персон користувача
$userPersonas = auth()->user()->personas;
// Створити нову персону
$persona = auth()->user()->createPersona([
'name' => 'Компанійний адміністратор',
'context' => [
'role' => 'admin',
'company_id' => 123,
'permissions' => ['read', 'write', 'delete']
]
]);
// Перемикання на іншу персону
auth()->user()->switchToPersona($persona);
Цей пакет буде корисним для SaaS-додатків з багатьма орендарями, де користувачі можуть змінювати контексти компаній, управлінські ролі та більш складні налаштування доступу. Наведений нижче код є прикладом з документації пакету, що демонструє створення персон для різних компаній:
// Користувач перемикається між компаніями
$companyA = $user->createPersona([
'name' => 'Адміністратор Acme Corp',
'context' => [
'company_id' => 1,
'role' => 'admin',
'permissions' => ['manage_users', 'view_reports']
]
]);
$companyB = $user->createPersona([
'name' => 'Користувач TechStart',
'context' => [
'company_id' => 2,
'role' => 'user',
'permissions' => ['view_dashboard']
]
]);
📖 Щоб дізнатися більше про цей пакет, ознайомтеся з посібником з установки.
💻 Вихідний код доступний на GitHub за посиланням Grazulex/laravel-multipersona.
Використання Vite для створення фронтенд-ресурсів у вашому додатку Laravel може бути захоплюючим, але іноді ви можете стикнутися з певними помилками. У цій статті ми розглянемо чотири поширені помилки, з якими ви можете зіткнутися, а також підкажемо способи їх усунення, щоб ви могли знову зосередитися на розробці вашого додатку
PHP 8.5 обіцяє безліч нових можливостей, таких як оператор Pipe, функції `array_first()` та `array_last()`, а також нове розширення URI. Чи готові ви дізнатися, як ці функції можуть спростити вашу розробку? Читайте далі, щоб дізнатися більше про ці захоплюючі нововведення
Вам цікаво дізнатися, як спростити інтеграцію RabbitMQ у вашому Laravel-додатку? У нашій статті ми розглянемо пакет Simple RabbitMQ, який дозволяє легко налаштувати багатозʼєднання, публікувати повідомлення та обробляти черги за допомогою простого синтаксису. Читайте далі, щоб дізнатися більше!