[ALG] Rechten denk probleem

Pagina: 1
Acties:

  • 4Real
  • Registratie: Juni 2001
  • Laatst online: 14-09-2024
Ik wil een rechtensysteem maken maar ik zit met het probleem dat ik de niks op papier krijg hoe het ook maar mogelijk in elkaar moet gaan zitten. Het systeem waar op het moet komen werkt ongeveer als een windows share. Deze manier is dat je op een share een recht zet en alles wat er onder zit dit recht erft vanboven zeg maar. Ik bij me eigen systeem de volgende volgorde eerst een engine daarin komen modules en in die modules komen acties. Dus dit lijkt wel een beetje op een mappen systeem.

Nu heb ik gevraagt op school hoe windows het doet en die maakt voor alle mappen & files regels worden aangemaakt. Dit vind ik opzich wel een goed idee maar als je bijvoorbeeld een forum er bij gaat maken als module en daarin een miljoen topics/posts hebt moet je dus bij 5 groepen wel 5 miljoen regels aanmaken.

Zelf had ik het idee dan om ze bij de parent (de actie dan dus) te laten kijken wat hij voor recht heeft en dan die pakken (mocht die er niet zijn naar module kijken en zo doorgaan naar de engine). Maar bij dit systeem heb ik dus geen idee hoe ik het in elkaar zou moeten gaan zetten.

Ik heb wel gekeken naar het topic van Chem: [php/[my]sql] inherited rechtensysteem dit ziet er op zich wel goed uit maar deze opbouw vind ik een beetje te plat.

Dus mijn vraag is of jullie me willen helpen met brainstormen de programmatuur wil ik zelf dolgraag bouwen dus ik vraag alleen eventjes naar jullie natuurlijke rekenkracht ;)

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Uitgaande van het forum dat je als voorbeeld noemt: hoezo denk je dat je rechten in moet stellen op topicniveau? Je kan toch gewoon rechten instellen op forumniveau? Of wou je het soms mogelijk maken om één bepaald topic voor iedereen te verbergen? Lijkt me redelijk zinloos, en zoals je zelf al zegt ook niet bepaald handig.

Je kan gewoon topdown werken. Eerst kijken op het laagste niveau, en kijken wat voor rechten iemand daar heeft. Het handigste is op dat niveau gewoon alles op "deny" te zetten. Dan ga je verder, een niveau omhoog. Hee, uitbreidingen op die rechten, en een paar dingen kunnen allowed worden. Weer een niveau omhoog: hee, een paar van de dingen die ik net allowed heb zijn nu weer denied...maar andere dingen worden wel allowed.

Feitelijk zet je dan gewoon je rechten neer in een groepje variabelen (array?) en overschrijft ze steeds wanneer je daartoe opdracht krijgt vanuit de rechteninstellingen die je uit je DB trekt, en doet er gewoon niets mee wanneer er "inherited" in je DB staat.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • 4Real
  • Registratie: Juni 2001
  • Laatst online: 14-09-2024
Ok die eerste twee stukken volg ik je nog aardig maar bij de komen er even vraag tekens.

Ik sla het nu zo op in me database:
RuleID, Target, TargetID, Module, Action, ActionID, Flag

  • PrisonerOfPain
  • Registratie: Januari 2003
  • Laatst online: 07-04 13:41
Natuurlijk kun je ook even de specificaties voor een RBAC systeem opduikelen en aan de hand daar van een implementatie schrijven, scheelt een hoop aan denk werk.

  • ludo
  • Registratie: Oktober 2000
  • Laatst online: 01-03 18:17
PrisonerOfPain schreef op donderdag 12 januari 2006 @ 19:49:
Natuurlijk kun je ook even de specificaties voor een RBAC systeem opduikelen en aan de hand daar van een implementatie schrijven, scheelt een hoop aan denk werk.
Inderdaad zeer interessante kost: http://csrc.nist.gov/rbac/rbacSTD-ACM.pdf

  • muba
  • Registratie: April 2002
  • Laatst online: 19-10-2013

muba

Prince of Persia!

ik heb ook een rechtensysteempje gemaakt voor een CMS (verschilt niet zo heel veel van een forum - althans, deze niet).
Ik deelde gebruikers in in groepen. Elke gebruiker was lid van een groep (al was het maar de DefaultUsers group). Elke group had een reeks rechten (of niet :) ). Elke user had daar eventueel aanvullingen op.
Concreet:

group DefaultUsers - leden hadden enkel recht om comments te schrijven
group Submitters - leden hadden recht om nieuwe artikelen te schrijven en om te commenten.
group FrontpageEditors - leden hadden recht om nieuwe artikelen te schrijven, om te commenten en om artikelen van anderen zichtbaar te maken op de openingspagina.
(en zo waren er nog een paar groepen, die ik gemakshalve allemaal steeds de rechten van de vorige groep heb gegeven, plus een aantal nieuwe)

Enkele frontpageeditors hadden bovendien een extra recht wat ze in staat stelde om ook hun eigen artikelen te "frontpagen".

Groepen en bijbehorende rechten waren gewoon via de website in te stellen (mits je de goede rechten had!) en ook extra rechten voor individuele gebruikers kon je instellen via de website.

Reporter: Mister Gandhi, what do you think of western civilisation?
Gandhi: I think it would be a good idea

Pagina: 1