Hej

Mam stronę w Symfony i listę obiektów, na które ludzie mogą głosować - plus lub minus. Piszę właśnie funkcję, która będzie wywoływana ajaxem, a która sprawdzi czy użytkownik (niekoniecznie zalogowany) może oddać głos (czy już przypadkiem nie głosował). Jakiś tam algorytm mam, nie jest on idealny, ale idealnego algorytmu nie ma, a jak jest, to jest zakazany - evercookie. Wszystko chcę robić po stronie serwera, żeby użytkownik nie zobaczył jak obsługuję to "zapamiętywanie głosów".

Ale moje pytanie jest bardziej ogólne - gdzie mam umieścić tę funkcję? Proste, że w kontrolerze, bo tylko w ten sposób mogę ją wywołać ajaxem, ale w jakiej klasie? Mam:
ObjectController
ObjectVoteController
FOSUserController (czyli kontroler użytkownika)

Entities:
Object
ObjectVote
FOSUser

Klasa ObjectVote zawiera:
id, objectID, fOSUserID (ale niepowiązane kluczem, bo będzie redundancja bazy - Object zawiera już referencję do FOSUser), visitIPAddress, visitUserAgent.

Mam dylemat gdzie wciepać metodę canUserVote, bo de facto nie ma tutaj określonego usera (FOSUser), bo jest nim zalogowany użytkownik albo nie jest. Bardziej Object czy FOSUser? Czy może nowa klasa - Visitor? Ale to pokićkałoby mi bazę, gdyż Symfony korzysta z Doctrine ORM i tam każde Entity ma swoją tabelę w bazie - choć co do tego nie jestem pewien.