Mee no Twitter Mee no FaceBook

Como controlar o acesso ao Magento (private store)


Essa é uma dica para restringir o acesso a uma, algumas ou todas as páginas do Magento apenas alterando algumas configurações no acesso ao template.

Esse artigo foi baseado no artigo da Chilli Pepper Design que pode ser encontrado em chilipepperdesign e foi testado na loja versão 1.3 do Magento.

1- Criando o arquivo que verifica se o usuário está logado


Primeiramente vamos criar um arquivo com o código responsável por validar se o usuário está logado ou não, esse código será executado sempre que uma página restrita for acessada para validar o usuário e redirecioná-lo para a página de login caso usuário não logado.

Crie o arquivo auth-redirect.phtml em /template/page/html/ da pasta do seu template padrão, no meu caso em loja_magento/app/design/frontend/default/default/template/page/html/auth-redirect.phtml

// guarda a url atual para posterior acesso após o login
Mage::getSingleton('customer/session')->setBeforeAuthUrl(
  $this->getRequest()->getRequestUri());
// caso usuário não logado redireciona para a tela de login
if(!Mage::getSingleton('customer/session')->isLoggedIn()) {
  header("Status: 301");
  header('Location: '.Mage::helper('core/url')->
    getHomeUrl().'customer/account/login') ;
  exit;
}

2- Disponibilizando o bloco de validação para o template


Agora vamos adicionar esse código como um bloco em nosso layout para ele ficar disponível para todas as páginas do template, para isso editamos o arquivo page.xml encontrado em /layout/ que no meu caso está em loja_magento/app/design/frontend/default/default/layout/page.xml e adicionamos a seguinte linha de código:

<block as="auth-redirect" template="page/html/auth-redirect.phtml" />

Insira esse código logo abaixo do bloco root:

<block name="root" output="toHtml">

3- Executando a validação nos templates


Para executar a validação devemos chamar o código do arquivo auth-redirect.phtml que já está disponível nas páginas de template, para isso edite todos os arquivos de template encontrados na pasta /template/page/ como exibido abaixo:

  • 1column.phtml
  • 2columns-left.phtml
  • 2columns-right.phtml
  • 3columns.phtml
  • ...

Insira o seguinte código no topo do arquivo logo abaixo da abertura da tag <?php:

echo $this->getChildHtml('auth-redirect');

4- Habilitando as páginas de login e cadastro de usuário


Por fim devemos permitir que a página de login e cadastro de usuário seja acessada para permitir que o usuário consiga acessar o site, para isso devemos editar o xml /layout/customer.xml e inserir o seguinte código:

<remove name="auth-redirect" />

O código acima deve ser inserido dentro das tags <customer_account_login> e <customer_account_create> para permitir logar e criar conta respectivamente.

Você pode adicionar em outros locais do site esse código para permitir o acesso público a eles.

Obs.: é aconselhável desabilitar o cache para garantir que a alteração entre em vigos, para isso no painel de administração da loja entre em System/Cache Managment, selecione "disable" em all cache e salve a alteração. Também exclua o conteúdo da pasta var/cache.

Mee Creations
A Evolução da Criação!

Todos os Artigos
Copyright Mee Creations © 2010. Todos os direitos reservados.
Valid XHTML 1.0 Transitional