00001 <?php 00002 /** 00003 * Magento 00004 * 00005 * NOTICE OF LICENSE 00006 * 00007 * This source file is subject to the Open Software License (OSL 3.0) 00008 * that is bundled with this package in the file LICENSE.txt. 00009 * It is also available through the world-wide-web at this URL: 00010 * http://opensource.org/licenses/osl-3.0.php 00011 * If you did not receive a copy of the license and are unable to 00012 * obtain it through the world-wide-web, please send an email 00013 * to license@magentocommerce.com so we can send you a copy immediately. 00014 * 00015 * DISCLAIMER 00016 * 00017 * Do not edit or add to this file if you wish to upgrade Magento to newer 00018 * versions in the future. If you wish to customize Magento for your 00019 * needs please refer to http://www.magentocommerce.com for more information. 00020 * 00021 * @category Mage 00022 * @package Mage_Customer 00023 * @copyright Copyright (c) 2008 Irubin Consulting Inc. DBA Varien (http://www.varien.com) 00024 * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) 00025 */ 00026 00027 /** 00028 * Customer abstract API resource 00029 * 00030 * @category Mage 00031 * @package Mage_Customer 00032 * @author Magento Core Team <core@magentocommerce.com> 00033 */ 00034 class Mage_Customer_Model_Api_Resource extends Mage_Api_Model_Resource_Abstract 00035 { 00036 /** 00037 * Default ignored attribute codes 00038 * 00039 * @var array 00040 */ 00041 protected $_ignoredAttributeCodes = array('entity_id', 'attribute_set_id', 'entity_type_id'); 00042 00043 /** 00044 * Default ignored attribute types 00045 * 00046 * @var array 00047 */ 00048 protected $_ignoredAttributeTypes = array(); 00049 00050 /** 00051 * Check is attribute allowed 00052 * 00053 * @param Mage_Eav_Model_Entity_Attribute_Abstract $attribute 00054 * @param array $attributes 00055 * @return boolean 00056 */ 00057 protected function _isAllowedAttribute($attribute, array $filter = null) 00058 { 00059 if (!is_null($filter) 00060 && !( in_array($attribute->getAttributeCode(), $filter) 00061 || in_array($attribute->getAttributeId(), $filter))) { 00062 return false; 00063 } 00064 00065 return !in_array($attribute->getFrontendInput(), $this->_ignoredAttributeTypes) 00066 && !in_array($attribute->getAttributeCode(), $this->_ignoredAttributeCodes); 00067 } 00068 00069 /** 00070 * Return list of allowed attributes 00071 * 00072 * @param Mage_Eav_Model_Entity_Abstract $entity 00073 * @param array $filter 00074 * @return array 00075 */ 00076 public function getAllowedAttributes($entity, array $filter = null) 00077 { 00078 $attributes = $entity->getResource() 00079 ->loadAllAttributes($entity) 00080 ->getAttributesByCode(); 00081 $result = array(); 00082 foreach ($attributes as $attribute) { 00083 if ($this->_isAllowedAttribute($attribute, $filter)) { 00084 $result[$attribute->getAttributeCode()] = $attribute; 00085 } 00086 } 00087 00088 return $result; 00089 } 00090 } // Class Mage_Customer_Model_Api_Resource End