如何从其他管理员用户隐藏一个管理员用户的产品?

时间:2016-10-27 21:02:12

标签: magento

我创建了用户角色商家,并创建了名为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

提前致谢。

1 个答案:

答案 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)创建产品并将其附加到您的用户。其他用户不应再看到它了。