2013-05-17 3 views
1

Je dois créer un système d'authentification pour deux types d'utilisateurs, de clients et de personnel. Je voudrais utiliser deux domaines distincts pour les authentifier (via Catalyst::Plugin::Authentication), mais je voudrais alors limiter que les clients peuvent seulement voir le contrôleur client, alors que le personnel est libre de voir à la fois le contrôleur client et le contrôleur de personnel. Dans le passé, chaque fois que j'avais besoin d'authentifier un seul type d'utilisateur, j'ai utilisé CatalystX::SimpleLogin car cela rend l'authentification des utilisateurs très simple, ainsi que des choses comme se souvenir de l'URL à laquelle rediriger l'utilisateur s'il devait se connecter pour accéder à un page, etc Cependant, je ne peux pas trouver un moyen de le faire en utilisant CatalystX::SimpleLogin. Est-ce que quelqu'un a déjà fait cela ou est-ce que quelqu'un peut penser à un moyen de le faire? Ou suis-je mieux juste juste en utilisant Catalyst::Plugin::Authentication pour accomplir ce que je veux? Merci!CatalystX :: SimpleLogin possède plusieurs domaines

Répondre

2

Ce que vous voulez, ce sont des rôles via le Catalyst::Plugin::Authorization::Roles. Cela vous permet de séparer facilement vos différents types d'utilisateurs. Voici un exemple de la documentation Catalyst::Plugin::Authentication:

use Catalyst qw/ 
    ... 
    Authorization::Roles 
/; 

sub edit : Local { 
    my ($self, $c) = @_; 

    $c->detach("unauthorized") unless $c->check_user_roles("edit"); 

    # do something restricted here 
} 
+0

Ceci est une bonne suggestion. Mais savez-vous comment je pourrais rediriger les utilisateurs vers différentes pages une fois qu'ils se sont connectés en fonction de leurs rôles? – srchulo