Frage

Ich habe über den Web-App gedacht ich bin zu beginnen Entwicklung und fragen, ob mein üblicher Ansatz verbessert werden könnte.

In meinem letzten paar apps ich eine Tabelle erstellt haben (siehe unten) von Rollen (wie CREATE POST, EDIT POST etc.), die jeweils ein Bit-Feld auf sie angewendet, so kann ich einfach ein Benutzer bestimmte Rechte bei der Registrierung zuweisen und Scheck sie später (zB $user->hasRight(CREATE_POST)).

Ich frage mich, ob es ein besserer Ansatz dazu. Es ist sicherlich verwirrend, wenn die Rechte nicht speziell mit dem Benutzer verknüpft (ich konnte eine Tabelle, wo jedes Recht eine boolean Spalte ist aber das klingt nur wie eine kleine Verbesserung?) - und was passiert, wenn ich einige um ändern

Ich bin nicht Standard-Bibliotheken zu verwenden, suche (die App selbst ist eine Lernerfahrung für mich: mit postgresql, git etc.) obwohl ich vollkommen zufrieden bin Anregungen von ihnen meine eigenen zu bauen - also, wenn es etwas gibt, besondere denken Sie, dass ich auf einen Blick sollten Sie sagen so:)

War es hilfreich?

Lösung

Das ist im Grunde der gleiche Ansatz, den ich in meinem eigenen Web-Anwendungen nehmen (und ein bisschen von Versuch und Irrtum hat sich das für mich gegangen). Der einzige Unterschied ist, dass ich wahrscheinlich eine Tabelle verwenden würde, die die verschiedenen Berechtigungen wie Spalten hat, so dass, wenn Sie später mehr Berechtigungen hinzufügen möchten, können Sie. Mit Bits in einer Ganzzahl begrenzt Sie auf eine feste Anzahl von Berechtigungen, und zwar so viele Bits wie es in der ganzen Zahl ist. Typischerweise 32 das wäre, die ich nehme wahrscheinlich genug ist, aber ich ziehe mich nicht auf diese Weise zu begrenzen.

Für das, was es wert ist, das ist auch das Modell, das phpBB verwendet (Berechtigungen als Tabellenspalten), und wenn es wohl gut genug für den beliebtestenen PHP-Web-App, ist es wahrscheinlich gut genug für dich; -)

Andere Tipps

Sie können einen Blick auf die Dokumentation von Spring Security nehmen (früher Acegi), die eine weit verbreitete Java-ACL-Framework ist.

Die Dokumentation ist erschöpfend und beschreibt auch die verschiedenen in der Gestaltung von Bot-Authentifizierung und Autorisierung gemacht Überlegungen. Auch ohne Verwendung von Java ist es wert Lesung.

können Sie sehen die Indexseite einen Überblick verschaffen und sich einen Eindruck von dem, was Acegi tut (und nicht) tun. Sie können auch direkt auf die Berechtigungskonzepte oder sogar auf die Datenbankschema .

Ich bin sicher, dass Sie phpgacl bereits gefunden haben, aber hier ist ein Link, falls Sie nicht haben. Es kann ein wenig rau sein Kopf herum wickeln auf den ersten, und sicherlich die Bibliothek ist schwierig (zeitaufwendig) in ein Projekt zu realisieren, aber die Dokumentation und Demo sind EXCELLENT Referenzpunkte.

PHP Generic Access Control Lists

Das Zend Framework eine ACL das ist ähnlich dem, was Sie versuchen. zu tun

ACL-Ansätze in Web-Anwendungen, im Allgemeinen, wurde diskutiert, zum Beispiel hier .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top