Doctrine zabezpečení proti neoprávněnému přepsání

Martk
Člen | 651
+
0
-

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?

Martk
Člen | 651
+
0
-

@CZechBoY Díky za odkaz, něco nového jsem se přiučil. Nicméně, stále řeším otázku, mám-li přidat všude, kde se manipuluje s entitou identický řádek nebo to navěsit na event a nebo něco lepšího?

rkor
Člen | 62
+
0
-

Možná pomůže (prePersist, preUpdate, preRemove)?

https://www.zdrojak.cz/…-2-udalosti/