Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Symfony][SF3], Voters
nospor
post
Post #1





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Hejka, zalozmy ze mam 20 roznych Entity. Dla kazdej Entity chce stworzyc Voter by zarzadzac co kto moze kasowac/edytowac/itp.
Tak wiec tworze 20 voters, rejestruje je jako service.Wszystko dziala wysmienicie ale jest jedno ale. Symfony tworzy wszystkie 20 obiektow voters dla kazdego request, nie wazne czy ja zamierzam z nich korzystac czy nie. Poczytalem troche, ok, rozumiem czemu.
Nie mniej jednak nie podoba mi sie, iz za kazdym razem tworzy mi te 20 obiektow nawet jak nie potrzebuje ani jednego z nich. Oczywiscie moge latwo ograniczyc, by one nic nie sprawdzaly jak nie ma potrzeby wiec nie beda mi obciazac aplikacji zbednymi wyliczeniami ale sam fakt, ze sa one tworzone bez sensu mnie irytuje.

No i pytanie: czy powinieniem sie poprostu nie irytowac i olac to i zostawic jak jest czy moze powininiem cos zrobic?
Przykladowo mysle nad takim rozwiazaniem, ze tworze i rejestruje tylko jeden uniwersalny voter dla wszystkich Entity i w przypadku gdy bedzie żądanie sprawdzenia praw dla jakiejs Entity to dopiero wtedy bede ladowal wlasciwy voter dla tej entity jako zwykly niezarejestrowany obiekt.

Jak wy to robicie u siebie?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Przeważnie masz dość prosty warunek, taki jak sprawdzanie czy... no nie wiem... chociażby "createdBy" to obecnie zalogowany user, ograć to Interface'em, dać voter do sprawdzania "IS_CREATOR" i weryfikować support dać na wcześniej wspomniany Interface.
Jest to tez jakies rozwiazanie. Teraz robie to sprawdzanie w ogolnym voterze. Fakt, mozna przeniesc to do entity implementujacej interfejs. Musze sie z tym przespac (IMG:style_emoticons/default/wink.gif)

Cytat
Poza tym, w voterze możesz odpalać inne votery Symfony\Component\Security\Core\Authorization\AccessDecisionManagerInterface @security.access.decision_manage

Ale by to zrobic musze mu przekazac te inne votery czyli musze jest stworzyc. Nie widze sensu. Teraz w moim rozwiazaniu tworze obiekt votera jesli taki specyficzny isntieje i odpalam jego sprawdzanie. Nie widze sensu pakowac to jeszcze w ten DecisionManager skoro wszystko mam pod reka
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 7.10.2025 - 06:17