Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour, petit soucis sur mon appli, j'ai cherché une équivalence sur ce forum, sans succès.
J'ai une appli avec une partie admin pour gérer le contenu, et une partie publique où les visiteurs "membres" peuvent se logguer. Je veux simplement créer des authentifications différentes.
Les admins et les users sont enregistrées dans des tables différentes.
Etes-il possible, lors d'une identification et d'une création de session, de spécifier que "celle là est pour la partie publique", et "celle là pour la partie privée" ?
Merci d'avance.
Hors ligne
Il me semble qu'avec le Zend_Auth, tu peut spécifier où tu veux stocker l'identification,
Je me rapelle qu'on peut définir le NameSpace à utiliser, apres on peut peut etre organiser ca dans un seul namespace, se serait plus propre
Hors ligne
La question serait plus quand et comment choisir la base de données ou le type d'utilisateur doit se connecter ? Selon moi tu n'as pas besoin de 2 Zend_Auth puisque ton utilisateur aura qu'une authentification à la fois. Je suis en train de mettre en place un système d'authentification sur 3 base de données distinctes depuis la même page avec un seul Zend_Auth et ça n'a pas l'air de poser problème. C'est au niveau du login que je détermine en amont sur quelle bd se connecter, une fois fait, je créé les instances de Zend_Auth/Acl/etc.
Peut-être ce qui te bloque est que ton bootstrap est un fichier ou tu charges tout ? Moi j'ai un fichier qui charge une classe contenant que des méthodes d'initialisations static. Du coup, je peux exécuter de n'importe l'initialisation dun élément.
Bon courage.
Hors ligne
Je n'ai peut-être pas été clair.
J'ai une identification pour la partie backoffice du site, identification réservée à l'admin, et une identification pour les visiteurs "enregistrés". Je veux, bien entendu, qu'un visiteur enregistré (et connecté) n'ai pas accès à l'admin du site.
Mon code ci-dessous fonctionne s'il n'y a qu'une seule identification, mais comment spécifier d'autoriser la navigation ? Faut bien que je distingue mes deux types d'utilisateurs ?
$auth = Zend_Auth::getInstance(); if (!$auth->hasIdentity()) { $this->_redirect('admin/login'); }
Hors ligne
La classe Zend_Auth inclut un singleton. Tu ne peux donc pas avoir plusieurs instances disponibles en même temps. Dans ton cas, je pense qu'il faut que tu regardes du coté de Zend_Acl.
Hors ligne
L'utilisateur 'identifier' étant le même qu'il soit admin ou non, je rejoins ce que dit slaughter.
Il faut gerer un type d'utiliser. (avec ou sans ACL)
Hors ligne
Hello,
Je rejoins la position de nORKy, il faut passer par les ACLs. Mais voici le bout de code recherché par stf.
Tu fais dans le bootstrap de l'application 1:
Zend_Auth::getInstance()->setStorage(new Zend_Auth_Storage_Session('appli1'));
et dans celui de l'application 2 :
Zend_Auth::getInstance()->setStorage(new Zend_Auth_Storage_Session('appli2'));
A+
Hors ligne