Foros del Web » Creando para Internet » Sistemas de gestión de contenidos » Drupal »

Como hago que un tipo de contenido sea accesible solo para un rol?

Estas en el tema de Como hago que un tipo de contenido sea accesible solo para un rol? en el foro de Drupal en Foros del Web. Hola, a ver si me podéis ayudar, vereis necesito que un tipo de contenido, informes, sea solo accesible a un rol. Estos informes solo podrían ...
  #1 (permalink)  
Antiguo 04/02/2011, 06:02
 
Fecha de Ingreso: febrero-2010
Mensajes: 227
Antigüedad: 14 años, 8 meses
Puntos: 4
Como hago que un tipo de contenido sea accesible solo para un rol?

Hola,
a ver si me podéis ayudar, vereis necesito que un tipo de contenido, informes, sea solo accesible a un rol. Estos informes solo podrían ser vistos en su totalidad y descargados en pdf por los usuarios registrados, pero quiero que todos los usuarios, estén o no registrados, puedan ver el título de los informes.

¿Cómo podría hacer esto?

Muchas gracias!
__________________
Devivencias | psicologia online
  #2 (permalink)  
Antiguo 04/02/2011, 10:07
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 15 años, 1 mes
Puntos: 265
Respuesta: Como hago que un tipo de contenido sea accesible solo para un rol?

De normal yo lo haria desde el tpl, pero bueno .. me puse a buscar un modulo y creo q este te puede servir:

http://drupal.org/project/node_privacy_byrole

Saludos.
  #3 (permalink)  
Antiguo 04/02/2011, 10:32
 
Fecha de Ingreso: febrero-2010
Mensajes: 227
Antigüedad: 14 años, 8 meses
Puntos: 4
Respuesta: Como hago que un tipo de contenido sea accesible solo para un rol?

Hola Mario,
Gracias por la respuesta, creo que puede ser muy útil, estaba buscando algunos que limitase más la descarga y no encontraba nada solo mucha gente con este problema y alguna solución parcial y más para el cinco.

Te cuento a ver que te parece a ti, creo que otra alternativa podría ser hacer alguna view y limitar la visibilidad con algún argumento a los usuarios que no están registrados.

En ambos casos, el tema está en que evitas que vean y lo ideal sería que vieran el title pero al clickar si no estuviesen registrados saliese que se tienen que registrar...

Le sigo dando vueltas. Muchas gracias!!
__________________
Devivencias | psicologia online
  #4 (permalink)  
Antiguo 04/02/2011, 10:58
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 15 años, 1 mes
Puntos: 265
Respuesta: Como hago que un tipo de contenido sea accesible solo para un rol?

Bueno, ahora entendi mas o menos lo que queres hacer.

El CCK tiene incluido un modulo "Content permissions", el cual te da permisos para cada campo que vos vayas agregando en los tipos de contenido. La verdad es un modulo molesto, pq tenes q ir asignando a todos los roles los permisos, pero bueno ... no se si te sirva, puesto que vos queres mostrar el campo, y hacer la limitacion a la hora de hacer un click.

Yo desarrolle una web en la cual tuve que restringir la descarga directa de un fichero para los usuarios anonimos.
La solucion que use fue usar el hook_file_download:

http://api.drupal.org/api/drupal/dev...ile_download/6

En resumen, el hook se activa cuando se va a descargar un fichero ... pero tiene una pega, hay que usar el metodo privado de almacenamiento de archivos .. cosa que seguro vos no usas. No es lo mas normal jeje...

O con Javascript y Ajax podes hacer algo, pero eso ya no seria cosa de Drupal.

Saludos.
  #5 (permalink)  
Antiguo 05/02/2011, 05:55
 
Fecha de Ingreso: febrero-2010
Mensajes: 227
Antigüedad: 14 años, 8 meses
Puntos: 4
Respuesta: Como hago que un tipo de contenido sea accesible solo para un rol?

Mario eres un crack! es eso! pero solo dos preguntas ¿Cómo funciona el hook?, es decir ¿dónde tendría que poner esa función? y dos ¿cómo es eso del método privado de almacenamiento de archivos?

Gracias nuevamente!
__________________
Devivencias | psicologia online
  #6 (permalink)  
Antiguo 05/02/2011, 10:00
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 15 años, 1 mes
Puntos: 265
Respuesta: Como hago que un tipo de contenido sea accesible solo para un rol?

Bueno, hay resumido en 2 lineas una serie de preguntas que tienen respuestas muy largas, skat.

Para poder implementar un hook en Drupal, tenes que crearte un modulo personalizado, es decir, hacer tu propio modulo, y dentro del mismo implementar el hook_file_download. Es probable que me preguntes como se hace un modulo en Drupal, lo mejor que podes hacer es buscar en google, porque no es algo que pueda explicar en un post. No es dificil, pero no es algo que tenga que explicarte yo aca.

Drupal tiene dos metodos de almacenamiento de archivos, el privado y el publico. Por defecto los ficheros estan publicos para los usuarios, sin embargo si vos cambias el metodo a privado, entonces dejas que Drupal administre la transferencia de los mismos ... y ahi es donde se aplica el hook, al momento de transferir un archivo.
Para poder cambiar entre metodos, tenes que ir a la parte de "Sistema de archivos" en el panel de Administracion.

El hook_file_download es facilisimo, se activa en el momento en que Drupal va a transferir un archivo, tiene como parametro la ruta del mismo. Entonces vos haces tus validaciones en base a la ruta, y si el usuario no debe descargar el archivo, entonces devolve un -1 ... lo que hara Drupal es darte un acceso denegado.
Seguramente vos quieras imprimir en pantalla un error o un alert en javascript, la verdad no se como implementar eso, porque el hook funciona asi, ahi te quedaria en tus manos probar y trastear hasta conseguir algo bueno.

Te dejo de nuevo el enlace con la documentacion:

http://api.drupal.org/api/drupal/dev...ile_download/6

Saludos.
  #7 (permalink)  
Antiguo 06/02/2011, 05:35
 
Fecha de Ingreso: febrero-2010
Mensajes: 227
Antigüedad: 14 años, 8 meses
Puntos: 4
Respuesta: Como hago que un tipo de contenido sea accesible solo para un rol?

Hola Mario, muchas gracias por tu explicación, lo cierto es que lo de crear un módulo de momento es algo que me queda un poco grande, así que optaré por utilizar el otro mencionado que soluciona bastante bien el problema.
Nuevamente gracias y un saludo!
__________________
Devivencias | psicologia online

Etiquetas: contenido, rol, tipo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:55.