webForumDet fria alternativet

administrations-gränsnitt

.NET

35 svar · 774 visningar · startad av P

Medlem sedan jan. 20012 204 inlägg
Frågan#1

Detta kanske inte är rätt forum men här kommer den ändå.

Jag ska bygga ett admininstrations-gränssnitt och skulle behöva lite hjälp. Hade tänkt att göra något i den här stilen:

tbl_admin - innehåller information om administratören....
id|namn|lastlogin|userlevel|etc

i denna tabell har jag något som heter userlevel:

0 - får göra ngt
1 - får göra ngt och lite till
2 - nästan allt
3 - tillgång till allt
osv.

Detta borde ju fungera. Men om jag skulle vilja att administratören ska kunna lägga till egna "levels" hur ska jag göra då? Och för att göra det hela lite mera komplicerat så ska jag ha samma administratörer/system till ett antal applicationer så de ska vara sammanknutna....

Funderade också på något i den här stilen:
id|admin_id|nyhet(tillåtelse att lägga till nyhet, true /false) osv med alla andra saker som ska elelr inte ska ha tillgång till. Men har hört att det inte ska vara så bra...

Jaja vet inte rikigt hur jag ska förklara alla svar är välkommna!

Medlem sedan apr. 20012 266 inlägg
#2

Jag skulle nog försöka göra det roll/grupp baserat där du först anger en grupp som är huvudadmins, sedan kan de då lägga till nya grupper och lägga in folk i de grupperna samt ställa in på de olika sidorna vilken grupp som får göra vad.

Medlem sedan jan. 20012 204 inlägg
#3

finns det inte en risk att det blir väldigt många roller? Tillgång till det men inte det men det osv...

Medlem sedan dec. 19995 881 inlägg
#4

Du kan ju skapa generella roller, sedan kan du ju göra möjligheter att sätta grant/deny direkt på användaren också, även om det är väldigt dumt. Även om det bara kommer att finnas en användare i en grupp är det bättre att skapa en grupp för det än att sätta rättigheterna direkt på användaren.
Tänk om administratören dör och en ny användare - med samma behörigheter - skall in, då är det lättare att bara låta användaren vara medlem i en grupp än att dela ut alla rättigheter som är satta genom åren.

Medlem sedan jan. 20012 204 inlägg
#5

jo men hur ska jag då skapa tanellen som har hand om rollerna?

Medlem sedan apr. 20012 266 inlägg
#6

Tabeller

roles [id,name]

Sedan kan du välja olika sätt att koppla användare till rollerna, antingen skapar du en kolumn i tabellen som har hand om användarna, i den kolumnen finns det information om vilka grupper användaren är med i. Tex 1;43;5;6. Sedan gör du bara en string array av dem. Det andra alternativet är att skapa en ny tabell som har hand om kopplingen i mellan user och roles. Den kan se ut så här: usertoroles [userid,roleid].

Medlem sedan juli 200012 978 inlägg
#7

Roller är helt rätt tänkt som funktion.
En administratör skall ju inte ha hela rättigheten till allt.
Bara de funktioner som han har behöv av.
Tiden dvs datum from datum tom är viktigt.

Medlem sedan jan. 20012 204 inlägg
#8

hmm kan denna fungera?
http://eripet.www2.dotnetplayground.com/admin.jpg

om ni nu förstår vad jag menar...

Medlem sedan jan. 20012 204 inlägg
#9

Lasp skrev:

Tiden dvs datum from datum tom är viktigt.

ehh vad?

Medlem sedan juli 200012 978 inlägg
#10

Jo då kan du delegera rättigheter viss tid.
Exempelvis backuprättigheter för en roll bara under en viss tid.
Kanske inget jättebra exempel men ändå.
Varje användare som tilldelas en eller flera roller skall i allafall ha en begränsad tid (datum) på sig.

Medlem sedan mars 20002 836 inlägg
#11

Skulle nog bygga med en rolltabell (för alla roller) sedan 2 st "junktabeller" för att koppla samman användare->roll och application->roll. På det viset skapar man en roll för applikationen och sedan lägger man in användaren i den rollen.

Kika på mitt attachment för ett litet förslag.

cya,
PatrikB

dbschema_roles.gif
Medlem sedan jan. 20012 204 inlägg
#12

lasp: ok då förstår jag

PatrikB: ska kolla mer på ditt svar sedan, låter rätt smart, junktabell?

Medlem sedan mars 20002 836 inlägg
#13

junktabel= en tabell som kopplar samman 2 andra tabeller ... som en relation ;) ... istället för att lägga relationen direkt i tex Roles tabellen

cya,
PatrikB

Medlem sedan jan. 20012 204 inlägg
#14

Bara en liten funderare, skulle det vara bra att ha ett id fält i User och Application Roles eller är det bara onödigt?

Medlem sedan mars 20002 836 inlägg
#15

onödigt då du kan para ihop userid och appid som blir en unik kombination

cya,
PatrikB

Medlem sedan juni 20019 024 inlägg
#16

PatrikBs variant gillade jag.

Men en liten undring: i den designen är det tillåtet att sätta flera roller till en och samma användare. Bör man göra det (t ex Nisse --> Nyhetsskribent, Administratör)? Eller bör man sätta endast en roll (Nisse --> Admin) och sedan sätta alla rättigheterna för den specifika rollen?

Medlem sedan jan. 20012 204 inlägg
#17

Ja det är en bra fråga. Ska vidarebefodrad den till en snubbe i USA som hjälper mig...

Medlem sedan juni 20019 024 inlägg
#18

Det finns ju för och nackdelar med båda sakerna, men finns det något "korrekt" sätt?

En användare som blir tilldelade flera roller (t ex Admin, nyhetsskribent) är ju svårt att tyda vad denne är för något. Men om man sätter rättigheterna på rollen (Admin --> Kan göra det och det) så blir det mer rättigheter att ställa in så fort man vill göra en förändring.

Vad är mest rätt (jag tänkte satsa på alternativ ett)?

Medlem sedan mars 20002 836 inlägg
#19

I LotusNotes jobbar man mycket med roller. Själva rättigheten ligger INTE på användaren UTAN på rollen.

Dvs, i ditt exempel så skulle själva nyhetsapplikationen tex kunna ha dessa roller:

Reader
Editor
Admin

Om nu Nisse behöver admin rättigheter så läggs han där.
Admin ska ju kunna göra "allt". Behöver således inte Nisse vara admin utan endast Skribent (Editor) så lägger man honom i den rollen istället. Enligt mig är "det det rätta" sättet att hantera roller (grupper).

Rättigheter ska ALDRIG sättas på specifik användare.

cya,
PatrikB

Medlem sedan juni 20019 024 inlägg
#20

Jo, det är jag fullt medveten om, men jag menade om man ska sätta användaren i olika grupper eller bara en. Se inläggen ovan för mer beskrivning.

279 ms totalt · 4 externa anrop · v20260731065814-full.2f471f9e
133 ms — deklarationer (db)
0 ms — hämta statistik (cache)
141 ms — hämta tråd, inlägg och bilagor (db)
135 ms — ändringar (db)