Dla rozgrzewki:
Typowy system autoryzacji, oparty na Rolach, w tym poście będe trochę mieszał z Grupą. Operator ma sumę logiczną zbioru praw, z Ról do jakich należy *)
To jest genberalnei przyjęte, i trudno o tym dług gadać.
Np na mocy roli/prawa mogę z prawem "prawo do cen zakupu" związać pola "cena zakupu PLN", "cena zakupu USD"
A teraz ustawienia (w obrębie limitu praw oczywiście):
Kazik jest w grupie "senior sprzedawca" (na kraj), i MOŻE widzieć oba pola, ale czy musi widzieć pole w USD? Chciałby to sobie wyłączyć, np aby oszczędzić miejsce na gridach.
Zenek jest w grupie "import". Ma uprawnienie do obu pól, i pole w USD jest jego codziennym narzędziem pracy.
Myslę o defaultowym ustawieniu dla grup "import" -> widoczne pole "zakup w USD". Tylko że Zenek należy też do sprzedaży, i inna grupa będzie proponowała niewidoczność tego pola.
W dziedzinie autoryzacji jest prościej, suma logiczna itd i mamy rozstrzygnięte.
Ustawienia Wszyscy -> Grupa(y) -> Operator, moga już siedzieć w bazie z etapu wdrożenia, lub być nowe, np nowa wersja może przynieśc pole "kurs zakupu podczas importu", i żeby temu polu dać defaultowe widoczności dla grup (a nie musieć szkolić ludzi, pisać maili "możecie sobie ustawić widoczosc nowego pola Xyz" )
Czy w moim myśleniu są wady? czy mam zupełnie rozdzielić Role autoryzacyjne / Grupy ustawieniowe ? W małym / średnim biznesie nie chciałbym adminowi wdrożenia dawać komplikacji intelektualnych
A może Grupa (obiektowo biorąc) ma być encją jednego z dwóch typów GrupaWyłączna / GrupaPosiadającaAlternatywę, jedna może być nośnikiem ustawień, druga nie ???
Nie pytam głownie o szczegóły implementacji, tylko o zdrowe zaprojektowanie
*)
zakładam, że oprócz pozytywnych praw, nie ma negatywnych zakazów, byłby to gest rozpaczy projektanta.