如何将访问控制注入mvc应用程序的服务层?

cla*_*hio 6 acl zend-framework zend-acl service-layer

我正在使用标准的mvc范例编写一个zend框架应用程序,并添加了一个服务层来处理应用程序/业务逻辑.将访问控制放入您的服务而不是模块/控制器/操作似乎非常流行,但是,我只看到了具有这些角色的静态角色和权限的简单示例.

我的应用程序将使用动态acl,允许管理员用户添加角色并设置这些角色的权限.我有两个问题:

  1. 如何将用户域中的权限映射到服务中的服务和方法的权限?我不相信它应该是1:1的映射.如果您的应用程序足够大,您将拥有许多具有许多方法的服务,并且权限结构很快会让最终用户设置角色权限变得混乱.
  2. 我有应用程序的全局服务,而不是特定于模块的服务.您将如何根据访问的模块为这些服务设置权限?

任何帮助将不胜感激.