Esempio n. 1
0
 /**
  * @static
  * @return NL_Acl
  */
 public static function getInstance()
 {
     if (null === self::$_instance) {
         self::$_instance = new self();
     }
     return self::$_instance;
 }
Esempio n. 2
0
 public function init()
 {
     $this->config = Zend_Registry::get("__CONFIG__");
     /** @var $layoutHelper Zend_Layout_Controller_Action_Helper_Layout */
     $layoutHelper = Zend_Controller_Action_HelperBroker::getStaticHelper('layout');
     $this->layout = $layoutHelper->getLayoutInstance();
     /** @var $viewRenderer Zend_Controller_Action_Helper_ViewRenderer */
     $this->viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
     if (Zend_Auth::getInstance()->hasIdentity()) {
         $this->identity = Zend_Auth::getInstance()->getIdentity();
         $this->identityId = $this->identity->id;
         $role = $this->identity->role;
     } else {
         $role = "guest";
     }
     $this->view->navigation()->setAcl(NL_Acl::getInstance())->setRole($role);
 }
Esempio n. 3
0
 public function preDispatch(Zend_Controller_Request_Abstract $request)
 {
     $identity = null;
     if (Zend_Auth::getInstance()->hasIdentity()) {
         $identity = Zend_Auth::getInstance()->getIdentity();
     } elseif ($userId = NL_AuthAdapter::getCookie()) {
         // user id Exists
         $auth = Zend_Auth::getInstance();
         $authAdapter = new NL_AuthAdapter();
         $authAdapter->setUserId($userId);
         $result = $auth->authenticate($authAdapter);
         if ($result->isValid()) {
             $identity = Zend_Auth::getInstance()->getIdentity();
         }
     }
     $acl = NL_Acl::getInstance();
     $role = $identity ? $identity->role : "guest";
     $module = $request->getModuleName();
     if (is_null($module)) {
         $module = Zend_Controller_Front::getInstance()->getDefaultModule();
     }
     $controller = $request->getControllerName();
     $action = $request->getActionName();
     if ($controller == "error") {
         // allow error controller
         return;
     }
     $resource = $module . ":" . $controller;
     if (!$acl->has($resource)) {
         throw new Exception("ACL Resource [" . $resource . "] undefined !", 501);
     }
     if (!$acl->isAllowed($role, $resource, $action)) {
         //            throw new Exception("Not allowed to access [".$resource."] resource",501);
         $request->setModuleName($this->_noAuth['module']);
         $request->setControllerName($this->_noAuth['controller']);
         $request->setActionName($this->_noAuth['action']);
         //            $request->setParam('controller', $this->_noAuth['controller']);
         //            $request->setParam('view', 'no-auth');
     }
 }