2016-11-27 8 views
0

私はちょうど認証と認証と少し混同されています。複数のユーザーの認証と承認

まず、私のプロジェクトについて教えてください。それは2つの主なモデルを持っています:ユーザーと長所。ユーザーはサービスを要求するユーザーです。プロはサービスを提供する人々です。プロには非常に異なる仕事があり、私のプロジェクトには非常に異なる種類のデータが保存されています。 私は、プロ(フォトグラファー、結婚式プランナー..)が保有する様々な種類の仕事に異なるモデルを使用する予定です。これらのモデルは、他のモデルとの関係や「独自の」モデルを持っています(ペーパークリップ付きの画像、ウェブサイトへのリンク...)。

私は私の質問になりまし

(私は心の中で工夫評論家を持っている)私は、認証と認可の両方のための宝石を使用する必要があると思います:

  • 私は考えすべてのユーザーとプロが同じフォームでログインするようにします。 これは非常にデビーズなことだと思います。 Deviseについて少し読んだ後、それぞれのモデルのログインがあるようです。このスレッドでは、Deviseの「グループ」について言及しています
    https://gorails.com/forum/devise-with-multiple-user-models-with-single-login-form 私は単フォームログインの私の問題を確実に解決しますか?

  • 私はそれぞれのProsサブモデルにあらゆるタイプのユーザーやゲストにもレコードのプレビューを表示させたいと思います。しかし、Proにログインすると、より多くの情報(変更可能な人物データ、ユーザーからの価格要求など)を含む拡張プロファイルビューにアクセスすることができます。これはここの上司の仕事だと確認できますか?

答えて

1

Punditは、2番目のポイントを達成するのに最適です。特定のアクション(編集/更新など)を、そのアカウントを所有するProだけが達成できるように制限することができます。あなたは、両方のユーザーのためだけに1つのログインフォームを持つ上に設定されている理由を説明することができ、工夫を使用して複数のユーザモデル認証に関するご質問に関しては

def edit? 
    update? 
end 

def update? 
    record.pro == user 
end 

:ProPolicyでそれらのアクションのためのコードは次のようになりますか?ユーザーが通常のユーザーかプロユーザーかを選択できるログインボタンをドロップダウンすることができます。または、フォームにチェックボックスを選択して、使用するログインのタイプを選択することもできます。

もしそうでなければ、データベースがProまたはUserテーブルのいずれかに存在するかどうか確認する必要があります。しかし、それは同じ電子メールを使ってProとUserの両方のアカウントを持つことができないことを意味します。

+0

あなたは正しい私はプロがユーザーでもあり得るという事実についても考えていませんでした。両方を分けて、プロのための特別なウェルカムページを作ることが間違いなく良いと思います。そして、私はDeviseについてインストールして学んだので、私はPunditにダイビングすることができます! Tks – Maxence