je besoin d'un ACL pour ma couche d'application et j'ai cherché dans Zend ACL qui semble couvrir mes besoins mais je suis confus par ce qui suit [1]:Zend ACL et l'accès à des objets spécifiques
Par exemple, si une règle par défaut doit être appliquée à chaque bâtiment dans une ville , il suffit d'affecter la règle à la ville, au lieu de en affectant la même règle à chaque bâtiment. Cependant, certains bâtiments peuvent nécessiter des exceptions à une telle règle, ce qui peut être réalisé en
Zend\Permissions\Acl\Acl
en affectant de telles règles d'exception à chaque bâtiment qui requiert une telle exception.
C'est génial. Exactement ce dont j'ai besoin. Cependant, comment puis-je accomplir cela?
A la lecture de la documentation de Zend ACL, je ne trouve pas d'exemple. Donc, disons que j'ai une ressource City
et Building
et que chacun implémente le ResourceInterface
. Quelque chose comme ceci:
class City implements ResourceInterface {
public function getResourceId()
{
return "city"; // Is this supposed to be the "type" or the "unique Id"?
}
public $buildings = array();
}
class Building implements ResourceInterface {
public function getResourceId()
{
return "building"; // Again, the "type" or "unique Id"?
}
}
Comme les commentaires dans le code ci-dessus pourraient déjà faire clairement, quelle est la ressource Id? représente-t-il le "type" de la ressource, c'est-à-dire qu'il s'agit d'une ville ou d'un bâtiment, ou doit-il être un identifiant unique, c'est-à-dire "ville-1", etc.
Si la réponse est qu'il doit être le "type" alors la question devient; comment puis-je spécifier des bâtiments uniques? Cependant, si la réponse est que l'Id doit être unique, alors la question devient; Comment puis-je identifier le «type» de la ressource et l'autorisation «couverture» de chaque bâtiment, comme indiqué dans la citation tirée de la documentation.
Toute idée serait grandement appréciée.
[1] http://zf2.readthedocs.org/en/latest/modules/zend.permissions.acl.intro.html
il peut peut-être aider à: http://stackoverflow.com/questions/11668785/zend-acl-dynamic-assertion il a un exemple. –