2010-06-21 5 views
4

Je souhaite avoir plusieurs connexions avec une application zend simple.Application Zend avec connexion multiple

J'ai cinq sections A, B, C, D, E et quatre types d'utilisateurs (P, Q, R, S), y compris l'utilisateur anonyme.Ces sections ont des sous-sections. Section A, B, C requis login pour y accéder. Les sections D et E sont accessibles à tous les types d'utilisateurs, mais certaines actions peuvent être suivies par des types d'utilisateurs spécifiques.

P ne peut se connecter à sec A, Q peut se connecter à sec B et R peut se connecter à sec C.

Pouvez-vous s'il vous plaît suggérer ce que la structure répertoire que je devrais utiliser et comment dois-je mettre en œuvre connexion multiple.

Merci

+0

Je pense qu'il serait préférable d'utiliser des modules par défaut pour les utilisateurs anonymes et de créer des modules pour toutes les sections et d'utiliser différentes mises en page pour différents modules. Connexion unique sera utilisé pour ces modules et l'utilisateur sera redirigé section utilisateur respective après connexion. Que dites-vous? – phpian

Répondre

1

Vous cherchez probablement un Role based Access Control List.
Zend Framework offre cela à travers Zend_Acl.

Voir aussi:

+0

Merci pour ça. Mais ici, je n'essaie pas de mettre en œuvre ACL comme je l'ai mentionné les sections ont également des sous-sections. Section elle-même un panneau avec divers modules et qui ne concerne qu'un seul utilisateur comme P seulement besoin de sec A pour effectuer son travail. la section A contient une sous-section (modules) etc .... Idem pour l'utilisateur Q (sec-B) et R (sec-C). La section aura aussi l'en-tête et le pied de page séparés. – phpian

+0

@Acharya Je ne suis pas sûr de savoir si je comprends. Zend_Acl peut être lié à Zend_Navigation, donc s'il s'agit de rendre la navigation individuelle, c'est très possible avec. Vous pourriez parler de [Multitenancy] (http://en.wikipedia.org/wiki/Multitenancy) cependant. Si oui, veuillez ne pas tenir compte de ma réponse, mais mettez à jour la question en conséquence. – Gordon

+0

Mais ma question est quelle structure de répertoire je devrais utiliser et comment dois-je implémenter plusieurs connexions. Veuillez voir ci-dessus – phpian

2

la structure de répertoire n'a rien à voir avec les droits d'accès. votre application entière pourrait être un contrôleur unique et être capable de votre concept de rôles et de droits, mais ne serait pas bon code tbh. (Pourquoi pas)

si vous ne voulez pas utiliser Zend_Acl vous pouvez le résoudre en mettant en œuvre un concept simple comme ce qui suit:

créer un module d'application pour chacun de vos « sections », y compris un PublicController dans chaque application qui sera accessible par n'importe qui plus tard. alors vous devez mettre en place un plugin de contrôleur frontal qui pourrait ressembler à la folloing

public function preDispatch() 
{ 
    $identity = Zend_Auth::getInstance()->getIdentity();   
    $module = $this->getRequest()->getModuleName(); 
    $controller = $this->getRequest()->getControllerName(); 

    if($controller == 'public') { 

     return; 
    } 

    switch ($identity->role) { 

     case 'A': 
      if ($module != 'P') { 
       $this->myNotAuthorized(); 
      } 
      break; 

     // cases for other roles/modules 
    } 
} 
0

Vous pouvez aussi le faire par un moyen simple de ne pas mettre en œuvre Zend_Acl si vous ne voulez pas.

Utilisez les variables de session et vérifiez celles sur l'accès au module.

Questions connexes