Implementieren von Berechtigungen in PHP

8

Ich habe das mehrmals ohne Glück versucht. Nach dem Lesen diesem Post , es hat mich daran interessiert, dies wieder zu tun. Kann mir also jemand sagen, warum das Folgende nicht funktioniert?

%Vor%     
Kevin 19.08.2008, 23:11
quelle

10 Antworten

11

Verwenden Sie den bitweisen ODER-Operator (|), um Bits zu setzen, und verwenden Sie den UND-Operator (& amp; ampl;) zum Überprüfen von Bits. Ihr Code sollte folgendermaßen aussehen:

%Vor%

Wenn Sie nicht genau verstehen, was binäre Operatoren tun, sollten Sie es lernen. Du wirst verstehen, wie du das viel besser machen kannst.

    
Jeremy Ruten 19.08.2008, 23:17
quelle
6

Im Interesse, das Rad nicht neu zu erfinden, werfen Sie einen Blick auf ACL / Authentifizierungssysteme wie Zend ACL und Zend Auth ? Beide können unabhängig vom gesamten Zend Framework verwendet werden. Access Control ist eine knifflige Situation, so dass es sich lohnt, zumindest zu schauen, wie andere Systeme es tun.

    
dragonmantank 20.08.2008 02:39
quelle
2

Es ist schon lange her, dass ich PHP benutzt habe, aber ich gehe davon aus, dass das funktioniert:

%Vor%     
Espen Herseth Halvorsen 19.08.2008 23:14
quelle
2

Ich habe dies bei der Fehlerberichterstattung verwendet und es funktioniert ganz gut. Wie für Benutzerberechtigungen sollte es sehr gut funktionieren - Sie könnten mehrere Spalten für jede Benutzerberechtigung in Ihrer Datenbank oder eine Benutzerspalte in Ihrer Datenbank haben. Gehen Sie für diese Option.

    
Ross 25.08.2008 16:57
quelle
1

(2 | 4) wird zu 6 ausgewertet, aber 2 == 6 ist falsch.

    
mk. 19.08.2008 23:18
quelle
1

@mk: (2 | 4) ergibt 6.

    
Jeremy Ruten 19.08.2008 23:24
quelle
1
%Vor%     
conmulligan 19.08.2008 23:26
quelle
1
  

Super, das scheint die beste Möglichkeit zu sein, Berechtigungen in einem CMS zu machen. Ja? Nein?

Vielleicht habe ich das nie wirklich so gemacht. Was ich getan habe, ist Bit-Operator verwendet, um eine ganze Reihe von "Ja oder Nein" Einstellungen in einer einzigen Zahl in einer einzigen Spalte in der Datenbank zu speichern.

Ich denke, für Berechtigungen würde diese Methode gut funktionieren, wenn Sie Berechtigungen in der Datenbank speichern möchten. Wenn jemand Inhalte veröffentlichen möchte und nur Admins und Redakteure sehen möchten, müssen Sie nur das Ergebnis von

speichern %Vor%

in die Datenbank, dann um es zu überprüfen, machen Sie etwas wie

%Vor%     
Jeremy Ruten 19.08.2008 23:39
quelle
0

Meiner Meinung nach ist das nicht gut skalierbar. Ich habe es nicht wirklich versucht, es in einem groß angelegten Projekt zu verwenden, aber ein CMS klingt viel zu kompliziert, um dies zu verwenden.

    
Espen Herseth Halvorsen 19.08.2008 23:42
quelle
0

Es kommt immer darauf an, was Sie brauchen. Wenn du das Zend Framework bereits kennst, würde ich den Zend_Acl / _Auth-Vorschlag, der früher gemacht wurde, absegnen. Aber denken Sie daran, dass jeder Rahmen wahrscheinlich mit einer ähnlichen Komponente ausgestattet ist.

Die andere Sache, die Ihnen in den Sinn kommt, ist LiveUser . Ich arbeite auch gerne mit ihnen.

Ich denke, du kannst so ziemlich alles machen, und während deine Herangehensweise sehr einfach aussieht, ist sie auch begrenzt, da du (durch all diese if ()) viel von der ACL-Logik in die Mitte deiner setzen wirst Anwendung. Was nicht das Größte ist, um es einfach und erweiterbar zu halten. ;)

    
Till 25.08.2008 16:52
quelle

Tags und Links