我如何只能在组件类或插件上在October CMS上创建中间件?

问题描述 投票:0回答:1

我读了doku并在10月的信息中搜索了有关中间件的信息,但没有找到我能提供的帮助。

我的问题:我创建了插件,并将RainLab用户插件用于内容的前端编辑。前端内容在部分,组和文章上泛滥。单个用户具有不同的访问权限:hiddem,显示,编辑以及更多的节和文章。该网站使用一个插件来动态加载内容。

我如何通过访问配置为单个用户加载内容?

我的解决方案:

我在后端添加了一些功能,以便为用户提供访问权限。rainlab user content access

所有访问配置已保存并可以使用。我的想法是创建中间件来加载内容,但是我什么也找不到能帮助我的东西。

Docu告诉我您可以创建中间件,但是中间件始终在网站的前端,后端和所有页面上加载。这不是一个好的解决方案。https://octobercms.com/docs/backend/controllers-ajax#controller-middleware

另外,如果我在中间件上调试,则Rainlab用户功能不起作用,没有有关url请求的信息。

为什么必须自己加载和创建所有类和函数时添加中间件?

我只需要前端和插件或组件的中间件。我希望有人能帮助我找到其他解决方案或想法来解决它。

我认为只剩下在onRun函数的各个组件中实现内容访问了。 :(此解决方案的问题是:return Redirect在类或函数外部不起作用(仅在onRun上)

php plugins components middleware octobercms
1个回答
0
投票

您的方法存在问题,您需要middleware,并且还要确保它针对特定的插件和组件运行。 middleware基于request工作,并且请求可能具有有关URL等的信息,但没有有关插件和组件等的信息,因此它无法确定何时基于插件等来运行。

因此您可以使用其他方法。并且它将与Frontendajax requests一起使用。

您可以在插件内创建component,如果用户登录,它将为登录用户全部assessment。如果用户未登录,则可以提供其他access

现在您需要将此组件添加到正在使用assessment accesslayoutnow all pages中,从一开始就具有此this layout

现在此组件access information,因此您的Page和插件的组件可以使此信息随时可用。现在从inject access information to page内部的组件中,您可以在顶部处理重定向。

组件不是要定义访问,它只是在数据库中注入预定义的访问信息[正如您所说的,您使用用户插件,以便将其获取并注入]到页面中

该组件将只是将访问信息注入页面。而且该组件将在布局上。它将自动为该版面页面触发。因此它将首先执行,然后您可以决定如何使用它。您还可以基于此渲染条件组件。因为您也可以在标记部分获得访问信息,所以

如果有任何疑问或疑问,请发表评论。

© www.soinside.com 2019 - 2024. All rights reserved.