Bonjour,
Dans mon application j'ai deux type de recherche:
- Une recherche de type administrateur, permettant de rechercher n'importe quels type d'entity
- Une recherche de type utilisateur, permet uniquement de chercher dans les catégorie de mon application.
Ainsi, afin de me faciliter le travail, j'ai deux controller (SearchController, SearchAdminController). Ce qui est important de noté est que le second, SearchAdminController hérite de SearchController.
Les deux controllers possédent une architecture de type REST: getAction, putAction, postAction, deleteAction) pour chaque controller. Afin de déterminer dans quel controller mon utilisateur doit allez, j'ai mis en place une gestion de permission.
Ainsi, chaque action possède une permission.
Lorsque je fais une recherche de type administrateur, voici les paramètre compris par Zend:
- _requestUri = /app/search-admin/post
- _pathInfo = /app/search-admin/post
- _module = app
- _controllerKey = controller
- _action = post
- _controller = search-admin
- _dispatched = 1
- _moduleKey = module
- _actionKey = action
Alors que pour la recherche de type utilisateur j'ai ceci:
- _requestUri = /app/search/post
- _pathInfo = /app/search/post
- _module = app
- _controllerKey = controller
- _action = put
- _controller = search
- _dispatched = 1
- _moduleKey = module
- _actionKey = action
Comme vous pouvez le voir la structure de l'url est la même, mais la variables désignant l'action n'est pas la même. Ma recherche de type admin marche alors que celle pour les utilisateurs me renvoie une erreur me disant que j'ai pas l'autorisation d'acceder à cette action. En effet, j'ai l'autorisation d'accéder à l'action post du controller SearchController et non à l'action put du même controller.
Avez vous une idée, du changement d'action?
Par avance, je vous en remercie.
Cdt
Partager