Login do usuário
Pesquisa no site
Assine o RSS do Drupal-BR
Download
Itens ativos
[RESOLVIDO] Como ocultar ABA criada por uma VIew dependendo do Papel do usuário?
Olá galera, dessa vez o problema é o seguinte:
Criei uma View do tipo Página que mostra uma ABA de MENU no perfil dos Usuários, meu problema é criar a regra que ela só apareça nos Perfis de Usuários com um Papel específico.
Tentei fazer como mostra nesse link http://drupal.org/node/483324, mas oculta qualquer aba menos as criadas por Views.
Agradeço a quem tiver uma luz pra mim.
Enviado por pedromikosz em seg, 01/02/2012 - 20:07
- Se logue ou se registre para poder enviar comentários
- 394 leituras



Restringir o acesso na própria view não resolve? Como está fazendo essa aba?
--
Leonardo Silva
Produtor Cultural
Desenvolvedor Web
Leopoldo, sua dica não resolve pois ao restringir o acesso a view eu bloqueio a visualização da aba para o usuário logado e não para o usuário do perfil em que a aba é exibida. Print da View:
Alguma ideia de como fazer?
Hummmm, posso estar errado, mas não dá para você definir que essa página vai ser exibida apenas para um determinado "role" (papel)?
Veja a imagem que eu retirei, no item em vermelho, escolha o acesso desse display apenas para o perfil desejado, logo, ele não vai aparece para ninguém mais (acho).
Imagem
Até
Marcelo Spano
Web Designer/Developer
www.marcelospano.com.br
Marcelo, vlw pela observação, mas como expliquei abaixo, definir um papel nesse campo faz com que a Aba criada pela view seja vista apenas pelo usuário logado com aquele papel, como o que quero é que a Aba apareça ná página do usuário com o papel, tenho que informar essa restrição em Argumentos.
Eu consegui fazer isso, porém a view mostra o Corpo de uma Page, quando informo a regra no Argumento a Aba só aparece no perfil de quem tiver o Papel informado, porém a aba leva a uma página em branco e não carrega a página que criei, o problema deve estar nos Argumentos uma vez que quando removo eles o conteúdo da página é mostrado.
Print dos Argumentos. Usuário UID:

"Ação tomada quando o argumento não estiver presente" de ser:
- Exibir todos os valores (ou)
- Fornecer um argumento padrão -> ID do usuário a partir da URL
--
Leonardo Silva
Produtor Cultural
Desenvolvedor Web
Ai Leonardo, não havia tentado isso, mas também não retorna o conteúdo da página =(
Outra ideia?
Pode tentar deixar o validador como básico, combinando as opções que falei no comentário anterior. Pode (também com validador básico) "fornecer um valor padrão -> código php" e usar php para colocar uma condição (ver global $user e user_load()).
Também pode usar panels para sobescrever a página do usuário e obter mais funções via interface drupal. Pode usar context para colocar as condições.
--
Leonardo Silva
Produtor Cultural
Desenvolvedor Web
Ai Leonardo, consegui, segue o que fiz:
Ação tomada quando o argumento não estiver presente:
-> Fornecer um argumento padrão
Opções do argumento padrão
-> Identificador do usuário da URL
Opções do validador
-> Validador -> Usuário
Tipo de argumento a ser usado:
-> Permitir UIDs numéricos e nomes de usuários
Restringir usuários pelo seu papel no site
Restringir aos seguintes papéis: CLIENTE
O que fazer se o argumento não validar: Esconder a View
E o cara que faz o resto:
Excluir o argumento (Marquei esse cara e resolvido o meu problema).
Dessa forma a Aba criada pela View só aparece no perfil do Usuário CLIENTE e quando clico nela o conteúdo da página que ela carrega é mostrado.
Vlw pelas ajudas e fica a dica. ^^
Descobri Leonardo, rss falta de atenção.
Ao restringir o acesso para um papel, apenas o usuário daquele papel visualiza a aba, o que deve ser feito é a restrição dentro do argumento. Nesse caso Usuário UID, incluindo que ele deve ser de um determinado papel. Dessa forma a aba só aparece para o usuário daquele papel.
Vlw pela ajuda.