Ver Mensaje Individual
  #6 (permalink)  
Antiguo 05/02/2011, 10:00
Avatar de MarioAraque
MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 15 años, 2 meses
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.