2016-10-27 10 views
0

私はユーザーロールマーチャントを作成し、crewsaga_sellerという名前のユーザーを作成しました。今すぐ彼は管理者によって追加された製品を見ることができます。彼だけが追加した製品を見ることができるように、どうすればいいですか?1人の管理ユーザーの製品を他の管理ユーザーから隠すには?

私は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

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)は、製品を作成し、ユーザーにそれを追加します。他のユーザーはもうそれを見るべきではありません。

関連する問題