Nastavenie spring security
Požadované vlastnosti:
- používatelia môžu byť členmi viacerých skupín
- skupiny majú viaceré práva
- práva sa používajú na autorizáciu REST endpointov
- prihlásenie umožňuje prihlásenie cez email a heslo, aj prihlásenie cez token (zapamätanie si prihlásenia)
- registráciu aj management používateľov a ich priradenie skupinám realizuje ľubovoľný člen skupiny admin, nik iný
- skupiny a práva sa nemusia meniť cez REST, lebo ovplyvňujú iba nastavenia v kóde
- heslá sú uložené cez bcrypt alebo iný pomalý hash
prihlásenie a autorizáciu nepotrebujú endpointy EventController - gettery, GaleriaController - gettery, ObrazokController - getPublicByIdGaleria(treba dodať, bo ešte nie je), PublicImageController - všetky, StaticPageController - getter, TeacherCalendarController - všetky
skupiny sú
- admin - môže volať všetky endpointy
- parent - ChildController - getChild, saveChild (ak to pôjde, tak nech to funguje iba pre jeho deti), MealController -gettery, ObrazokController - gettery, RelativeController - getByUserId a save (ak to pôjde, tak nech to funguje iba pre jeho entitu)
- teacher - všetky gettery v ChildController, všetky gettery v ClassYearController, všetky gettery v RelativeCotroller a všetko to čo môže parent akurát že pre všetky deti
- meals - všetky entpointy v MealController
- news - všetky endpointy v EventController
- classes - všetky endpointy v ChildController, ClassYearController, RelativeCotroller
- gallery - všetky endpointy v GaleriaController, ObrazokController
- static_pages - všetky endpointy v StaticPageController
Ak je niekto členom viacerých skupín, tak preňho platia všetky maximálne práva dané hociktorou skupinou, teda každá skupina používateľovi iba pridáva práva, nie ich uberá.
Edited by Peter Gurský