Ich arbeite derzeit an einer HRMS-Unternehmensanwendung, aber es gibt einige Probleme bei der Berechtigungsverwaltung, die ich nicht durchdenken kann:
1 Berechtigungsbestimmung auf mehreren Ebenen:
Abteilungsbasierte Berechtigungen
Grundlegende Modulberechtigungen
Personalmodulberechtigungen
Administrative Modulberechtigungen
Berechtigungen für das Rekrutierungsmodul
Berechtigungen für Schulungsmodule
Von den oben genannten fünf Modulen hängen die letzten vier vom ersten Modul ab, sodass einige private Daten, wie z. B. die Anzeige von Anwesenheitsdaten, in den grundlegenden Modulberechtigungen abgelegt werden.
Positionsbasierte Berechtigungen
Abteilungsleiter
Senior Manager
Manager
Normales Personal
Das Basismodul enthält auch den Initiierungsprozess, aber normale Mitarbeiter können den Prozess nicht genehmigen. Nur auf der Führungsebene und höher kann der von untergeordneten Mitarbeitern initiierte Prozess geöffnet werden.
Benutzer sind direkt mit Berechtigungen verknüpft
Denn in der tatsächlichen Produktionsumgebung werden einige Personen Regieassistenten sein oder mehrere Positionen innehaben. In dieser Situation lasse ich den Benutzer direkt die Tabellenverwaltung user_permisson verwenden.
Frage 1: Datenmodelldesign
Wäre es schwieriger, das Design später zu überprüfen?
Frage 2: Die angezeigten Schnittstellen verschiedener Abteilungen und Positionen unterscheiden sich geringfügig. (Am besten im Ajax-Modus laden)
Zum Beispiel kann die Personalabteilung die Lebenslaufbibliothek und Personalinformationen basierend auf dem Basismodul einsehen. Die Managerebene kann untergeordnete Mitarbeiter, Teamleistungen und andere Daten genehmigen.
Ich warte online auf Antworten von erfahrenen Experten, vielen Dank!
Dieses Projekt basiert auf Laravel 5.2.29. Es wird derzeit von einer Person bearbeitet und ist als Open Source geplant.
Bei Interesse könnt ihr euch gemeinsam weiterentwickeln.
有考虑过
RBAC
吗,部门可以是个角色,岗位可以是个角色,用户的特殊权限也可以划分一个独立角色,你的思路也没错,你所担心的后期验证方面是否麻烦应该是指权限关联表太多会造成查询超时这种情况吧,那就将权限存NoSQL上。关于第二个问题,显示不同的话最好是把菜单的显示也结合到权限里面去,权限表里面有单纯的权限项+菜单项