Responder a este comentário

Criando um módulo Drupal que redirecione o usuário após o login para uma página específica dependendo do papel do usuário.

 Muitas pessoas tem dificuldade de usar módulos de redirecionamento no drupal, entao mostrar como seria para você desenvolver o seu próprio módulo utilizando a HOOK_USER, que irá redirecionar o usuário para uma página que iremos definir dependendo do papel atribuido a ele.

Primeiro vamos ao nosso arquivo projeto_redirecionador.info, que identifica o nosso módulo na listagem:

    ; $Id$

    name = Redirecionador de login

    description = "modulo que ira redirecionar o usuario depois de logar"

    core = 6.x

    package = Lithic


Beleza, com isso o nosso módulo já irá aparecer na listagem de módulos, agora precisamos criar o módulo em si. Para isso vamos ao nosso arquivo projeto_redirecionador.module:

    <?php

     

      //Utilizaremos o hook_user para captarmos o momento em que o usuário está se logando no site.

      function projeto_redirecionador_user($op, &$edit, &$user, $category = NULL){

          if($op == 'login') {

            global $user;

            //pegando a url base para o redirecionamento.

            global $base_path;

            $var = $_GET['q'];

           

            // Estamos pegando a URL para saber se este acesso não se trata de um reset de password, pois o reset de password deverá ser enviado para a página de edição do usuario.

            $url = preg_match("/user\/reset/",$var);

 

            //se não for um reset de password.

            if(!($url)){

                //se for um login normal.

                foreach ($user as $key => $value) {

                    $usuario[$key] = $value;

                }

                //se o usuário estiver no papel de cliente.

                if (in_array('cliente', $usuario['roles'])) {

                    //setando o endereço que o usuário será redirecionado.

                    $endereco = $base_path . "cliente";

                    //redirecionando o usuário para a página.

                    header("Location:$endereco");

                    exit();

                }    

                //fazendo o mesmo, porem se o usuário for administrador.

                if (in_array('administrador', $usuario['roles']) ) {

                    $endereco = $base_path . "administrardor";

                    header("Location:$endereco");

                    exit();

                }     

               

            }    

           

          }

      }

     

    ?>

Bom galera, com isso o seu módulo já estará prontinho para funcionar.

Fonte:

http://lithic.com.br/blog/tutorial/criando-um-modulo-drupal-que-redireci...

5
Your rating: Nenhum Average: 5 (1 vote)

Responder

O conteúdo deste campo é privado não será exibido ao público.