私は現在、奇妙な役割ベースのセットアップを備えた手続き型 PHP サイトを MVC で書き直す必要があるプロジェクトを持っています (私は MVC を初めて使用するので、おそらく codeigniter です)。
現在のサイトでは、データベースにログインしているユーザーのセキュリティ レベルをチェックする一種のフロント コントローラーを使用し、セキュリティ レベルを反映するディレクトリ構造に基づいてページを構築します。
すなわち
ディレクトリ構造:
root
-admin (sees everything and everyone elses subordinates)
-- Reports listing managers, and their users
-- CRUD for managers and their reports
-- CRUD for users and their reports (types listed below)
-manager (has users as subordinates, and can see all data related to them)
-- Reports listing the manager's users
-- CRUD for users and their reports (types listed below)
-user (Can only see their own information)
-- Reports listing the users information (lists, calendars, calls, etc.)
-- CRUD for users reports (types listed above)
データベースユーザーテーブル疑似
1 = admin
2 = manager
3 = user
UserAccountTable
id
pass
user
email
security level (1,2,3)
manager Table
manager ID
User Account ID
other fields containing personal info
user Info Table
user Info id
User Account ID
Manager ID
other fields containing personal info
フロントコントローラー疑似
load header
load menu
determine level from db
if 1 load requested file from admin folder
if 2 load requested file from manager folder
if 3 load requested file from user folder
load footer
主な質問:
現在の設計に固有の問題はありますか? (回答するために現在の構造に関する詳細が必要な場合はお知らせください)
現在のサイトの上記の構造を考えると、MVC 構造で現在のトップダウン タイプのセキュリティ (1 は 2 と 3 を認識、2 は 3 を認識、3 は 3 のみを認識) を使用してセキュリティを再設計するための堅実なアプローチは何でしょうか?データベースへの最小限の変更で可能ですか?
私はコードを探しているわけではありません (誰かがこのようなことを知っていて、理解を深めるために見ることができれば、それは役に立ちます)、プロセスの概念的な理解を求めているのです。