Grav-plugin-admin: Разрешения на изменение и удаление страниц

Созданный на 21 апр. 2016  ·  16Комментарии  ·  Источник: getgrav/grav-plugin-admin

Было бы отлично, если бы мы могли заблокировать некоторые страницы, чтобы пользователи могли редактировать только определенные страницы, а не весь сайт. Может что-то поверх групп пользователей?

Например, могут быть разрешения по умолчанию, возможно, в user/config/admin/admin.yaml (или, может быть, это будет иметь больше смысла в блупринтах, которые позволяют устанавливать этот конфиг в зависимости от шаблона):

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

И конфигурация YAML на каждой странице может перезаписывать эти настройки по умолчанию:

---
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

---

Варианты использования для блокировки страницы

  • Если структура вашего сайта опирается на несколько «контейнерных» страниц (блог, раздел 1, раздел 2…), и вы хотите избежать небрежного удаления _всего контента_ в разделе, заблокировав страницы уровня 1.
  • Если вы хотите защитить страницу с ошибкой или другие «технические» страницы.
  • Веб-сайт делового общения, на котором один редактор или группа редакторов должны иметь возможность создавать новые сообщения в блоге, возможно, изменять корневую страницу «блога», но НЕ удалять ее, и не должны иметь возможность изменять (не говоря уже об удалении) другие страницы в других разделах. (или главная страница).

    Типы разрешений

Я думаю, что простая реализация может быть ограничена двумя разрешениями:

  • записывать
  • удалять

За исключением этих других распространенных типов разрешений (менее полезных или сложных в управлении):

  • чтение (необходимость скрывать контент для пользователей-администраторов кажется низкой)
  • владение страницей (запись/удаление "своих" страниц) -> добавляет большой уровень сложности
  • addchild (контролирует, может ли группа пользователей добавлять дочернюю страницу внутри страницы) -> также добавляет некоторую сложность
1.10 enhancement fixed in repo

Самый полезный комментарий

Несколько хороших идей здесь. На самом деле у меня уже была заметка с некоторыми идеями о том, как улучшить разрешения. Я прослежу, чтобы этот билет также был принят во внимание. Спасибо!

Все 16 Комментарий

Несколько хороших идей здесь. На самом деле у меня уже была заметка с некоторыми идеями о том, как улучшить разрешения. Я прослежу, чтобы этот билет также был принят во внимание. Спасибо!

@rhukster Эй, просто хотел узнать, есть ли прогресс по этой теме, которую я пропустил?

Для конкретного проекта мне нужны групповые права редактирования для определенных страниц или страниц папки. Это единственное требование, которое потенциально может помешать нам использовать Grav 😞

Было бы очень полезно, если бы вы могли указать правильное направление, исследуя это.
Заранее большое спасибо за вашу помощь.

Самая востребованная функция!

удар

У меня есть ученики, которые хотят работать над веб-сайтом нашей школы. Сейчас они просто передают мне информацию для публикации в блоге; было бы полезно предоставить им доступ к определенным страницам, чтобы мне не пришлось беспокоиться о том, что студент случайно или намеренно отредактирует главную страницу или что-то еще важное.

Спасибо - надеюсь, что прогресс в этой функции!!

Когда мы сможем аспектировать эту функцию. Надеюсь так и будет в следующей версии. :-))

@brianjschott Вы можете проверить Editable с помощью плагина SimpleMDE и проверить, соответствует ли он вашей цели. Последняя версия поддерживает разрешения на основе страниц с использованием системы пользователей и ролей Grav. Таким образом, вы также можете создавать группы. Редактирование ограничено страницами и только во внешнем интерфейсе.

Я должен предоставить редакционный доступ нетехническим пользователям, это определенно поможет мне спать по ночам! :+1:

Есть ли прогресс в этом? Самая востребованная функция.

В настоящее время я работаю над поддержкой Flex Pages, и у меня уже есть права на удаление страниц (правда, сейчас без поддержки владельца).

Несколько хороших идей здесь. На самом деле у меня уже была заметка с некоторыми идеями о том, как улучшить разрешения. Я прослежу, чтобы этот билет также был принят во внимание. Спасибо!

@rhukster прошло более 3 лет с вашего комментария. Некоторым из моих клиентов очень нужна эта функция, но мы, любящие Grav разработчики, до сих пор не имеем о ней никакой информации.

@mahagr Что такое Flex Pages? Речь идет о css flexbox или о чем-то другом? Пожалуйста, дайте больше информации 😉

Flex Pages основаны на Grav Flex Objects, что является просто классным названием для классов (вы можете найти их в Grav\Framework\Flex . :)

Короче говоря, Flex Objects заменит плагин Flex Directory; основные классы находятся в самом Grav, но для CRUD вам понадобится плагин Flex Objects, который будет предоставлять представления для просмотра и редактирования, которые будут работать как в админке, так и во внешнем интерфейсе. Хотя при этом я не уверен, что он будет поставляться с рабочим редактирование внешнего интерфейса или если вам нужно выполнить некоторые пользовательские классы/маршрутизацию, чтобы заставить его работать. В любом случае, этот плагин нужен только для задач администратора, сам Flex работает без него.

Flex Pages в реализации текущих Grav Pages, но на основе этих новых классов Flex. Использование Flex имеет несколько преимуществ по сравнению со старым решением:

  • он хранит индекс всех объектов и знает, какие объекты были обновлены и когда
  • из-за индекса объекты загружаются только по запросу
  • он имеет встроенное кэширование для поиска в коллекции, вызовов методов и даже рендеринга.
  • кеширование основано на объектах, поэтому обновление одного элемента не делает недействительным кеш других
  • коллекции гораздо мощнее, чем со старыми страницами; Вы можете искать почти все
  • FlexPage автономен и намного проще в использовании, чем Page
  • Flex позволяет легко настраивать страницы под свои нужды.
  • Это позволяет вам создать собственный раздел администратора, например, для сообщений в блоге, отделенный от других страниц.
  • ...

Есть еще больше преимуществ, но мы уже использовали их в некоторых наших проектах, и все в восторге от этого. Мы легко получаем в 10 раз более высокую производительность на 4000-страничном сайте. Мы можем создавать собственные типы, даже страницы, которые хранятся отдельно от обычных страниц и находятся в отдельном разделе внутри админки. Пользователи могут создавать свои собственные страницы, заполняя простые формы и т. д.

Большое спасибо за то, что поделились этой информацией @mahagr 👍 Из всего, что вы упомянули (все звучит здорово!), Меня больше всего интересуют более продвинутые коллекции страниц, настройка страниц и отдельный раздел администратора для разных типов страниц. Пожалуйста, добавьте мой голос за более точные разрешения для страниц, которые были бы очень ценны в образовательных сценариях с Grav!

После этого поста. Очень нужно это прямо сейчас.

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

Я бы тоже очень оценил эту функцию. Относится к этой проблеме с открытым улучшением .

Это уже реализовано в Grav 1.7/Admin 1.10.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги