Symfony ACL允许我授予对实体的访问权限,然后检查它:
if (false === $securityContext->isGranted('EDIT', $comment)) {
throw new AccessDeniedException();
}
但是,如果我在数据库中有成千上万个实体,而用户只能访问其中的10个实体,则我不想将所有实体加载到内存中并对其进行水合处理。
我如何做一个简单的“SELECT * FROM X”,同时仅在用户有权访问的实体上进行过滤(在SQL级别上)?
最佳答案
好吧:不可能。
去年,我一直在研究替代ACL系统,该系统将允许直接在数据库查询中进行过滤。
我的公司最近同意将其开源,因此它是:http://myclabs.github.io/ACL/