Roller och rättigheter är ju något som används överallt, i nästan varje applikation så finns ju en login-funktion för att skydda någon forma av information. Hej! En annan variant: använd bitmask lite:Roller, rättigheter etc.
Det enkalste (och vanligaste) sättet är att vid inloggning sätta en session till ett specificerat värde, tex. användarens ID i databasen. Denna session kollar man sedan på varje sida, finns den så är allt frid & fräjd och finns den inte så redirecta:s man till inloggningssidan igen.
Denna lösning gör ju att det antingen är "öppet eller stängt", dvs. man får antingen se datan eller inte. Man kan inte säga att du får se denna texten, uppdatera denna och eventuellt radera på ett annatställe på samma sida. Då måste man ha fler rättigheter.
Med fler rättigheter så blir det ochså svårare att administrera. För varje ny person som skall in så skall det sättas flera olika rättigheter....det är nu det börjar bli intressant med roller.
---
Det jag vill åstadkomma är en "platform" som har stöd för roller och rättigheter. Denna "platform" vill jag sedan knyta moduler till. En modul kan tex. vara en gästbok, nästan kan vara ett forum etc.
---
En variant som jag funderat på, som jag dock inte testat, är att vid inloggning hämta samtliga roller/rättigheter som användaren har och spara ned dem i en session.
I de olika modulerna finns sedan (hårdkodat) vilka rättigheter som krävs för att få nyttja en specifik funktionalitet och detta kollas mha. Instr()-funktionen mot sessionen.
På detta sätt undviker man att gå mot DB:n varje gång för att kolla rättigheter.
Vet inte om detta är ngn bra lösning, kom gärna med synpunkter?!
---
Skulle vara mkt tacksam för all feedback och förslag som ni på Pellesoft kan tänkas ha. Vet att det finns folk här med mycket kunskap och erfarenhet.
Svara här i inlägget om ni vill. Skicka ett PM eller ett mail om ni hellre vill det.
Tack på förhand!
AndersSv: Roller, rättigheter etc.
Kanske inte är den bästa lösningen men jag brukar ha ett fält i tabellen (i en databas) med användarna som heter typ admin eller nåt och där sätts en sifra mellan kanske 0 - 4 som anger vilken behörighetsnivå som man har. 0 är lägst och fyra är högsta nivån (mankan ju har flera nivåer naturligtvis).
När man sedan loggar i så sätter jag detta värde i en session Session("adminlevel") = objRecset("admin").
Detta gör ju att det är enkelt att kolla om en användare har behörighet genom att kolla om sessionen är större än eller lika med tillexempel 2 och är den inte det så ska den inte få använda, i ditt fall, en viss modul.
Hoppas att du fattade vad jag menade och lycka till!Sv: Roller, rättigheter etc.
0 = ingen rättighet alls
1 = tillåtelse att läsa
2 = tillåtelse att skriva i forum
4 = tillåtelse att ändra sitt eget inlägg i forum
8 = tillåtelse att ta bort sitt eget inlägg i forum
16 = tillåtelse att moderera forum
32 = tillåtelse att chatta
64 = tillåtelse att kicka folk
etc.
Eftersom att varje nummer är "dubbelt" så blir det om man tittar binärt:
1 = 1
2 = 10
4 = 100
8 = 1000
16 = 10000
32 = 100000
64 = 1000000
etc. Med hjälp av detta kan man se till att bara vissa personer har rätt att ändra nyheterna, andra har rätt att moderera i forumet, vissa har rätt att hålla koll på chatten etc.
Man måste dock tänka igenom det här lite först så att man inte tabbar sig; t.ex. kanske alla har att som default få läsa allt (med vissa undantag), och när det försöker med något annat så kan den kolla upp emot modulens tabell i databasen vad användaren har för rättigheter. Men det är fortfarande samma princip.