Как я могу создать Middleware на CMS за октябрь только для класса компонентов или плагина? - PullRequest
0 голосов
/ 09 октября 2019

Я прочитал доку и поищу информацию о промежуточном программном обеспечении по информации за октябрь, но ничего не могу найти, что мне поможет.

Моя проблема: я создал плагин и использую плагин RainLab User Plugin для внешнего редактирования контента. Контент Frontend пролился на раздел, группу и статью. Одиночные пользователи получают разный доступ: хиддем, шоу, редактирование и многое другое для разделов и статей. Сайт работает с одним плагином по динамике загрузки контента.

Как я могу загрузить контент для одного пользователя по конфигурации доступа?

Мое решение:

Я добавил в бэкэнд некоторые функции, чтобы предоставить доступ пользователям. доступ к пользовательскому контенту rainlab

Все настройки доступа сохранены и работают. Моя идея - создать промежуточное программное обеспечение для загрузки контента, но я не могу найти ничего, что могло бы мне помочь.

В документации сказано, что вы можете создавать промежуточное программное обеспечение, но промежуточное ПО загружается все время на веб-интерфейсе, бэкэнде, на всех страницах веб-сайта. Это не хорошее решение. https://octobercms.com/docs/backend/controllers-ajax#controller-middleware

Кроме того, если отладка выполняется на промежуточном программном обеспечении, пользовательские функции rainlab не работают, информация о запросе URL отсутствует.

Зачем добавлять промежуточное ПО, когда вы должны самостоятельно загрузить и создать все классы и функции ??

Мне нужно промежуточное ПО только для внешнего интерфейса и только для плагина или компонента. Я надеюсь, что кто-нибудь может мне помочь найти другое решение или идею, чтобы исправить это.

Я думаю, что ничего не осталось, кроме как реализовать доступ к контенту в соответствующем компоненте функции onRun. :( и проблема, связанная с этим решением: return Redirect, не работающий вне класса или функции (только на onRun)

1 Ответ

0 голосов
/ 09 октября 2019

Существует проблема с вашим подходом, так как вы хотите middleware, а также вы хотите убедиться, что он работает для определенных плагинов и компонентов. middleware работает на основе request, и запрос может содержать информацию об URL-адресе и т. Д., Но не о плагине, компоненте и т. Д., Поэтому он не может определить, когда запускаться, основываясь на плагине и т. Д.

ИтакВы можете использовать другой подход. и он будет работать с Frontend также с ajax requests.

Вы можете создать component внутри вашего плагина. Это будет assessment все access для зарегистрированного пользователя, если пользовательВы вошли в систему. Если пользователь не вошел в систему, вы можете указать assessment access.

. Теперь вам нужно добавить этот компонент к layout и now all pages, которые используют this layout, имеют это access informationс самого начала.

Теперь этот компонент inject access information to page, так что компоненты вашей страницы и плагина могут иметь эту информацию в легкодоступном месте. теперь из вашего компонента внутри onRun вы можете обрабатывать перенаправление в самом верху.

Компонент не предназначен для определения доступа, он просто вводит предопределенную информацию о доступе, которая находится в базе данных [как вы сказали, вы используете плагин пользователей, так что выбирайте егои внедрить его] на страницу

Компонент будет специально просто ввести информацию о доступе к странице. И этот Компонент будет на макете так. это автоматически сработает для этого макета страниц. поэтому он будет выполнен первым и на основании этого вы сможете решить, как его использовать. Вы также можете визуализировать условный компонент на основе этого. как вы можете иметь доступ к информации в разметке, а также

, если у вас есть какие-либо сомнения или вопросы, пожалуйста, прокомментируйте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...