0

現在、以下に簡略化されたビューがあります...

<% if can? :manage, @task %>
  Admin 
<% elsif can? :update, @task %>
  Moderator
<% elsif current_user %>
  User
<% else %>
  Not logged in
<% end %>

このビューには、ユーザーごとに同様の条件でラップされた多数のフィールドがあり、現在、フォーマットを確認するためにテスト アカウントにログインおよびログアウトする必要があります。

管理者としてログインしたいのですが、ページをAdminまたはModeratorまたはUserまたはとしてレンダリングするかどうかを選択するドロップダウンがありますNot logged in

解決策の大まかなアイデアはいくつかありますが、どれに従うべきかわかりません...

  • ナビゲーション バーのドロップダウン フォームから設定できる、ユーザーに関する追加の列を使用して cancan に焼き付けます
  • ユーザー固有のメソッドを作成する
  • URL パラメーターがセッション ビューを要求し、それに応じてレンダリングできるようにする

これに関するベストプラクティスはありますか?

4

1 に答える 1

1

Unixの実際の/効果的なユーザー二分法のようなものを実装した場合はどうでしょうか?

既存のインフラストラクチャは、発生した認証に基づく「実際の」ユーザーですが、「有効なユーザー」を各セッションに関連付けます。

有効なユーザーは、実際のユーザーと同じように開始しますが、別のユーザーに変更できます。有効なユーザーの変更は、管理者権限を持つ実際のユーザーを条件とする必要があります。

すべてのレイアウトを、実際のユーザーではなく、有効なユーザーに条件付けます。「有効なユーザーの変更」ドロップダウンを実際のユーザーに条件付けます。

于 2012-12-15T01:35:03.840 に答える