Tengo un usuario con derechos de visualización y edición para un tipo de contenido específico. Esto otorga el privilegio a todos los usuarios de ver y editar todos los nodos de ese tipo. Pero en realidad, quiero crear para cada usuario un nodo único, para que solo ese usuario pueda verlo y editarlo. ¿Cómo puedo hacer esto en Drupal 7?
10
Respuestas:
Con un módulo existente, puede hacerlo con Content Access , que (cuando se usa junto con ACL ) permite establecer los permisos para acceder a un nodo para cada usuario.
Esto significa que debe establecer los permisos de acceso manualmente para cada nodo.
Si crea manualmente los nodos, y luego desea asegurarse de que solo el usuario configurado como propietario del nodo pueda verlo (y editarlo), puede crear un módulo personalizado (lo que significa un módulo que es usado para su sitio) e implemente de la
hook_node_access()
siguiente manera (el código ha sido escrito para que sea más fácil de leer):Con esta implementación de enlace, no necesita editar manualmente los permisos de acceso otorgados para cada nodo de ese tipo de contenido que cree. Cambiar el propietario del nodo también sería más fácil, ya que no necesita cambiar los permisos de acceso de ese nodo; el código otorgaría automáticamente los permisos de actualización y visualización al usuario establecido como propietario (o autor) del nodo.
fuente
No necesita ningún módulo especial o código personalizado para hacer esto. Simplemente cree manualmente esos nodos, establezca los usuarios apropiados como propietario (autor) de los nodos y establezca permisos para este tipo de contenido para editar solo contenido propio (no edite ningún contenido de este tipo) y listo.
fuente
De lo que estás hablando es del control de acceso al nodo Drupal, que es un tema enorme.
El soporte integrado del núcleo para el control de acceso a los nodos es bastante claro, y para controlar el acceso para ver un nodo por rol, debe usar algún tipo de módulo de control de acceso a nodos. Hay una página en Drupal.org que enumera todos los módulos de acceso de nodo , con una revisión de cápsula de cada uno. Le sugiero que eche un vistazo a esa página para ver si puede encontrar un módulo adecuado para controlar el acceso.
El módulo Flexi Access parece ser el módulo que más se acerca a sus requisitos, ya que su función principal es permitirle controlar el acceso para usuarios individuales, en lugar de por rol o por término de taxonomía.
Es un pequeño módulo que le permite configurar ACL (listas de control de acceso) para usuarios individuales. Básicamente es una interfaz de usuario para el módulo ACL , por lo que también debe instalarla.
Carece de algunas de las características de los módulos de control de acceso más avanzados, como Content Access , pero se mantiene activamente y actualmente no hay errores abiertos en su cola de problemas.
Divulgación: soy el mantenedor de Flexi Access.
fuente