Grav-plugin-admin: Permisos para cambiar y eliminar páginas

Creado en 21 abr. 2016  ·  16Comentarios  ·  Fuente: getgrav/grav-plugin-admin

Sería excelente si pudiéramos bloquear algunas páginas para que los usuarios solo puedan editar páginas específicas, no todo el sitio. ¿Quizás algo además de los grupos de usuarios?

Por ejemplo, podría haber permisos predeterminados, tal vez en user/config/admin/admin.yaml (o tal vez tendría más sentido en blueprints, lo que permite establecer esta configuración según la plantilla):

# Only admins can delete pages
permissions:
  pages:
    write: [admin, editor]
    delete: [admin]

Y la configuración de YAML en cada página podría sobrescribir estas configuraciones predeterminadas:

---
title: Awesome page
permissions:
  write: [admin] # Limit changes to the admin group in the admin plugin
  delete: [] # Protect this page from deletion from the admin plugin

---

Casos de uso para bloquear una página

  • Si la estructura de su sitio se basa en unas pocas páginas "contenedoras" (blog, sección 1, sección 2...) y desea evitar la eliminación por descuido de _todo el contenido_ en una sección bloqueando las páginas de nivel 1.
  • Si desea proteger la página de error u otras páginas "técnicas".
  • Un sitio web de comunicación comercial donde un editor o grupo de editores debería poder crear nuevas publicaciones de blog, tal vez modificar la página raíz del "blog" pero NO eliminarla, y no debería poder modificar (y mucho menos eliminar) otras páginas en otras secciones (o la página de inicio).

    tipos de permisos

Creo que una implementación simple podría limitarse a 2 permisos:

  • escribe
  • Eliminar

Excluyendo estos otros tipos de permisos comunes (menos útiles o más difíciles de administrar):

  • leer (la necesidad de ocultar contenido a los usuarios administradores parece baja)
  • propiedad de la página (escribir/eliminar sus "propias" páginas) -> agrega un gran nivel de complejidad
  • addchild (controlar si un grupo de usuarios puede agregar una página secundaria dentro de una página) -> también agrega algo de complejidad
1.10 enhancement fixed in repo

Comentario más útil

Algunas buenas ideas aquí. De hecho, ya tenía una nota con algunas ideas sobre cómo mejorar los permisos. Me aseguraré de que este billete también se tenga en cuenta. ¡Gracias!

Todos 16 comentarios

Algunas buenas ideas aquí. De hecho, ya tenía una nota con algunas ideas sobre cómo mejorar los permisos. Me aseguraré de que este billete también se tenga en cuenta. ¡Gracias!

@rhukster Oye, solo quería saber si hay algún progreso en ese tema que me perdí.

Para un proyecto específico, necesito permisos de edición basados ​​en grupos para ciertas páginas o páginas de una carpeta. Es el único requisito que podría impedirnos usar Grav 😞

Sería realmente útil, si pudiera apuntar en la dirección correcta, investigando esto.
De antemano muchas gracias por tu ayuda.

¡La característica más buscada!

protuberancia

Tengo estudiantes que quieren trabajar en el sitio web de nuestra escuela. Ahora mismo solo me están pasando la información para publicar en el blog; Sería útil poder darles acceso a páginas específicas para que no tenga que preocuparme de que un estudiante edite accidentalmente oa propósito la página principal u otra cosa importante.

Gracias. ¡Espero que se esté progresando en esta característica!

¿Cuándo podemos aspecto de esta característica. Espero que así sea en la próxima versión. :-))

@brianjschott Puede verificar Editable con el complemento SimpleMDE y probar si se adapta o no a su propósito. La última versión admite permisos basados ​​en páginas utilizando el sistema de funciones y usuarios de Grav. Así que también puedes crear grupos. La edición está limitada a las páginas y solo en la interfaz.

Tengo que dar acceso editorial a usuarios no técnicos, ¡esto definitivamente me ayudaría a dormir por la noche! :+1:

¿Algún progreso en esto? Característica más buscada.

Actualmente estoy trabajando en el soporte de Flex Pages y ya tengo permisos para eliminar páginas (aunque en este momento no tengo soporte de propietario).

Algunas buenas ideas aquí. De hecho, ya tenía una nota con algunas ideas sobre cómo mejorar los permisos. Me aseguraré de que este billete también se tenga en cuenta. ¡Gracias!

@rhukster han pasado más de 3 años desde su comentario. Algunos de mis clientes realmente quieren esta función, pero nosotros, como desarrolladores amantes de Grav, todavía no tenemos información al respecto.

@mahagr ¿Qué son las páginas flexibles? ¿Se trata de css flexbox o algo diferente? Por favor da más información 😉

Flex Pages se basan en Grav Flex Objects, que es solo un nombre genial para las clases (puedes encontrarlas en Grav\Framework\Flex . :)

En resumen, Flex Objects reemplazará el complemento Flex Directory; las clases principales están en Grav, pero para CRUD necesitará el complemento Flex Objects, que proporcionará vistas de listado y edición que funcionarán tanto en el administrador como en la interfaz. Aunque dicho esto, no estoy seguro de si funcionará. edición de interfaz o si necesita hacer algunas clases/enrutamiento personalizados para que funcione. De todos modos, este complemento solo es necesario para tareas de administración, Flex se ejecuta sin él.

Flex Pages en implementación de las Grav Pages actuales, pero basadas en estas nuevas clases Flex. Usar Flex tiene algunos beneficios sobre la solución anterior:

  • mantiene un índice de todos los objetos y sabe qué objetos se han actualizado y cuándo
  • debido al índice, los objetos solo se cargan bajo demanda
  • tiene almacenamiento en caché incorporado para búsquedas de colección, llamadas a métodos e incluso renderizado
  • el almacenamiento en caché se basa en objetos, por lo que actualizar un solo elemento no invalida el caché de los demás
  • las colecciones son mucho más poderosas que con las páginas antiguas; puedes buscar casi cualquier cosa
  • FlexPage es autónomo y mucho más fácil de usar que Page
  • Flex le permite personalizar fácilmente las páginas para sus necesidades
  • Le permite crear su propia sección de administración, por ejemplo, para publicaciones de blog, separadas de las otras páginas.
  • ...

Hay aún más beneficios, pero ya los hemos estado usando en algunos de nuestros proyectos y todos están muy entusiasmados con esto. Obtenemos fácilmente un rendimiento 10 veces mejor en un sitio de 4000 páginas. Podemos crear tipos personalizados, incluso páginas que se almacenan por separado de las páginas normales y se encuentran en una sección separada dentro de admin. Los usuarios pueden crear sus propias páginas rellenando formularios sencillos, etc.

Muchas gracias por compartir esta información @mahagr 👍 De todo lo que mencionas (¡todo suena genial!), Me interesan más las colecciones de páginas más avanzadas, la personalización de páginas y la sección de administración separada para diferentes tipos de páginas. Agregue mi voto para permisos de página más finos, ¡eso sería muy valioso en escenarios educativos con Grav!

Siguiendo esta publicación. Urgentemente necesito esto ahora mismo.

60153027-8420fb80-9815-11e9-831b-7a32f4f48f7b

Realmente apreciaría esta función también. Relacionado con este problema de mejora abierta .

Esto ya se ha implementado en Grav 1.7 / Admin 1.10

¿Fue útil esta página
0 / 5 - 0 calificaciones