2016-08-03 3 views
2

私は1週間以来bigsの尋問を持っています。(コメントなどの基本機能、addfavorite ...と)Ruby on Railsの権限ベースまたはロールベースの権限を開始する。

  1. 管理
  2. エディタ(書き込みや データベースに作成するために、管理者の検証を必要とする)
  3. シンプルなユーザー: 私は3貴様のユーザーのタイプを持っていますちょうど私の貴様を行うための最善のpraticeである何のためにそう

    を宝石の工夫をインストールする(そしてそれは魔法だ)瞬間IDの

異なる権限を持つユーザーですか? 単純なブール値(ユーザー、管理者、編集者)? たとえば、user_idを持つエディタの特定の投稿に属性を付ける必要がありますか? これを行うのに役立つ宝石をご存知ですか? DBに注入する管理者検証システムを実行することは可能でしょうか? エディタ投稿の保留中のリストはどのように作成できますか?

確かにnoobの質問がたくさんですが、uは私を助けることができるので、もしイムは、この時点で失わ

おかげ

+0

あなたが必要とするのは、cancancan gemです:https://github.com/CanCanCommunity/cancancan – Shaunak

+0

また、あなたがレールの初心者であれば、それがどのように動作するのか理解せずに "devise magic"を使用しないことをお勧めします。 http://railscasts.com/episodes/250-authentication-from-scratch – Shaunak

+0

@Shaunak私はこの宝石を見ていきます。ありがとう:) – nicolaswecandoit

答えて

2

を:)してください、これはコード例のない一般的な質問ですので、私はつもりですこの問題の解決を開始する際の一般的なアプローチを示唆しています。

github.com/CanCanCommunity/cancancan:あなたが必要なもの

はcancancan逸品です。

この宝石は、レールフレームワークで簡単に使用できる「認可」フレームワークと機能を提供します。

オリジナルのgem cancanもRyan Batesによって書かれました。ここではそれを説明する素晴らしいビデオだ:あなたはレールの初心者であれば

railscasts.com/episodes/192-authorization-with-cancan

また、私はそれがどのように機能するかを理解せずに「魔法の工夫」を使用しないことをお勧め。良いスタートはここに非常に単純ライアンベイツで説明したように、ゼロからの認証を試してみることです。

railscasts.com/episodes/250-authentication-from-scratch

それは容易に理解cancancanを行います。

1

私はcancanが頭痛のビットであることがわかり、多形性の関連付けを使用することを好みます。

ユーザーは

  1. 管理者の "プロファイル" を使用してトップレベルのモデルである
  2. エディタ
  3. シンプルなユーザー

"PROFILE_ID" と "と呼ばれるフィールドを含むことができ、ユーザーモデルprofile_type "

たとえば、

class User < ActiveRecord::Base 
    belongs_to :profile, polymorphic: true 
end 

class Admin < ActiveRecord::Base 
    has_one :user, as: :profile, dependent: :destroy 
end 

これは、異なる「プロファイル」に異なるデータベースフィールドがある場合にもうまく機能します。単一テーブル継承を使用することもできます。

編集:ユーザーモデルでは

def admin? 
    self.profile_type.downcase == "admin" 
end 

その後、あなたはヘルパーcurrent_user.adminを使用できますか?

他のタイプについても同じことができます。

+0

偉大な、私はこのメソッドでいくつかの記事を読む!編集者にid関連付けなしの特定の投稿のみを編集させることはできますか?私はデータベースに6000のエントリを持っているので、すべてのエントリは1人の特定のユーザのためのものです。 open.dataからのデータ例:編集者1は投稿1を変更できます。編集者2は投稿2を変更できますが、1は変更できません。手動での割り当てをしたくない... – nicolaswecandoit

+0

あなたのモデルにヘルパーを追加できます。私はすぐに私の現在の答えを編集します。 – sump

関連する問題