Symfony2 ACL combinado com outro critério
Gostaria de saber se alguém conhece uma maneira elegante de conseguir isso usando o sistema ACL Symfony
Eu tenho umComment
entidade (meu objeto de domínio) que precisa ser editável porROLE_USER
, mas isso só é permitido dentro de 5 minutos após a publicação do comentário - caso contrário, o comentário só pode ser editado porROLE_ADMIN
.
Fazê-lo para que ele possa ser editado apenas porROLE_USER
eROLE_ADMIN
é simples, basta fazer umRoleSecurityIdentity
para cada
gora, meu problema ocorre quando quero incorporar o fator de tempo paraROLE_USER
. Meu primeiro problema é que ele precisa de informações do objeto de domínio, não apenas da tabela ACL, mas acho que isso pode ser solucionado criando umObjectIdentity
lasse @, que também pode armazenar o tempo que oComment
foi postado
Agora, para a parte difíci
Acho que preciso criar um @ personalizaPermissionGrantingStrategy
que sabe também olhar para a hora da criação. Isso deve ser carregado quando umComment
type está sendo verificado, mas não sei como carregá-lo. Alguém sabe se existe algum tipo de fábrica através da qual esse tipo de coisa pode ser configurado? Portanto, se uma entidade tiver umPermissionGrantingStrategy
associado a ele, então ele é usado, caso contrário, o padrão é usado?
Sei que esse é um pouco longo, muito obrigado se alguém souber como fazer isso, pois a documentação da ACL parece um pouco escassa no momento. Minha solução alternativa é simplesmente fazer algum tipo de serviço para verificar se um Comentário pode ser editado e não se preocupar com a AC