Passer d’un persona à l’autre dans Laravel avec le package MultiPersona
Le package Laravel MultiPersona est « un système de couche contextuelle léger pour les utilisateurs de Laravel. Il permet à un seul utilisateur de basculer dynamiquement entre différents rôles, comptes ou locataires, sans créer plusieurs connexions ou sessions.

Le package Laravel MultiPersona est « un système de couche contextuelle léger pour les utilisateurs de Laravel. Il permet à un seul utilisateur de basculer dynamiquement entre différents rôles, comptes ou locataires, sans créer plusieurs connexions ou sessions.
Ce package est conçu en fournissant un modèle qui est attaché à un seul utilisateur. Un service de persona fourni par un package gère des opérations telles que l’obtention du persona actuel, le basculement entre eux, la vérification des autorisations, etc.Persona
use Illuminate\Foundation\Auth\User as Authenticatable;
use Grazulex\LaravelMultiPersona\Traits\HasPersonas;
class User extends Authenticatable
{
use HasPersonas;
// ... rest of your model
}
// Get current active persona
$currentPersona = persona();
// List all user personas
$userPersonas = auth()->user()->personas;
// Create a new persona
$persona = auth()->user()->createPersona([
'name' => 'Company Admin',
'context' => [
'role' => 'admin',
'company_id' => 123,
'permissions' => ['read', 'write', 'delete']
]
]);
// Switch to persona
auth()->user()->switchToPersona($persona);
Ce package peut être utile pour les applications SaaS multilocataires où les utilisateurs peuvent basculer entre différents contextes d’entreprise, un accès basé sur les rôles, etc. L’extrait suivant est un exemple du fichier readme du package, qui illustre la création de personas pour plusieurs contextes d’entreprise :
// User switches between companies
$companyA = $user->createPersona([
'name' => 'Acme Corp Admin',
'context' => [
'company_id' => 1,
'role' => 'admin',
'permissions' => ['manage_users', 'view_reports']
]
]);
$companyB = $user->createPersona([
'name' => 'TechStart User',
'context' => [
'company_id' => 2,
'role' => 'user',
'permissions' => ['view_dashboard']
]
]);
Cas d’utilisation des packages
- SaaS multi-tenant : les utilisateurs passent d’un contexte d’entreprise à un autre
- Accès basé sur les rôles : même utilisateur, autorisations différentes par contexte
- Gestion d’agence : Gérez plusieurs comptes clients
- Plateformes de marché : Changement de contexte acheteur/vendeur
- Systèmes d’entreprise : accès par service ou par projet
📖 Vous pouvez commencer à utiliser ce package en suivant le guide d’installation.
💻 Le code source est disponible sur GitHub à l’adresse Grazulex/laravel-multipersona.

Besoin d'un développeur pour votre prochain projet ? Je suis disponible pour des missions freelance.
Me contacterArticles similaires
Related writings that dive deeper into design decisions, workflows, and creative problem-solving. Each article expands on ideas shared throughout this project.

