ZendFramework插件类实例[角色控制]
<?
/**
* ZendFramework插件类实例[角色控制]...
* @author:PHP博客-技术-资源-技术站-面向对象 PHPCQ.com
*
*
*/
class Plugin_Security extends Zend_Controller_Plugin_Abstract{
protected $_acl;
public function __construct($acl){
$this->_acl = $acl;
}
public function dispatchLoopStartup($request){
$auth = Zend_Auth::getInstance();
$role = 'guest';
if ($auth->hasIdentity()) {
$role = $auth->getIdentity()->role;
}
$resource = $request->getActionName();
if ($this->_acl->has($resource)) {
if (!$this->_acl->isAllowed($role,$resource)) {
$session = new Zend_Session_Namespace('ACLSecurity');
$session->uri = $request->getRequestUri();
$request->setControllerName('index');
$request->setActionName('login');
}
}
}
}
?>
前端控制器注册插件
$front->registerPlugin(new Plugin_Security($acl));