예제 #1
0
파일: Acl.php 프로젝트: vbryan/Zend
 /**
  * Returns an instance of Zend_Auth
  *
  * Singleton pattern implementation
  *
  * @return Application_Service_Acl Provides a fluent interface
  */
 public static function getInstance()
 {
     if (null === self::$_instance) {
         self::$_instance = new self();
     }
     return self::$_instance;
 }
예제 #2
0
파일: Acl.php 프로젝트: vbryan/Zend
 /**
  * Called after Zend_Controller_Router exits.
  *
  * Called after Zend_Controller_Front exits from the router.
  *
  * @param  Zend_Controller_Request_Abstract $request
  * @return void
  */
 public function routeShutdown(Zend_Controller_Request_Abstract $request)
 {
     $acl = Application_Service_Acl::getInstance();
     $defaultRole = 'guest';
     $acl->addRole(new Zend_Acl_Role($defaultRole));
     $acl->addRole(new Zend_Acl_Role('user'), $defaultRole);
     $acl->addResource(new Zend_Acl_Resource('default.index.index'));
     $acl->addResource(new Zend_Acl_Resource('user.auth.index'));
     $acl->addResource(new Zend_Acl_Resource('user.register.index'));
     $acl->addResource(new Zend_Acl_Resource('user.register.recovery'));
     $acl->addResource(new Zend_Acl_Resource('user.register.activate'));
     $acl->addResource(new Zend_Acl_Resource('user.profile.index'));
     $acl->addResource(new Zend_Acl_Resource('user.profile.logout'));
     $acl->allow($defaultRole, 'default.index.index');
     $acl->allow($defaultRole, 'user.auth.index');
     $acl->allow($defaultRole, 'user.register.index');
     $acl->allow($defaultRole, 'user.register.recovery');
     $acl->allow($defaultRole, 'user.register.activate');
     $acl->deny($defaultRole, 'user.profile.index');
     $acl->deny($defaultRole, 'user.profile.logout');
     $acl->allow('user', 'default.index.index');
     $acl->allow('user', 'user.profile.index');
     $acl->allow('user', 'user.profile.logout');
     $acl->deny('user', 'user.auth.index');
     $acl->deny('user', 'user.register.index');
     $acl->deny('user', 'user.register.recovery');
     $acl->deny('user', 'user.register.activate');
     if (Zend_Auth::getInstance()->hasIdentity()) {
         $userName = Zend_Auth::getInstance()->getIdentity();
         $model = new User_Model_UserProfile();
         $userRole = $model->userGetData($userName);
         $defaultRole = $userRole['role'];
     }
     $acl->setDefaultRole($defaultRole);
     $resource = $request->getModuleName() . '.' . $request->getControllerName() . '.' . $request->getActionName();
     if (!$acl->isAllowed($resource)) {
         if ($defaultRole == 'guest') {
             $request->setModuleName('user')->setControllerName('auth')->setActionName('index');
         } else {
             $request->setModuleName('user')->setControllerName('profile')->setActionName('index');
         }
     }
 }