Como limitar o acesso direto a URLs de nós mostrados em uma galeria de vídeos criada com o Views?

10

Criei uma galeria de vídeos usando o Views . Mas eu só quero que a página seja acessível ao público e impeça o acesso a cada um dos vídeos individualmente.

Os vídeos tiveram que ser criados como um tipo de conteúdo, para que todos tenham ULRs acessíveis /content/video-1, etc.

Cesar
fonte

Respostas:

5

Experimente o módulo de acesso ao videoconteúdo e impeça o acesso ao conteúdo individualmente (ou você também pode configurar o acesso conforme desejar roles)

Este módulo permite gerenciar permissões para tipos de conteúdo por função e autor. Ele permite que você especifique a visualização personalizada, edite e exclua permissões para cada tipo de conteúdo. Opcionalmente, você pode ativar as configurações de acesso por conteúdo, para personalizar o acesso para cada nó de conteúdo.

Além disso, você pode usar o módulo Permissões de exibição de nó , mas sugiro o uso Content access module.

(se você deseja trabalhar com o drupal para o futuro, é melhor se envolver com esses módulos úteis)

Yusef
fonte
Quase o que eu precisava. Finalmente, controlei o acesso por baixo nível, porque, em alguns casos, queria redirecionar para a página inicial, em outros 404, etc., por isso tive um controle melhor, mas acho que esse módulo poderia funcionar na maioria dos casos. Talvez com um melhor ajuste no meu caso, mas não tive tempo para investigar.
Cesar
3

Instale o módulo Permissões de Visualização de Nó .

O módulo de permissões de visualização de nós ativa as permissões "Exibir conteúdo próprio" e "Exibir qualquer conteúdo" para cada tipo de conteúdo na página de permissões, como no Drupal 6.

Agora vá para a página de permissão e remova Ver qualquer permissão de conteúdo do tipo de conteúdo de vídeo para usuário anônimo .

Caso você queira que apenas alguns vídeos da Galeria de vídeos sejam acessíveis ao usuário anônimo, instale o módulo Negar acesso .

Nikhil Banait
fonte
1

Basta atualizar seu tipo de conteúdo.

  1. Adicione um campo numérico como display_order etc.

  2. Defina o valor desse campo apenas para os vídeos que você deseja mostrar.

  3. Vá para as configurações de exibição e defina;

    Usar pager: exibe um número especificado de itens | x itens

    onde x é o número de vídeos que você deseja mostrar

  4. Em seguida, aplique a classificação por ordem de exibição

Espero que funcione.

Iqbal
fonte
1

Eu acho que o módulo Rabbit Hole faz exatamente o que você está procurando. Aqui está um trecho da página de descrição do módulo, respondendo à sua necessidade. Boa sorte.

Rabbit Hole é um módulo que adiciona a capacidade de controlar o que deve acontecer quando uma entidade está sendo visualizada em sua própria página.

Talvez você tenha um tipo de conteúdo que nunca deve ser exibido em sua própria página, como um tipo de conteúdo de imagem exibido em um carrossel. A Rabbit Hole pode impedir que esse nó seja acessível em sua própria página, através do node / xxx.

Mario Awad
fonte
1

Vá para o módulo da toca do coelho , ele faz exatamente o mesmo. Todo o conteúdo é acessível por visualizações / códigos, mas quando você tenta acessar a página de detalhes "content / ***", o acesso é negado ou você pode definir um redirecionamento.

nikunj
fonte
Vou dar uma volta, obrigado. No momento, eu o resolvi em nível baixo, mas é melhor saber os módulos personalizados já feitos.
Cesar
0

1) Crie um campo de valor booleano no seu tipo de conteúdo.

2) Se o valor for selecionado como verdadeiro, uma classe exclusiva deverá ser adicionada a esse campo de vídeo; se o valor for selecionado como falso, a classe não deverá ser adicionada a esse campo de vídeo.

3) Escreva um CSS para ocultar os vídeos onde a classe não está presente.

Alfred Armstrong
fonte
0

Usando o módulo Rules , você pode implementar uma regra semelhante a esta:

{ "rules_disallow_accesss_to_selected_urls" : {
    "LABEL" : "Disallow access to selected URLs",
    "PLUGIN" : "reaction rule",
    "OWNER" : "rules",
    "REQUIRES" : [ "rules" ],
    "ON" : { "init" : [] },
    "IF" : [
      { "text_matches" : {
          "text" : [ "site:current-page:url" ],
          "match" : "content\/video-1",
          "operation" : "regex"
        }
      }
    ],
    "DO" : [
      { "drupal_message" : {
          "message" : "Sorry, access to URLs like [site:current-page:url] is not allowed ...",
          "type" : "error"
        }
      },
      { "redirect" : { "url" : "no_access" } }
    ]
  }
}

Qualquer pessoa que tentar acessar o caminho relativo content/video-1será redirecionada para uma página com o caminho no_accesse uma mensagem de erro relacionada será exibida (adapte esse caminho às suas próprias convenções e revise a mensagem a ser exibida).

A regra acima restringe apenas o acesso ao caminho relativo content/video-1(como na sua pergunta). Se você deseja expandir a regra para URLs semelhantes, mude content\/video-1para algo como content\/video-\\d+$ou qualquer variação que se encaixe na convenção de nomenclatura de seus caminhos.

A regra acima (ainda) não leva em consideração a aplicação da Ação de Regras apenas para usuários com funções selecionadas. Mas para alguém um pouco familiarizado com o módulo Regras, essa é uma "Condição" simples a ser adicionada ... por exemplo: pule a ação de regras para usuários com uma função como editor, administrador, etc. O que você pode fazer adicionando uma Regras Condição como "usuário NÃO possui administrador de funções (e / ou editor)". Dessa forma, esses tipos de usuários especiais ainda poderão visualizar esses nós de qualquer maneira (sem essa condição extra, eles também não poderão mais visualizar esses nós ...).

Para experimentar essa regra em seu próprio site, basta copiar todo o código de Regras acima e colá-lo em uma nova regra em seu próprio site, criada através da função "Importar" (disponível se a UI de regras estiver ativada). Depois edite / refine para ajustá-lo ao seu próprio ambiente (por exemplo, a mensagem "Desculpe, ..." será exibida).

Refinamento adicional

Em uma das outras respostas, você adicionou um comentário que inclui isso:

... eu queria redirecionar para a home page em alguns casos, 404 em outros, etc., para ter um controle melhor ...

Se é isso que você também deseja fazer, refine ainda mais a Ação de Regras acima adicionando o módulo Regras Condicionais . Com isso, para cada um dos "alguns casos", você pode especificar o URL apropriado para o qual redirecionar. Consulte minha resposta em " Como definir os valores de alguns campos, dependendo do valor de uma caixa de listagem? " Para obter uma ilustração de como usar este módulo em uma Ação de Regras.

Pierre.Vriens
fonte