現在、エンタープライズ アプリケーションの HRMS に取り組んでいますが、権限管理で十分に検討できない問題がいくつかあります。
1. 複数の粒度での権限の決定:
部門ベースの権限
基本的なモジュール権限
人事モジュールの権限
管理モジュールの権限
採用モジュールの権限
トレーニングモジュールの権限
上記 5 つのモジュールのうち、最後の 4 つは最初のモジュールに依存するため、勤怠データの閲覧などの一部のプライベート データは基本モジュールの権限に配置されます。
位置ベースの権限
部長
シニアマネージャー
マネージャー
一般スタッフ
基本モジュールには開始プロセスも含まれていますが、部下の従業員が開始したプロセスはマネージャーレベル以上でのみ承認できます。
ユーザーは権限に直接リンクされています
実際の制作環境では、アシスタントディレクターを務めたり、複数の役職を兼務したりする人もいるからです。この状況では、ユーザーが user_permission テーブル管理を直接使用できるようにします。
質問 1: データモデルの設計
デザインを後で確認するのは面倒ですか?
質問 2: 部門や役職によって表示されるインターフェイスは若干異なります。これを実装するにはどうすればよいですか? (ajaxモードで読み込むのがベストです)
例えば、人事部門は基本モジュールに基づいて履歴書ライブラリや人事情報を見ることができます。マネージャーレベルは、部下の従業員、チームのパフォーマンス、その他のデータを承認できます。
経験豊富な専門家からの回答をオンラインでお待ちしています。ありがとうございました!
このプロジェクトは Laravel 5.2.29 に基づいており、現在 1 人によって開発されており、オープンソースになる予定です。
興味があれば一緒に開発してみませんか?
考えたことはありますか? 部門を役割にすることも、役職を役割にすることもでき、ユーザーの特別な権限も独立した役割に分けることができます。 あなたが心配している検証後のトラブルもその考えは正しいです。権限関連付けテーブルを参照する必要があります。多すぎるとクエリのタイムアウトが発生するため、権限を NoSQL に保存します。
2 番目の質問については、表示が異なる場合は、メニューの表示と権限を組み合わせるのが最善です。権限テーブルには純粋な権限項目 + メニュー項目があります。RBAC