Jesper TMedlem sedan nov. 20017 144 inlägg Jag börjar bli stammis här... :r
Tänk er detta scenario: Fyra tabeller; Medlemmar, grupper, tillhörigheter och rättigheter
En medlem kan vara med i flera grupper
Gruppmedlemsskapet styrs i tabellen Tillhörigheter
Vilka medlemmar som kan se/ändra andra medlemmars uppgifter styrs i tabellen rättigheter
tblMedlemmar
Id | Namn |
----------------------
1 | Kalle
2 | Olle
3 | Hasse
tblGrupper
gId | gNamn | gAdmingrupp
-----------------------
1 | Telefoner | 0
2 | Administratör | 1
3 | Bilar |0
4 | Redaktör | 1
tblTillhörigheter
tid | tGid
-----------------------
1 | 1
2 | 1
2 | 3
tblRättigheter
rid | rGid
----------------------
1 | 1
Men ett problem uppstår i detta fall för att Kalle har adminrättigheter i gruppen telefoner medans olle är medlem i båda grupperna telefoner och bilar. Kalle kommer kunna ändra/se Olles uppgifter fast Kalle endast har adminrättigheter i den ena gruppen.
Detta är ju igenligen inte något konstigt, men jag önskar tankar på hur man skulle kunna styra detta på ett smidigt sätt.
Jesper TMedlem sedan nov. 20017 144 inlägg Undrar fortfarande... ett litet tips skulle ju inte skada. :)
LarsGMedlem sedan dec. 200012 464 inlägg Jag förstår inte vad som är problemet. Vad vill du uppnå?
Jesper TMedlem sedan nov. 20017 144 inlägg Jo,
låt säga att man skall få tillgång till gruppens medlemmars personuppgifter och lösenord om man har adminrättigheter i en specifik grupp.
Då kommer ju även personer med i den listan som har adminrättigheter i andra grupper. Ex. Kalle som har adminrättigheter i ”telefoner” kan kolla upp Pelles (Pelle har adminrättigheter i gruppen ”bilar” och är medlem av gruppen "telefoner") lösenord och logga in som Pelle...
Jesper TMedlem sedan nov. 20017 144 inlägg Är det fortfarande otydligt eller är det omöjligt att lösa?
LarsGMedlem sedan dec. 200012 464 inlägg Du behöver nog ett mer nyanserat rättighetsbegrepp där du skiljer på vad rättigheter i en grupp och rättigheter generellt innebär.
Du skriver att den som har administratörsrättigheter i en grupp kan logga in som en annan användare vilket för mig verkar konstigt. Ett sådant privilegium bör inte vara knutet till en viss grupp.
Rent praktiskt så skulle jag lägga till en tabell som innehåller globala rättigheter.
Jesper TMedlem sedan nov. 20017 144 inlägg
LarsG skrev:
Du skriver att den som har administratörsrättigheter i en grupp kan logga in som en annan användare vilket för mig verkar konstigt. Ett sådant privilegium bör inte vara knutet till en viss grupp.
Men det är inget pivilegium utan ett tänkbart scenario om tabellerna är uppbyggda enligt min modell. Jag vet att det brister i min struktur, men jag har svårt att komma på en vättig modell.
För, alla medlemmar kan vara med i flera grupper.
Vissa medlemmar skall kunna moderera medlemmars grupptillhörigheter och medlemmars uppgifter.
LarsGMedlem sedan dec. 200012 464 inlägg
Men det är inget pivilegium utan ett tänkbart scenario om tabellerna är uppbyggda enligt min modell. Jag vet att det brister i min struktur, men jag har svårt att komma på en vättig modell.
Det känns som om du utgår från modellen i stället för verkligheten och det är därför som frågeställningen blir så vag.
Du får definiera vilka rättigheter som behövs i systemet och kategorisera dem. T.ex
GLOBALA
-------
Skapa grupper
Ta bort grupper
Ändra medlems uppgifter
Personifiera medlem
GRUPP
-----
Ta bort medlem
Lägga till medlem
Det kan man modellera med tre tabeller t.ex.
(jag har aldrig förstått vitsen med ungersk notation så det struntar jag i,
(varför heter inte dina kolumner colXxxx ;) ))
create table privs(
id int primary key,
name varchar(20),
description varchar(200))
create table globalPriv(
privId int references privs,
userid int references users,
primary key(privid,userid))
create table groupPriv(
groupid int references groups,
userid int references users,
privid int references privs,
primary key(groupid,userid,privid))
Om du kommer fram till att det bara behövs en typ av privilegium så räcker det med att du
har en kolumn i users-tabellen som anger det. Som sagt, hur du modellerar beror på vad du vill kunna göra.
Jesper TMedlem sedan nov. 20017 144 inlägg Tack mästareLars.
(Skall genast sluta upp med min kamelNotation) ;)
LarsGMedlem sedan dec. 200012 464 inlägg Jag säger inget ont om kamelnotation, använder den själv.