我创建了用户角色商家,并创建了名为crewsaga_seller的用户。现在他也可以看到管理员添加的产品了。我该如何限制他只能看到他添加的产品?
我在grid.php中尝试了以下更改,但我得到一个空表。
$admin = Mage::getSingleton('admin/session')->getUser();
if($admin->getUsername() !='your actual admin'){
$collection->addAttributeToFilter('product_user', $admin->getUsername());
}
Magento 1.9.2.4
提前致谢。
答案 0 :(得分:0)
1)创建一个属性,例如all_magento_users(带有输入类型下拉列表)并定义其中的所有用户(在您的情况下为crewsaga_seller,your_admin_user)。然后将此属性分配给您的属性集。
2)将app \ code \ core \ Mage \ Adminhtml \ Block \ Catalog \ Product \ Grid.php复制到app \ code \ local \ Mage \ Adminhtml \ Block \ Catalog \ Product \ Grid.php,以便进行更改在这个文件中。
3)在此之后的函数_prepareCollection()中:
$store = $this->_getStore();
$collection = Mage::getModel('catalog/product')->getCollection()
->addAttributeToSelect('sku')
->addAttributeToSelect('name')
->addAttributeToSelect('attribute_set_id')
->addAttributeToSelect('type_id');
添加以下代码:
$attr_code = 'all_magento_users'; //the name of the attribute you created
$admin = Mage::getSingleton('admin/session')->getUser();
$_product = Mage::getModel('catalog/product');
$attr = $_product->getResource()->getAttribute($attr_code);
if ($attr->usesSource() && ($admin->getUsername() != 'your_admin_user')) { //your admin user, so you can see all products
$product_value_id = $attr->getSource()->getOptionId($admin->getUsername());
$collection->addAttributeToFilter($attr_code, $product_value_id);
}
4)创建产品并将其附加到您的用户。其他用户不应再看到它了。