Doctrine zabezpečení proti neoprávněnému přepsání
- Martk
- Člen | 651
Ahoj, potřebuji znova radu.
Jak řešíte následující situaci? Máte v aplikaci rozdělení na členy a administrátory. Každý uživatel může vlastnit „entitu“ a libovolně upravovat, administrátor může upravovat všechny. Napadlo mě klasické řešení nastavit všude podmínku a porovnání ⇒ zdlouhavé, porušuje dry? Druhé řešení je rychlé, neporušuje dry, ale je tam malinko magie. Kontrolovat u doktríny persist/merge/remove (existují tam nějaké eventy?) a když se uživatel změnil, tak vyhodit exception a tu vychytávat někde v presenteru, pak klasické zpracování. V budoucnu možná ještě přibude možnost člena s právem „jen prohlížet“, při první variantě by to znamenalo přidávat kód na mnoha místech u 2. jen jeden řádek.
Jak to řešíte vy?