Pregunta

Quiero dar salida a 2 nuevos roles. Esta nueva función será gestionar los clientes, pero uno se encargará de los clientes del 'grupo X' y el otro el 'grupo Y'. ¿Hay una solución para filtrar esto?

I significa, 'papel 1' no quiere ver clientes grupo Y, pero el grupo X, y el papel 2 lo contrario de papel 1.

¿Es esto posible? Busqué extensiones pero la investigación fue inútil.

Gracias.

¿Fue útil?

Solución

Usted tendrá que crear un módulo personalizado para tal puesto ACL de Magento no es de grano fino para el control. Normalmente me acaba de anular el bloque de administración rejilla del cliente, pero he estado por lo que es un punto de aprender maneras de hacer las cosas con los observadores, así que aprendí algunas cosas así, espero que esta ayuda!

los módulos config.xml

<config>
    <adminhtml>
        <events>
            <eav_collection_abstract_load_before>
                <observers>
                    <groupusersbyroles>
                        <class>namespace_adminusergroups_model_usergroups</class>
                        <method>gridByUsers</method>
                    </groupusersbyroles>
                </observers>
            </eav_collection_abstract_load_before>
        </events>
    </adminhtml>
</config>

los módulos Modelo para el observador evento configurado anteriormente (su espacio de nombre variará en el nodo <class> del config.xml:

public function gridByUsers($observer) {

    $collection = $observer->getCollection();
    if ($collection instanceof Mage_Customer_Model_Resource_Customer_Collection) {

        // Check for Admin's user group role ID
        $adminRoleId = Mage::getSingleton('admin/session')->getUser()->getRole()->getRoleId();            
        if ($adminRoleId == "1") {

            // filter out customers by their group ID
            $collection->addFieldToFilter('group_id', '1');

            // remove group column from grid layout
            $block = Mage::app()->getLayout()->getBlock('customer.grid');
            $block->removeColumn('group');
        }
    }

}

Tenga en cuenta que esto es sólo con valores codificados de Identificación papel de la administración y los clientes del grupo de identificación, lo más probable es que desee crear un atributo al cliente personalizado para asociar los dos ID juntos. Si sólo lo está haciendo por un puñado de clases, y de atención al cliente del administrador del grupo es que puede ser suficiente con una simple matriz o simplemente añadiendo acondicionado adicional para sus documentos de identidad.

También aquí hay un artículo semi-relacionados:

Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top