В многопользовательском веб-приложении следует использовать платформу Symfony2 ACL для проверки владения объектами домена?
Я не могу получить точку, поскольку (при условии, что каждая таблица имеет обратную ссылку на объект User
), я могу просто проверить текущего пользователя id
по отношению к владельцу объекта id
, как показано ниже:
/*
* @Route("/edit/{slug}")
* @Method("GET|POST")
* @Secure(roles="ROLE_USER")
* @Template
*/
public function editAction($slug);
{
// Find the post given the slug
$repo = $this->getDoctrine()->getRepository('AcmeHelloBundle:Post');
$entity = $repo->findOneBySlug($slug);
$current = $this->get('security.contex')->getToken()->getUser();
// 404 if slug is invalid
if(!$entity) throw new $this->createNotFoundException();
// AccessDenied if current user is not the owner of the entity
if($current->getId() != $entity->getUser()->getId())
throw new AccessDeniedException();
}
Может быть, ACL может помочь избежать обратной ссылки каждой сущности на пользовательскую таблицу? Любое объяснение или пример будут полезны, спасибо.