Necesito ayuda y aquí está el problema:
Estoy construyendo un sitio usando Drupal 7.
Necesito hacer que ciertas páginas solo sean visibles para los usuarios registrados (cada uno con su propio nombre de usuario / contraseña), otros usuarios simplemente deben ser redirigidos o mostrar un mensaje de error. ¿Esta funcionalidad puede estar incluida en el propio Drupal 7 o hay un módulo que lo haga (algo más simple que los grupos orgánicos)?
Si está buscando hacerlo mediante programación dentro de un módulo o nodo (con filtro de entrada PHP), puede usar user_is_logged_in () para algo como esto:
fuente
Aunque el módulo de acceso al contenido resuelve bien el problema, es un módulo adicional y aún no es estable en D7.
Una alternativa que usa solo módulos de uso común es:
Cree los nodos pero configúrelos como no publicados
Cree una vista de nodo, por ejemplo, "contenido restringido por roles". Muestre el contenido completo del nodo para replicar el nodo estándar /% display.
Restrinja la vista a sus roles deseados (por ejemplo, "Rol | Usuario autenticado")
Establezca la ruta de vista a algo como:
Establecer un filtro contextual por Nid.
Elimine el filtro predeterminado "contenido publicado".
Ahora tendrá una vista que funciona como nodo /%, excepto que también maneja contenido no publicado y restringe por rol.
fuente
Existe una solución programática bastante simple, puede leer el rol del usuario (y también si es anónimo o registrado) de esta manera:
Obtendrá una matriz con roles de usuario actual en $ roles.
Puede redirigir a ese usuario dependiendo del rol con cierta lógica usando
fuente