All pastes #941466 Raw Edit

Miscellany

public text v1 · immutable
·published 2008-03-13 18:39 UTC
rendered paste body
<?php

class My_Controller_Plugin_Auth extends Zend_Controller_Plugin_Abstract
{
    public function preDispatch(Zend_Controller_Request_Abstract $request)
    {
		$webUser = WebUser::getInstance();
		$acl = EDM_Acl::getInstance();
		$request = $this->getRequest();

		if (!$acl->hasRole($webUser->acl_role_id)) {
       	    $error = "Sorry, the requested user role '".$webUser->acl_role_id."' does not exist";									
       	}
       	if (!$acl->has($request->getControllerName())) {
			$error = "Sorry, the requested controller '".$request->getControllerName()."' does not exist as an ACL resource";
 		}
		if (!$acl->isAllowed($webUser->acl_role_id, $request->getControllerName(), $request->getActionName())) {
			$error = "Sorry, the page you requested does not exist or you do not have access";
		}

		if (isset($error)) {
			
			Zend_Layout::getMvcInstance()->getView()->error = $error;
			$request->setControllerName('error');
			$request->setActionName('error');
			$request->setDispatched(false);
			
		}
    }
}