Estoy usando el módulo Vistas para crear una vista a la que solo usuarios específicos deberían poder acceder. Sé que Vistas incluye el control de acceso por rol o permisos, pero necesito algo más detallado: Básicamente, quiero poder decir que solo el usuario "x" y el usuario "y" pueden acceder a una vista en particular (o de lo contrario, alguien con un rol de administrador del sitio). Entonces, esto funcionaría de manera muy similar a cómo actúa el módulo ACL para nodos individuales.
¿Es el mejor enfoque para crear un complemento de acceso de vistas personalizadas? No tengo mucha experiencia con esto.
Además, me pregunto si usar un argumento con alguna validación para lograr esto (para que no tenga que crear docenas de vistas separadas). Por ejemplo, dado que esta vista será una pestaña en una ruta de nodo específica, me pregunto acerca de cómo configurar un campo de referencia de usuario en ese nodo que especifique quién podría ver la vista. Solo necesito una forma para que la vista solo valide si el usuario actual es igual a un usuario especificado en el campo de referencia del usuario.
¿Algunas ideas? ¿O estoy haciendo esto más complicado de lo que debe ser?
Gracias ben
Respuestas:
En lugar de limitar los permisos en la Vista, puede limitar los permisos en el elemento del menú que conduce a esa vista (ya sea una pestaña en un nodo o una devolución de llamada del menú). Puede crear su vista con solo una visualización de "Valores predeterminados" y sin visualización de página (para que los usuarios no puedan descubrir la ruta a ella). Luego en su
page callback
para el elemento del menú simplemente llameviews_embed_view
para mostrar la vista. Parece que manejar permisos en un elemento de menú podría ser más fácil que escribir un nuevo complemento para Vistas (aunque un complemento podría ser útil para otros).fuente
Pruebe el módulo de devolución de llamada de Views Access .
fuente
Debo estar perdiendo algo, pero parece que crearías un nuevo rol y agregarías estos usuarios. Luego, use la función Acceso a vistas: función.
Si necesita vincular los derechos de acceso a algo en el contenido, usaría un acceso de Vistas personalizado, que encontré una configuración difícil la primera vez, pero agradezco la flexibilidad una vez que funciona. Si la Vista está generando el Elemento del menú, no aparecerá si la Vista no pasa la función de acceso.
Si solo está ocultando un elemento del menú, me parece que la vista aún se ejecutará y un Usuario podría modificar un URI para ver los datos.
alemán
fuente
¿Qué tal usar el módulo de Permisos personalizados para crear algunos permisos nuevos específicamente para su propósito, y luego usar el módulo de Permisos de usuario para asignar esos nuevos permisos a usuarios individuales?
El módulo de permisos personalizados es muy ligero. Sin embargo, no estoy tan seguro sobre el módulo de permisos de usuario, ya que esencialmente crea una nueva función para cada usuario detrás de escena (estas funciones no son visibles en la página principal de permisos). Si tiene muchos usuarios, esto puede aumentar un poco el tamaño de sus roles y tablas de user_roles.
fuente
Correcto, eso tiene más sentido. Creo que podría (posiblemente, no 100% seguro) usar una vista y un argumento. Establezca el argumento para que sea una identificación de usuario tomada del usuario actualmente conectado y haga que el argumento predeterminado no muestre nada. Eso debería poder hacerlo, aunque no sé qué tan seguro sería ser justo. Si lo intentas, vuelve a publicar y avísame tu progreso.
fuente
Si desea combinar diferentes complementos de acceso en Vistas, puede echar un vistazo al módulo de acceso a Vistas de muchos .
fuente