Aktywne Wpisy

Przyjaciel_Rodziny +194

Clefairy +152
Dlaczego jest tworzona jakaś alternatywna rzeczywistość w kwestii covidu?
Była światowa pandemia, nie było wiadomo jak groźny był to wirus i jak bardzo może zaszkodzić ludzkości - lockdowny były na całym świecie i BARDZO DOBRZE. Tak powinna wyglądać reakcja na nieznany i nowy wirus.
Gdyby nie covid to konfiarze by nie mieli o czym #!$%@?ć od prawie 4 lat. Mam nadzieję, że gdy przyjdzie nowa śmiertelna pandemia to wszystkie te dzbany będą
Była światowa pandemia, nie było wiadomo jak groźny był to wirus i jak bardzo może zaszkodzić ludzkości - lockdowny były na całym świecie i BARDZO DOBRZE. Tak powinna wyglądać reakcja na nieznany i nowy wirus.
Gdyby nie covid to konfiarze by nie mieli o czym #!$%@?ć od prawie 4 lat. Mam nadzieję, że gdy przyjdzie nowa śmiertelna pandemia to wszystkie te dzbany będą


![[AMA] Karol Basz i Poczciwy Krzychu o wyścigach, Simracingu i nie tylko](https://wykop.pl/cdn/c3397993/70172c8c4c3ce53c6143e9251576ffa9824966b3f0c64081c7876d88889b63e4,q70.jpg)


Tym razem pytanie z grupy designu systemu od strony bebechów.
Generalnie w starych aplikacjach pisanych przez raczej średnio zorganizowanych ludzi autoryzacja jest zbudowana na systemie ról. Mamy tam 5 czy 6 twardo zdefiniowanych ról i potem w pierdylionie miejsc w kodzie mamy sprawdzenia typu if (User.Role == Roles.Admin) to cośtam xD Zahardkowane bo czemu nie, jak lepić paździerza to po całości.
A potem przychodzi klient i mówi "wiecie co, UserX to jest taki trochę przygłupi weźcie mu zablokujcie dostęp do czegośtam". W tym momencie moi poprzednicy robili pikachu face bo role na sztywno i aby srace stało się zadość uwieszali w kodzie na sztywno if (ClientId == x) xDDD
Kupa straszna i szkoda szczempić ryja tak naprawdę, więc mając możliwość położyć podwaliny pod coś nowego wolałbym chociaż spróbować się przed tym zabezpieczyć. Zdecydowałem się więc na system claimów gdzie założenie jest takie, że to użytkownik z odpowiednimi uprawnieniami będzie w stanie tworzyć własne claimy i ewendualnie nadawać użytkownikom dynamicznie, i chciałbym wiedzieć czy macie jakieś doświadczenia jak da się to rozwiązać.
Jednym z moich pomysłów było dorzucanie do każdego endpointu zestawu Permissions które tworząc claima będziemy mogli odklikiwać. Definiujemy sobie np. że dla /users/getUsers obecne możliwości wpływania na dostęp są takie a takie i np. jedno z uprawnień to "ShowHiddenUsers", którego jak ktoś miał nie będzie to nie zobaczy użytkowników np. systemowych. Mogło to być dodane przy pierwszej wersji systemu, bo programista o tym od razu pomyślał a mogło być dodane takie uprawnienie na życzenie - ale wtedy możemy je dać wszystkim klientom na raz, dodać w jednym miejscu w kodzie (a nie uwieszać ify w 54 miejscach XD) i co najwyżej dać to uprawnienie wszystkim użytkownikom aby pozostali klienci nie zauważyli nawet, że powstało nowe uprawnienie (dolepić im je po prostu do claimów). Ale może są na to jakieś lepsze metody?
W sumie to używasz je tylko jak chcesz przypisać łatwiej te claimy.
W kodzie oczywiście sprawdzasz tylko claimy.
Nie widzę przeciwwskazań, żeby był sobie endpoint, który może modyfikować konkretne claimy już.
A żeby jeszcze bardziej elastycznym możesz mieć endpoint, który przyjmuje role albo claimy i je w zależności tego co podałeś dodaje/odejmuje użytkownikom.
Tak bym to zrobił
użytkownik o danym id ma x flag, możesz to w bazie danych nawet zhardcodować
userId flagEdit flagWrite etc etc true albo false i elo