0

そこで、CodeIgniterで最初のプロジェクトを作成していますが、ユーザーが属するユーザーグループに基づいてユーザー制限を強制する効率的な方法があるかどうか疑問に思いました。

このアプリケーションには3つのユーザーグループ(管理者、教師、学生)があり、それぞれに独自の権限があります。これを実装するための最良の方法は何ですか?

現時点では、それをセッション変数に入れて、ほぼすべてのページで読み取っています。これを行うにはもっと簡単な方法が必要だと何かが教えてくれますか?

前もって感謝します。

敬具

グレン

4

3 に答える 3

1

データベース テーブルでグループ ID を使用します。それをセッションに保存します。このグループ ID を使用して承認と認証を確認します。

于 2013-03-01T05:43:03.873 に答える
0

users テーブル内の単純なグループ ID は、あなたのアプリケーションにとっては問題ないように思えます。次に、ナマズが言ったようにして、コントローラーコンストラクターまたは特定のメソッド自体にチェックを入れることができます。

将来、「パーミッション」、「ロール」、「スコープ」などの別のテーブルを実装すると、アプリケーション内できめ細かいパーミッションを作成できるようになります。oauth サーバーのような実装を参照してください ( https://github.com/alexbilbie/CodeIgniter-OAuth-2.0-Server )

function user_get($id)
{
    $this->load->library('oauth_resource_server');
    if ( ! $this->oauth_resource_server->has_scope(array('user.details', 'another.scope')))
    {
        // Error logic here - "access token does not have correct permission to user this API method"
    }

    // API code here
}

これは、実際にアクセス許可を微調整する必要がある場合や、RESTful API を作成するときに、より柔軟なアクセス許可が必要な場合に、より適切になる可能性があります。あなたの現在のケースでは、コンストラクターまたはメソッドの一般的なチェックが行われます。

于 2013-03-01T05:53:15.370 に答える
0

コントローラーのコンストラクターに配置すると、すべてのページで呼び出されますが、使用するすべてのメソッドで呼び出す必要はありません。

于 2013-02-28T22:05:41.010 に答える