как сделать magento доступной только для зарегистрированных пользователей? - PullRequest
1 голос
/ 18 февраля 2012

Я хочу сделать свой сайт закрытым только для зарегистрированных пользователей. Если кто-нибудь попытается получить доступ к моей домашней странице. экран входа в систему должен быть первым. Люди должны зарегистрироваться или войти, чтобы войти на мой сайт.

Как это сделать? Любое предложение от экспертов magento?

1 Ответ

6 голосов
/ 18 февраля 2012

Если вы занимаетесь программированием, то простая логика будет проверять, вошел ли пользователь в систему или нет, перенаправить его на страницу входа с помощью события: controller_action_predispatch.
1> В вашем config.xml добавьте следующий код xml:

...
<frontend>
    <events>
        <controller_action_predispatch>
            <observers>
                <yourmodule_controller_action_predispatch>
                    <class>yourmodule/observer</class>
                    <method>checkForLogin</method>
                </yourmodule_controller_action_predispatch>
            </observers>
        </controller_action_predispatch>
    </events>
</frontend>
...

2> Создайте Observer.php в каталоге Model / вашего модуля.
Вот основной код, который вам нужно использовать в вашем классе Observer:

<?php
class YourCompany_Yourmodule_Model_Observer extends Varien_Object{

    public function checkForLogin(Varien_Event_Observer $observer){
        if(!Mage::getSingleton('customer/session')->isLoggedIn() && $observer->getControllerAction()->getFullActionName() != 'customer_account_login') {
            Mage::app()->getResponse()->setRedirect(Mage::getUrl('customer/account/login'))->sendResponse();
            exit;
        }
    }
}

Если вас интересует более надежное решение с гораздо большим количеством функций, готовых для использования в вашем магазине B2B, то вот замечательное расширение Magento под названием «Store Restriction Pro»: http://www.magepsycho.com/store-restriction-pro.html

Удачи


Обновление (13-11-27), JSOV

Чтобы разрешить забытый пароль, доступ для входа в систему и функциональность по умолчанию, вы можете добавить массив страниц по умолчанию, для которых вы хотите дать разрешения, а затем проверить и перенаправить. например:

...
$allow = array('customer_account_login','customer_account_forgotpassword','customer_account_resetpassword','customer_account_loginpost','customer_account_forgotpasswordpost','customer_account_resetpasswordpost');
if(!Mage::getSingleton('customer/session')->isLoggedIn() && !in_array(strtolower($observer->getControllerAction()->getFullActionName()),$allow) ) {
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...