Esempio n. 1
0
 /**
  * Add index to category collection
  *
  * @param Mage_Catalog_Model_Resource_Category_Collection|Mage_Catalog_Model_Resource_Category_Flat_Collection $collection
  * @param int $customerGroupId
  * @param int $websiteId
  * @return Enterprise_CatalogPermissions_Model_Resource_Permission_Index
  */
 public function addIndexToCategoryCollection($collection, $customerGroupId, $websiteId)
 {
     $adapter = $this->_getReadAdapter();
     if ($collection instanceof Mage_Catalog_Model_Resource_Category_Flat_Collection) {
         $tableAlias = 'main_table';
     } else {
         $tableAlias = 'e';
     }
     $collection->getSelect()->joinLeft(array('permission_index' => $this->getTable('permission_index')), 'permission_index.category_id = ' . $tableAlias . '.entity_id' . ' AND ' . $adapter->quoteInto('permission_index.website_id = ?', $websiteId) . ' AND ' . $adapter->quoteInto('permission_index.customer_group_id = ?', $customerGroupId), array());
     if (!Mage::helper('enterprise_catalogpermissions')->isAllowedCategoryView()) {
         $collection->getSelect()->where('permission_index.grant_catalog_category_view = ?', Enterprise_CatalogPermissions_Model_Permission::PERMISSION_ALLOW);
     } else {
         $collection->getSelect()->where('permission_index.grant_catalog_category_view != ?' . ' OR permission_index.grant_catalog_category_view IS NULL', Enterprise_CatalogPermissions_Model_Permission::PERMISSION_DENY);
     }
     return $this;
 }