/** * Allows users to see all other users that are registered in * the application * * @access public * @return void */ public function indexAction() { $this->title = ''; $userModel = new BackofficeUser(); $this->view->paginator = $userModel->findAll($this->_getPage()); }
/** * Generate the Acl object from the permission file * * @return Zend_Acl */ private static function _generateFromDb() { $aclObject = new Zend_Acl(); $aclObject->deny(); //Get all the models $backofficeUserModel = new BackofficeUser(); $groupModel = new Group(); $flagModel = new Flag(); $flipperModel = new Flipper(); $privilegeModel = new Privilege(); //Add all groups $groups = $groupModel->fetchAllThreaded(); foreach ($groups as $group) { if ($group->parent_name) { $aclObject->addRole(new Zend_Acl_Role($group->name), $group->parent_name); } else { $aclObject->addRole(new Zend_Acl_Role($group->name)); } } //Add all users $users = $backofficeUserModel->findAll(); foreach ($users as $user) { $aclObject->addRole(new Zend_Acl_Role($user->username), $user->groupNames); } //Add all resources $flags = $flagModel->fetchAll(); foreach ($flags as $flag) { $aclObject->addResource(new Zend_Acl_Resource($flag->name)); } //Add hardcoded resources $aclObject->addResource('frontend-error'); $aclObject->addResource('backoffice-error'); //Populate the ACLs $flippers = $flipperModel->fetchAll(); foreach ($flippers as $flipper) { switch (APPLICATION_ENV) { case APP_STATE_PRODUCTION: $flag = $flag->active_on_prod; break; default: $flag = $flag->active_on_dev; } $privilege = $flipper->findParentRow('Privilege'); $flipper->privilegeName = $privilege->name; $group = $flipper->findParentRow('Group'); $flipper->groupName = $group->name; $flag = $flipper->findParentRow('Flag'); $flipper->flagName = $flag->name; if (Zend_Registry::get('IS_PRODUCTION')) { $envAllowed = $flag->active_on_prod; } else { $envAllowed = $flag->active_on_dev; } if ($flipper->allow && $envAllowed) { $aclObject->allow($flipper->groupName, $flipper->flagName, $flipper->privilegeName); } else { $aclObject->deny($flipper->groupName, $flipper->flagName, $flipper->privilegeName); } } //Hardcode basic paths for members foreach (App_FlagFlippers_Manager::$_membersAllowedResources as $resource) { $aclObject->allow('members', $resource); } //Hardcode basic paths for guests foreach (App_FlagFlippers_Manager::$_guestsAllowedResources as $resource => $roles) { if (!is_array($roles)) { $aclObject->allow('guests', $resource); } else { foreach ($roles as $r) { $aclObject->allow('guests', $resource, $r); } } } //Everbody can see the errors $aclObject->allow(null, 'frontend-error'); $aclObject->allow(null, 'backoffice-error'); //Admins are allowed everywhere $aclObject->allow('administrators'); return $aclObject; }