【发布时间】:2015-09-07 10:23:49
【问题描述】:
我有一个琐碎的任务,但我不知道处理它的预期方式。 我有一个控制器:
public function getObjectAction($object) {}
而且我想确保,该操作仅在 $object->getOwner() === $loggedInUser 时才会执行
现在的问题是:这个检查应该是怎样的?
操作内部的简单 if() 条件,在访问冲突的情况下会抛出 Exception。我不喜欢这个解决方案,因为它会迫使我在每个需要这样检查的操作中添加这样的 if()。当然,我可以创建一些 Trait,执行此检查并从每个此类控制器操作中调用
->checkAccess(),但对我来说仍然看起来很脏。控制器参数验证器。似乎更可靠的解决方案,因为我有单独的类,只执行它应该执行的操作(验证访问权限)。但这真的是一种验证还是一种滥用?
一些基于信号的重型系统,在动作发出之前发送。
您的变体(也许,已经有一些 ObjectAccessCheck 类左右,我还不知道)。
【问题讨论】:
-
将所有操作放入一个自己的前端插件中,并使用前端的普通用户限制来限制这些操作的范围(如果您愿意,也可以制作两个控制器)。
标签: oop model-view-controller typo3 extbase