Jag försöker komma på en bra struktur för hantering av användare och behörigheter. Är det någon som har bra synpunkter på detta ämne? Eller bra länkar?
Mina användare är kopplade till olika behörigheter och beroende på dessa skall de få upp olika menyer samt få vissa funktioner begränsade i systemet.
Just nu är jag inne på att göra en klass för användare och stoppa in den inloggade användaren som ett objekt i en sessionsvariabel.
Sen tänkte jag generera menyn dynamiskt beroende på behörighet.
Det som känns lite krystat är att kolla behörigheten hela tiden på olika sidor för att kunna avgöra funktionalitet.
Är det kanske bättre att ha helt olika sidor för de olika behörigheterna och kolla högst uppe på sidan om man har behörighet till den?
Med ett litet antal sidor men många funktioner och behörighetersnivåer (som tex ett forum) kommer man långt om man knyter ihop alla behörigheter i en unik variabel och sedan testar den på varje sida.
Med "enabled" och "visible" finns sedan stora möjligheter att tillgodose de olika användarnas behov i en och samma sida.
Ett litet exempel på hur man klumpar ihop behörigheter på en forumsida:
Read =1
Write = 2
Edit = 4
Delete = 8
Vanlig forum användare ges förslagsvis userRight =3 (read + write) och admin userRight =15 (read + write + edit + delete).
'på sidan kollas vad som visas med:
If (userRight and 1) = 1 then
'placera allt som skall visas här
myHeader.visible = true
myGrid.visible = true
else
myHeader.visible = false
myGrid.visible = false
end if
'och skapa nytt medelande kontrollerna likaså
If (userRight and 2) = 2 then
'placera allt som skall visas här
myTextArea.visible = true
myCreateMessageButton.visible = true
else
myTextArea.visible = false
myCreateMessageButton.visible = false
end if
'och tabort knapparna
If (userRight and 8) = 8 then
myRemoveMessageButton.visible = true
myRemoveThreadButton.visible = true
myRemoveForumButton.visible = true
else
myRemoveMessageButton.visible = false
myRemoveThreadButton.visible = false
myRemoveForumButton.visible = false
end if
...etc...
Hur man egentligen väljer att Visa/Ändra/Dölja kontrollerna (genom hemmasnickrade objekt eller scriptstyle) är inget jag har något tips om (även om exemplet återger scriptstyle) utan vad jag försöker visa är hur du kan "Okrysta" behörighetskontrollen genom att baka in alla behörigheter i ett värde och sedan kontrollera om det sammanlagda värdet innehåller enstaka behörigheter med
if (myUserRights AND 1) = 1 then
Blev som vanligt rörigt men du förstod säkert tanken.
Hälsningar
Toralf
140 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17