Ik ben bezig met mijn eigen forum en dat lukt al aardig. Alleen nu moet ik nog het permissie systeem maken.
De categorien en topics/reply's komen te recht in een database.
Ik heb 5 verschillende rangen om op mijn forum.
1.Bezoeker
2.Gebruiker
3.Moderator
4.Volledig moderator
5.Administrator
Echt wil ik nu weten hoe ik permissies aan iedere categorie kan geven. Het wilde me niet lukken iets te bedenken hoe het precies zit. bijvoorbeeld als de Gebruiker de berichten mag aanpassen mogen de Moderator, Volledig moderator en Admin dat ook. Maar als de Admin alleen iets mag doen mogen de onder staanden dat niet.
Heeft iemand zoiets ooit al gemaakt, of heeft hier informatie over hoe dit gemaakt kan worden. Het liefste met voorbeeld, maar hoeft niet. (voorbeeld om te kijken hoe het werkt, zo leer ik zelf het beste.)
Als ik het goed begrijp moet je dus voor elke user een record opnemen in de rechten_rollen tabel?
Hier kan je dan dus ook eenvoudig een topic in een forum aanmaken dat alleen voor bepaalde users is bestemt? Dit zou dan een extra rol worden, maar hoe doe je dat met de rest van de users die hier niet in mag?
@Frank: Kan je misschien een klein voorbeeldje geven van een toepassing waar meerdere rollen mbt de rechten handig zijn? Dan heb ik hier wat meer houvast aan.
@Frank: Kan je misschien een klein voorbeeldje geven van een toepassing waar meerdere rollen mbt de rechten handig zijn? Dan heb ik hier wat meer houvast aan.
Alvast dank!
Nooit, helemaal nooit. Het is namelijk dé manier om veiligheidslekken in je systeem aan te maken.
Fouten maken is menselijk, dit zul je moeten accepteren
En dan: Stel, in rol A maak je een fout, je geeft per ongeluk het recht om gegevens X te verwijderen. Omdat de users met rol A geen rechten hebben om de gegevens X in te zien, kunnen ze de gegevens niet selecteren en dus niet verwijderen.
Nu heeft een user met rol A ook een andere rol nodig, rol B. Rol B heeft het recht om gevens X in te zien, dat behoort tot de werkzaamheden. Dankzij de fout in rol A, krijg je de situatie dat een user met rol B ineens gegevens kan verwijderen! Tuurlijk, dat is een fout van de RSO in rol A, maar je gaat zoeken naar de fout in rol B. Daar waar de fout zich niet bevindt... Daarnaast kan het best wel even duren voordat het lek uberhaubt aan het licht komt, de user zal het misschien helemaal niet doorhebben en de data wordt in eerste instantie wellicht helemaal niet gemist. Tegen de tijd dat de boel aan het licht komt en is opgelost, ben je wellicht al een hoop kostbare data kwijt!
Geef een user altijd 1 rol binnen 1 systeem, dan kan dit nooit voor veiligheidsproblemen zorgen in combinatie met andere rollen. Het is eenvoudiger om 10 rollen op veiligheid te controleren dan ontelbare combinaties van rollen per gebruiker.
Waarbij je delete mag lezen als 'wijzigen van de status' en archive zelden nodig is. Alleen voor grote databases ( > 100GB ) of met vele miljarden records is dat interessant, maar ook dan ga je eerst met indexen e.d. aan de slag. Verder nog even kijken wie de eigenaar van een record is, tot welke groep een eigenaar behoort en of het record alleen de eigenaar, alleen door de groep, of door iedereen mag worden gelezen/bijgewerkt/verwijderd.