2010-11-19 12 views
0

ruby​​ on railsアプリケーションでレベルベースのアクセス制御を実装したいと思います。 同様に、下位レベルのユーザーは親のデータにアクセスできません。 例Ruby on railsのレベルベースのアクセス制御

 
    Main Admin 
    | 
    |___ Sub Admin1 
    |  | 
    |  | 
    |  |___ SA1_USER1 
    |  | 
    |  |___ SA1_USER2 
    | 
    | 
    | 
    |___ Sub Admin2 
     | 
     |___ SA2_USER1 
     |  |  
     |  |__End_user1 
     |  |__End_user2 
     | 
     |___ SA2_USER2 

上記の構造では、すべてのユーザーがレコードを作成できます。しかし、レコードは階層に従って表示されます。 メイン管理者と同様に、すべてのレコードにアクセスすることができます。サブ管理者1は、SA1_user1とsa1_user2などで作成されたレコードにアクセスできます。

これを実装するにはプラグインがありますか?

ありがとう、 PraWin。

答えて

1

プラグインはわかりませんが、自分で書くのはそれほど難しくありません。あなたは、作成した各レコードにowner_idをアクセスさせ、各ユーザーに親ユーザーがいれば、user.is_ancestor_ofのモデルメソッドを記述するだけです。ユーザーがレコードにアクセスしようとするたびにチェックするrecord.owner。

+0

はい、私はこれを私の心に持っています。ノードのすべての祖先とノードのすべての子孫を返すメソッドはありますか? – Pravin

+0

私が知っているもののようなものは何もありません。最初から書く必要があります。うまくいけば、他の誰かがもっと情報を持っています。 – re5et

+0

これを実装するために使用した素敵なプラグイン* ancestry *があります。 – Pravin