2012-04-22 6 views
1

ビルド中のアプリに権限を追加しようとしていますが、質問があります。私は:adminカラムを私のUserテーブルに追加し、ブール値として設定しました。私のコントローラでは、私はこのコードを追加しました:私の例ではなく、なぜ認可ライブラリーを使用する方が良いでしょうか?

class ShipsController < ApplicationController 

    def index 
    ships = Ship.all 
    @ships = ships.sort_by { |v| [v[:empire_image], v[:cost]] } 
    if current_user.admin == true 
     respond_to do |format| 
     format.html # index.html.erb 
     format.json { render json: @ships } 
     end 
    else 
     respond_to do |format| 
     format.html { redirect_to root_path } 
     end 
    end 
    end 

私は私の行動のすべてにこれを追加する必要があります、これは間違っていると思われるように見えます。私の質問は、この方法では安全ではない、あるいは自分だけではなく、もっとうまくいくことです。

また、railstutorial.orgの認証を使用しています。cancanのようなライブラリがうまく動作するかどうかは疑問です。お時間を

おかげで、 ニック

答えて

1

は、この方法は安全ではないではない、それは少なくともあなたの行動を承認するためにbefore_filterを使用することを考慮し、ちょうど混乱あなたのコントローラです。たぶん簡単なアプリケーションのためのサードパーティ認証の宝石を使用し

は行き過ぎが、単一の場所に承認規則を動かしているようだ可能性が非常に良いこと(カンカンの場合ability.rbファイル)です。

CanCanをその認証システムで使用することができます。CanCanは、コントローラにcurrent_userメソッドが存在すると予想します。

+1

ありがとうAldo、感謝の意を表します。私はcancanと一緒に行ってしまい、驚くほど簡単に働くことができました。 –

+0

あなたは大歓迎です! CanCanを使用することの本当に良い点はドキュメントです。何か問題が見つかったら、それを読むことをお勧めします。ところで、宝石はかなりフレキシブルに見えますが、最初はこの力を使っていないでしょうが、それは後で便利かもしれません。 –

関連する問題