25. juli 2005 - 23:46Der er
14 kommentarer og 1 løsning
Bygge et rettighedssystem op
Jeg har bygget et site, og skal nu have mulighed for at tilføje rettigheder til nogle brugere.
Har nogle moduler/objecter, og man skal gerne kunne få adgang og blive nægtet adgang til disse, uafhængigt af hinanden.
Nogen der har nogle foreslag til hvordan dette kan gøres?
Jeg kunne selvfølgelig give alle objekterne et unikt nummer, og ssætte det ind i databasen med en form for seperator, men det vil jo gives et fandends stort udtræk.
Så skal du give dem ID'er.... til det antal vil jeg nok mene du skal bruge AAA, AAB, AAC.. etc... Så laver du en liste per bruger hvor den er komma separeret.. så er det jo bare at tjekke om ID stringen er indeholdt i brugerens tilladelser...
Ja, der kommer nok nogle mere kloge hoveder imorgen når de vågner ;) Held og lykke med det ;)
Synes godt om
Slettet bruger
27. juli 2005 - 19:19#13
Jeg ville nok gøre det med lidt ekstra rettighedstabeller i stil med:
Tabel: rettigheder id objekt_id type (enum med mulighederne "bruger", "gruppe") bruger_gruppe_id rettighed
Tabel: gruppemedlem gruppe_id bruger_id
Tabel: grupper (Denne er bare for at gøre det lettere at styre grupperne) id gruppenavn
For så at finde en brugers rettigheder til et objekt, skal man bruge en query i stil med:
( SELECT rettighed FROM rettigheder WHERE type='bruger' AND bruger_gruppe_id=$brugerid AND objekt_id=$objektid ) UNION ( SELECT rettighed FROM rettigheder LEFT JOIN gruppemedlem ON bruger_gruppe_id=gruppe_id WHERE type='gruppe' AND bruger_id=$brugerid AND objekt_id=$objektid )
Så er det bare at løbe resultaterne igennem indtil man har fundet et, der giver lov eller der ikke er flere resultater.
Og ja, det kan godt give en hulens masse rækker i tabellerne, hvis der er mange brugere.
Mange tak for besvarelsen, jeg fandt selv en metode meget lignende.
Så giver du et svar er jeg villig til at give dig de points.
Synes godt om
Slettet bruger
27. juli 2005 - 23:10#15
Det kommer her.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.