it-swarm-es.com

¿Cómo oculto los elementos del menú principal?

Tengo usuarios que son propietarios de algunos nodos, y cada nodo tiene un enlace de menú en el menú principal. Los usuarios solo pueden ver los nodos que poseen y no pueden ver los nodos de otros usuarios.

El problema ahora es que el menú se muestra como en la siguiente imagen, para todos los usuarios; muestra enlaces para los nodos que posee el usuario actual y los nodos que el usuario actual no posee.

screenshot

Me gustaría mostrar solo los elementos del menú correspondientes a los nodos propiedad del usuario conectado. ¿Cómo puedo hacer esto?

4
Ek Kosmos

Drupal ocultará los elementos del menú para las rutas a las que los usuarios no tienen acceso. Pero para que esto funcione, se requiere que la devolución de llamada de acceso para ese elemento del menú devuelva FALSE. Si maneja el control de acceso en la devolución de llamada del menú, Drupal no sabrá que el usuario no tiene acceso y mostrará el menú.

Una solución sería implementar un módulo/función de control de acceso personalizado si no puede utilizar ninguno de los existentes para los nodos.

4
googletorp

Para cada entrada de menú a la que desee controlar el acceso, supongo que tiene un hook_men (http://api.drupal.org/api/drupal/modules--system--system.api.php/ function/hook_menu/7) configuración de valor de matriz? La propiedad que le interesa para cada una de estas entradas de matriz es "devolución de llamada de acceso", una función que devuelve VERDADERO si el usuario tiene derechos de acceso a este elemento del menú y FALSO si no.

Use ser_access ($ string, $ account = NULL) (http://api.drupal.org/api/drupal/modules--user--user.module/function/user_access) con un objetivo valor de permisos de acceso que elija en función de esta referencia: ( http://drupal.org/node/132202 )

2
DeeZone

Puede encontrar las siguientes respuestas (que dan módulos para hacer esta funcionalidad) en ...

¿Cómo puedo mostrar/ocultar solo un elemento del menú en función del rol del usuario?

...útil:

Drupal menu_per_role module:

https://drupal.stackexchange.com/a/29545

Drupal Menú Elemento Visibilidad.

https://drupal.stackexchange.com/a/30934

0
therobyouknow