Stap 1 - Codebase verkennen

AI vragen codebase samen te vatten in ARCHITECTURE.md
Dit doc lezen en zelf over codebase kijken

Stap 2 - Taak 1 implementeren

Wat?

Member rol toevoegen in Roles.ex
"Rechten" van member rol toevoegen
Mag wel:
bekijken van de Events pagina, alsook alle detail pagina’s daaraan gekoppeld.
als user kan je wel je 'eigen' user editeren via het settings menu rechtsboven in de interface, dat is de '/profile' link.
Mag niet:
Alle andere pagina’s (Stats, Accounts, Users) zijn off limits, zowel in de interface als de routes zelf.
Hide navbar links when role == :member
Redirect to events on route

Stap 3.1 - Taak 2 implementeren

Wat?

Admin & superuser moeten kunnen rollen aanpassen
Functie maken om 1 role_user te krijgen van roles array van user
Deze role_user meegeven aan frontend
Nieuw select field in form maken in Edit user scherm & Create user Scherm
Het select field maken
Conditional: actieve user en aangepaste user mogen niet dezelfde user zijn
Select field aanpassen naar checkboxes
Update user & update user_roles
Aanpassingen maken om meerdere rollen per user te ondersteunen
Lijst van rollen in users scherm fixen (adminmembersuperuser → admin, member, superuser)
Toegang tot admin & superuser routes fixen (momenteel: member? → blocked ook al is user ook superuser of admin)
Navlinks
Routes
Aandachtspunt: laat je toe dat een gebruiker zichzelf ‘downgrade’?
Belangrijke vragen:
Wat gebeurt er als de enige admin zichzelf downgrade en er dan geen admin meer is? Is er een backup of is de account dan zonder admin die andere users managen?
Waarom zou een admin zichzelf willen/moeten downgraden?
Opties:
1.
Nee
Lijkt mij de meest logische, simpelste en veiligste keuze, maar kan afhangen van requirements van app. Ik heb deze keuze geïmplementeerd in mijn assignment
2.
Enkel als er minstens 1 andere admin is
Dit vermijd de edge cases en problemen die je kan hebben bij optie 3 terwijl je wel de functionaliteit erin houdt, maar ik zou nog steeds voor optie 1 kiezen.
3.
Ja
Lijkt mij de minst logische keuze, dit zal veel edge cases creëren waar je moet aan denken als developer terwijl mij dit een niet zeer nuttige functionaliteit lijkt.

Stap 3.2 - Test schrijven voor edit user functionaliteit

Wat te testen

Admin kan rollen van andere users aanpassen
Superuser kan rollen van andere users aanpassen
Admin kan eigen rollen niet aanpassen
Superuser kan eigen rollen niet aanpassen