¿Cómo limitar el acceso directo a las URL de los nodos que se muestran en una galería de videos creada con Vistas?

10

He hecho una galería de videos usando Vistas . Pero solo quiero que la página sea accesible al público y evitar el acceso a cada uno de los videos individualmente.

Los videos tuvieron que ser creados como un tipo de contenido, por lo que todos ellos tienen ULR accesibles como /content/video-1, etc.

Cesar
fuente

Respuestas:

5

Pruebe el módulo de acceso al videocontenido y evite el acceso al contenido individualmente (o también puede configurar el acceso a él según lo desee roles)

Este módulo le permite administrar permisos para tipos de contenido por rol y autor. Le permite especificar vistas personalizadas, editar y eliminar permisos para cada tipo de contenido. Opcionalmente, puede habilitar la configuración de acceso al contenido, por lo que puede personalizar el acceso para cada nodo de contenido.

También puede usar el módulo de permisos de vista de nodo , pero sugiero su uso Content access module.

(si desea trabajar con drupal para el futuro, es mejor involucrarse con estos módulos útiles)

Yusef
fuente
Casi lo que necesitaba. Finalmente controlé el acceso a través de bajo nivel, porque quería redirigir a la página de inicio en algunos casos, 404 en otros, etc., por lo que tenía un mejor control, pero creo que este módulo podría funcionar en la mayoría de los casos. Tal vez con un mejor ajuste en mi caso, pero no tuve tiempo para investigar.
Cesar
3

Instale el módulo de permisos de vista de nodo .

El módulo de permisos de vista de nodo habilita los permisos "Ver contenido propio" y "Ver cualquier contenido" para cada tipo de contenido en la página de permisos como lo estaba en Drupal 6.

Ahora pase a la página de permisos y elimine Ver cualquier permiso de contenido del tipo de contenido de video para usuario anónimo .

En caso de que quiera que solo algunos de los videos de la Galería de videos sean accesibles para el usuario anónimo, instale el módulo de acceso denegado.

Nikhil Banait
fuente
1

Simplemente actualice su tipo de contenido.

  1. Agregue un campo numérico como display_order, etc.

  2. Establezca el valor de este campo solo para los videos que desea mostrar.

  3. Vaya a su configuración de vista y establezca;

    Usar buscapersonas: muestra un número específico de elementos | x artículos

    donde x es el número de videos que desea mostrar

  4. Luego aplique la clasificación por orden de visualización

Espero que funcione.

Iqbal
fuente
1

Creo que el módulo Rabbit Hole hace exactamente lo que estás buscando. Aquí hay un extracto de la página de descripción del módulo que responde a su necesidad. Buena suerte.

Rabbit Hole es un módulo que agrega la capacidad de controlar lo que debería suceder cuando una entidad se está viendo en su propia página.

Quizás tenga un tipo de contenido que nunca debería mostrarse en su propia página, como un tipo de contenido de imagen que se muestra en un carrusel. Rabbit Hole puede evitar que este nodo sea accesible en su propia página, a través de node / xxx.

Mario Awad
fuente
1

Vaya por el módulo de madriguera de conejo , hace exactamente lo mismo. Se puede acceder a todo el contenido a través de vistas / código, pero cuando intenta acceder a la página de detalles "contenido / ***", se le niega el acceso o puede establecer una redirección.

nikunj
fuente
Lo llevaré, gracias. Por el momento, lo he resuelto en un nivel bajo, pero es mejor saber que ya hay módulos personalizados.
Cesar
0

1) Cree un campo de valor booleano en su tipo de contenido.

2) Si el valor se selecciona como verdadero, se debe agregar una clase única a ese campo de video, si el valor se selecciona como falso, la clase no se debe agregar a ese campo de video.

3) Escriba un poco de CSS para ocultar los videos donde la clase no está presente.

Alfred Armstrong
fuente
0

Usando el módulo Reglas puede implementar una regla similar 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" } }
    ]
  }
}

Cualquiera que intente acceder a la ruta relativa content/video-1será redirigido a una página con ruta no_accessy se mostrará un mensaje de error relacionado (adapte esta ruta para que se ajuste a sus propias convenciones y revise el mensaje que se mostrará).

La regla anterior solo restringe el acceso a la ruta relativa content/video-1(como en su pregunta). Si desea expandir la regla a URL similares, cambie content\/video-1a algo como content\/video-\\d+$, o cualquier variación que se ajuste a la convención de nomenclatura de sus rutas.

La regla anterior no tiene en cuenta (todavía) para aplicar solo la Acción de reglas solo para usuarios con roles seleccionados. Pero para cualquiera que esté un poco familiarizado con el módulo de Reglas, esa es una "Condición" directa para agregar ... por ejemplo: omitir la acción de reglas para usuarios con un rol como editor, administrador, etc. Lo que puede hacer al agregar una Reglas Condición como "el usuario NO tiene rol de administrador (y / o editor)". De esa manera, ese tipo de usuarios especiales aún pueden ver dichos nodos de todos modos (sin esa condición adicional, ya no pueden ver tales nodos más ...).

Para experimentar con esta regla en su propio sitio, simplemente copie todo el código de Reglas anterior y péguelo en una nueva Regla en su propio sitio, creada mediante la función "Importar" (disponible si la IU de Reglas está habilitada). Luego, edite / refine más para que se ajuste a su propio entorno (por ejemplo, se mostrará el mensaje "Lo siento, ...").

Refinamiento adicional

En una de las otras respuestas, agregó un comentario que incluye esto:

... Quería redirigir a la página de inicio en algunos casos, 404 en otros, etc., por lo que tenía un mejor control ...

Si eso es lo que también quiere hacer, puede refinar aún más la Acción de reglas anterior agregando también el módulo Reglas condicionales . Con eso, para cada uno de sus "algunos casos", puede especificar la URL apropiada para redirigir. Consulte mi respuesta a " ¿Cómo establecer los valores de algunos campos dependiendo del valor de un cuadro de lista? " Para ver una ilustración de cómo usar este módulo dentro de una Acción de reglas.

Pierre.Vriens
fuente