我有以下情况:多个视图使用可以上传文件并通过 AJAX 检索以前上传的列表的内容编辑器。为此,我最终为每个控制器添加了两个操作。相反,我只想拥有一个通用的、单一用途的 EditorController 来为我处理编辑器交互。
问题在于访问权限:我希望 EditorController 检查请求是否来自有效来源(这意味着当前用户有权访问的已知操作)。具体来说,检查请求是否来自类似“/posts/edit/1”的内容,并且这是我被允许使用的操作。
这可以做到吗?实现相同结果的更好方法是什么?我目前已经将功能打包到我重用的组件中。但我仍然重复自己向所有控制器添加相同的两个操作。
编辑:从下面的评论中,我指向了http://book.cakephp.org/2.0/en/core-libraries/components/security-component.html#restricting-cross-controller-communication。我想要实现的东西与 and 非常相似SecurityComponent::$allowedControllers
,SecurityComponent::$allowedActions
只是我宁愿不明确地将允许的控制器或操作列入白名单,而是从调用者那里继承访问权限。