Jeg er igang med at kode en brugerafdeling hvor admins kan redigere brugere osv. og vælge hvad en bruger har adgang til. Jeg har sat det op på denne her måde:
User - redigere sin profil Moderator - user + nyheder, forum, tagwall, links Admin - Alle funktioner
Lad os sige at en alm. user ikke skal være moderator, men jeg vil gerne give ham adgang til at skrive nyheder. Så hans adgang kommer til at se sådan her ud:
User - redigere sin profil + nyheder
Mit egentlige problem er at hvordan kan jeg inddele min mysql database på? Hvis jeg både har adgang til nyheder og links, så vil min "level" row i databasen være:
newsadmin linksadmin
I news.php checker den jo om jeg har adgang:
if ($level == "newsadmin")
Nu da jeg har både newsadmin og linksadmin så er det ikke = newsadmin..
Jeg håber der er nogen som kan hjælp med! Jeg har tænkt meget over det, men jeg har ikke fundet en løsning endnu :(
Det med tal er lidt for kompliceret :D For hvis jeg kommer med et nyt script, så skal jeg til at ændre talrækken osv. Hvad med mener du med en ny tabel? altså hvordan har du tænkt dig at sætte det op på?
Hver bruger har "rights" af X antal karakterer, alt efter hvor mange afdelinger på siden der skal tildeles rights til. Lad os sige, at du har disse 3: Nyheder, Links og Forum. Hver afdeling kan have et "rights-level" mellem 1 og 9. F.eks. 1 for læse, 2 for oprette, 3 for redigere og 4 for slette.
321 i rights-feltet vil så give en bruger ret til, at redigere (og oprette og læse) nyheder, at oprette (og læse) links, samt at læse forum.
I starten af f.eks. news.php laver du så en $news_rights = substr($VariabelMedAlleRights, 0, 1); for at hente den første char ud som jo indeholder rettigheder til news.
If ($news_rights<=1) må der læses
If ($news_rights<=2) må der læses og oprettes
If ($news_rights<=3) må der læses, oprettes og redigeres
If ($news_rights<=4) må der læses, oprettes, redigeres og slettes
jacobdos forslag med en true/false række for hver bruger fungerer fint.
Eksempel 1: user_id right_id is_allowed ------- -------- ---------- user1 user 1 user1 admin 1 user1 moderator 1 user2 user 1 user2 admin 0 user2 moderator 0
Alternativt kan tabellen bare indeholde user_id og right_id, hvor brugeren har den pågældende rettighed. Eksempel 2: user_id right_id ------- -------- user1 user user1 admin user1 moderator user2 user
Inden du udskriver en side, kontrollerer du så, om den pågældende kombination af user_id og right_id findes i databasen. Det giver stor fleksibilitet. For hver enkelt side kan du bestemme en eller flere right_id's, som skal give adgang.
jeg kigger på det når jeg kommer hjem, jeg skal lige op til årsprøve i kemi. De er allesammen interresante :)
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.