0

次のフィールドを持つデータベースがあります。

  • ID
  • ファーストネーム
  • 苗字
  • Eメール
  • 電話
  • 住所
  • メッセージ
  • ...

簡単にするために、ユーザー、スーパー ユーザー、管理者の 3 つのユーザー グループがあるとします。

管理者がさまざまなユーザー グループの視野 (ユーザー グループ A はフィールド X、Y、Z にアクセスできる必要があります) を定義できるような最適な設計 (CodeIgniter に基づく PHP ベースのアプリケーションの開発) を探します。ユーザー自身が、表示するフィールドを (許可されているグループから) 選択できる必要があります。

そして、これはフロントエンドではなくバックエンドで発生するはずです..

ガイダンスはありますか?

よろしく、クリス

4

1 に答える 1

0

おそらく、その問題に対するいくつかのアプローチが見つかるでしょう。それは、要件と、機能がモジュールでどのように公開および配布されるかによって異なります。

私の場合、コントローラーごとにアクセス制御が与えられていたので、コンストラクターでアクセスをチェックできる抽象コントローラーを定義しました。

class User_Controller extends CI_Controller {

    public function __construct() 
    {

        parent::__construct();

        $this->auth->is_logged_in() || RedirectToLogin();
    }
}

class SuperUser_Controller extends User_Controller {

    public function __construct() 
    {

        parent::__construct();

        $this->auth->is_superuser() || RedirectToBadUser();
    }
}

class Admin_Controller extends User_Controller {

    public function __construct() 
    {

        parent::__construct();

        $this->auth->is_admin() || RedirectToBadUser();
    }
}

あなたの仕様に基づいてis_logged_in、is_superuser()、およびis_admin()を解決し、必要なレベルに応じてコントローラーをそれらのいずれかに基づいて作成する必要があります。

$this->auth->is_superuser() || RedirectToBadUser();とにかく、メソッド内に aを追加することを妨げるものは何もなく、必要な粒度が得られます。

于 2013-04-01T09:10:32.003 に答える