Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework > MVC
MVC Forum de support sur le développement d'applications de type modèle-vue-contrôleur avec Zend Framework ainsi que vos questions sur les plugins, les helpers etc. Avant de poster -> Cours MVC, FAQ ZF Controller
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/04/2011, 08h49   #1
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 998
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 998
Points : 18 262
Points : 18 262
Envoyer un message via MSN à CinePhil
Par défaut Emplacement d'un plugin et instanciation dans le bootstrap

Bonjour,
Comme indiqué dans ce message, je n'arrive pas à instancier le plugin pour gérer les ACL.

J'ai créé un répertoire application/plugin et y ai placé ce plugin appelé Auth.php :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
class Application_Plugin_Auth extends Zend_Controller_Plugin_Abstract
{
    private $_auth = null;
    private $_acl = null;
 
    public function __construct($auth, $acl)
    {
        $this->_auth = $auth;
        $this->_acl = $acl;
    }
 
    // Vérifie que l'utilisateur a la permission d'accéder au contrôleur de la page demandée
    public function preDispatch(Zend_Controller_Request_Abstract $request)
    {
        if($this->_auth->hasIdentity())
        {
            // Récupération du type d'utilisateur (= rôle au sens acl)
            $identity = $this->_auth->getIdentity();
            $nom_user = $identity->uti_login;
            $id_role = $identity->uti_id_type_utilisateur;
            $utilisateur = new Application_Model_DbTable_Utilisateur();
            $result = $utilisateur->getTypeUtilisateur($nom_user);
            $nom_role = $result['tu_libelle'];
        } // Fin if($this->_auth->hasIdentity())
 
        $controller = $request->controller;
        $resource   = $this->_acl->has($controller) ? $controller : null;
 
        if (!$this->_acl->isAllowed($nom_role, $resource))
        {
            // Type d'utilisateur non autorisé à accéder à la page
            $request->setControllerName('Auth');
            $request->setActionName('index');
        } // Fin if (!$this->_acl->isAllowed($nom_role, $resource))
    } // Fin function preDispatch
}
Dans le Bootstrap.php, j'ai ajouté cette fonction :
Code :
1
2
3
4
5
6
7
    protected function _initAuth()
    {
        $auth = Zend_Auth::getInstance();
        $auth->setStorage(new Zend_Auth_Storage_Session('Auth'));
        $front = Zend_Controller_Front::getInstance();
        $front->registerPlugin(new Application_Plugin_Auth($auth));
    }
Mais à l'exécution, j'ai ce message d'erreur :
Citation:
Fatal error: Class 'Application_Plugin_Auth' not found in /var/www/html/stagmas/application/Bootstrap.php on line 29
J'ai essayé divers noms de classe de plugin, divers emplacements, notamment dans le répertoire library mais rien n'y fait, toujours le même type d'erreur de classe non trouvée.

Qu'est-ce qui manque ?
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2011, 09h14   #2
Rédacteur/Modérateur
 
Avatar de MaitrePylos
 
Homme Gérard Ernaelsten
DBA & Dev PHP
Inscription : juin 2005
Messages : 3 174
Détails du profil
Informations personnelles :
Nom : Homme Gérard Ernaelsten
Âge : 39
Localisation : Belgique

Informations professionnelles :
Activité : DBA & Dev PHP
Secteur : Service public

Informations forums :
Inscription : juin 2005
Messages : 3 174
Points : 6 460
Points : 6 460
Vite fait, je dirais que ton plugin devrais s'appeller comme ceci

Code :
1
2
 
class Plugin_Auth extends Zend_Controller_Plugin_Abstract
Mais je regarde mieux dans un de mes projet comment j'ai fait et je reviens vers toi.
MaitrePylos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2012, 08h07   #3
Futur Membre du Club
 
Inscription : juin 2006
Messages : 139
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 139
Points : 18
Points : 18
Bonjour,
je suis confronté à un problème similaire, et cela m'aiderait si vous pouviez me récapituler une solution qui a fonctionné.
Merci d'avance.
levalp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2012, 11h06   #4
Membre chevronné
 
Homme Taoufiq Ben
Développeur Web
Inscription : mai 2009
Messages : 456
Détails du profil
Informations personnelles :
Nom : Homme Taoufiq Ben
Âge : 25
Localisation : Maroc

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2009
Messages : 456
Points : 639
Points : 639
Le répertoire que t’as crée pour les plugin doit être nommé plugins avec s.
m4riachi est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h44.


 
 
 
 
Partenaires

Hébergement Web