0

ロールの配列を持つ単純な Rails ユーザー モデルを持っている場合、そのロールのモデルのロール属性をチェックし、それに応じてブロック/続行するだけで、アクションへのアクセスを制御するだけで十分ですか?

予想外の複雑さのために活用すべき高度なシステムはありますか?

重要:モデルに対してユーザー/ロールを承認するつもりはありません (CanCan については既に認識しています)。機能をより詳細に分析できるように、コントローラーレベルでセキュリティを行うことを検討しています。

さらに重要なこと:まじめな話、私は必ずしも CanCan について尋ねているわけではありません。質問をよく読んで注意してください! :)

4

1 に答える 1

1

質問1:はい、質問2:いいえ。

私はこれをシンプルに保ちます

コントローラのmodels属性を確認すると、コントローラはこの属性が設定されていないすべてのユーザーを制限します。

元:

def create
  @user.find(params[:user_id]) 
  if @user.admin?
  @post.new(params[:post]) 
  @post.create!
  end
end

ユーザーモデルでメソッドを作成する

def admin?
  role == "Admin"
end

これよりも優れたコードを作成する必要があります。コントローラ内の多くのロジックに、しかしこれは管理者を除いてすべてを締め出します。

于 2012-11-26T11:53:21.180 に答える