問題タブ [rolify]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - Rails権限の明らかな矛盾
gems オーソリティと roify を使用して、一連のサブジェクトに対するユーザー権限を管理しています。各サブジェクトは、ユーザーが:admin
そのサブジェクトのロールを持っている場合にのみ表示できます。ビュー内のコード:
オーソライザーのコード:
私の問題は、ADMIN 部分は表示されますが、ページの残りの部分は表示されないことです。ただし、2 つの if 条件の真偽値は同じでなければなりません。誰でも間違いを見つけることができますか?
ruby-on-rails-4 - CanCanCan は、指定したようなフラッシュ メッセージではなく、例外で通常の Rails エラーをスローします。
CanCanCan、Devise、Rolifyを使っています。
私ApplicationController
はこのように見えます:
私routes.rb
はこのように見えます:
これはability.rb
関連する私のものです:
としてログインしているときに:member
にアクセスしようとすると/newsroom
、次のエラーが表示されます。
にリダイレクトされるのではなく、私が期待root_url
していたようなものです。:alert
ここで何が起こっているのかわかりません。
編集 1
価値があるのは、これを my に追加した場合にのみ取得できますNewsroomController
:
ruby-on-rails - Ruby/Rails - 私のユーザーモデルの「イベント」メソッドはそんなに悪い考えですか?
私は、ユーザーが 1 つ以上のイベントに参加するアプリケーションを開発しているため、それらのイベント内でユーザーが占める役割に基づいてイベントを「持っている」と言えます。Rolify を使用して、ユーザーとイベントを関連付けています。Rolify は、ユーザーがそのイベント内で果たす役割に基づいて、ユーザーとイベントの間の関連付けを形成します。Rolify は、ユーザーの役割に関するデータを返すことに関心がありますが、ユーザーがその役割を持つイベントについては気にしないため、イベントに関するデータ (ID を除く) は返しません。
したがって、次のようなメソッドを書くことができます。
ユーザーに関連付けられているすべてのロールを取得します。
そのようなロールの 1 つが次のようになります。
言えるようになりたいのは
roleName に関連付けられたすべてのイベントを取得します。
明らかに、Rolify を介して利用できるものだけを考えると、これを行うことはできません。そのため、ユーザー モデルに役立つメソッドを作成しました。
私の懸念はそれです
- この方法は、何らかの形で単一責任の原則に違反しています。
- このメソッドでは、最終的にイベントを取得するために複数のデータベース呼び出しが必要です。1 つはロールに対して、もう 1 つはイベントに対してです。(私はこの種のことに不慣れなので、実際にどれほど悪いかはわかりません。)
Rolify ロールのセットアップを維持しながら、ユーザーのイベントを取得するためのより良い方法はありますか?
ruby-on-rails-4 - Rolify と Rails 4 のロール管理
Rails 4 アプリにロール ベースのアクセス システムを実装しようとしています。エンド ユーザー (super_admin) が UI を介してロールの割り当てを編集できるようにしたいと考えています。
私はある程度の成功を収めましたが、もっと良い方法が必要だと感じずにはいられません (私はレールに慣れていないため)。これが私のコードです:
そして私のフォーム(HAMLとsimple_form)で:
私は次のことに苦労しています:
- モデルがないため、フォーム エントリを検証するにはどうすればよいですか?
- 強力なパラメーターを使用する必要がありますか? その場合、モデルを使用せずにフォームに実装するにはどうすればよいですか?
- 似たようなものを作成するにはどうすればよいですか?ただし、現在の役割が既にチェックされていますか? (真の役割管理)
更新 コメントで示唆されているように、reform Gem の使用を検討しました。これは素晴らしい解決策のようです。ただし、この場合の実装には問題があります。
マップを作成しましょう: データベースに 3 つのテーブルがあります。
- ユーザー
- users_roles (2 つの属性を持つマッピング テーブル: user_id & role_id {Join Table -> HABTM})
- 役割
Roles モデルのすべての値をチェックボックスとして使用してフォームを作成したいと考えています。チェックボックスは、users_roles テーブルに入力される値を指定する必要があります (特定のユーザーに関連して)。私が改革に望んでいるのは、このフォームの入力を検証することです。このフォームには常に役割のすべての値が表示されますが、一部またはすべてのボックスがオフになっている場合があります。
アプリにフォーム フォルダーを作成し、次のコードから始めました。
私は正しい方向に進んでいますか?
助けてくれてありがとう。
ruby-on-rails - cancan 機能 : rolify ロール create_user を持つサイト管理者が新しいデバイス ユーザーを作成またはサインアップできるようにします
アプリケーションについては、cancan/cancancan、devise、および rolify を使用して、job_code スタイルのアクセスを実装しようとしています。
job_code :create_user を持つサイト管理者のみが新しいユーザーを作成できます
コードは次のとおりです。
routes.rb には、
アプリケーションコントローラー
私が使用すると、次のコードが capabilities.rb に
それは完璧に動作します。User sign_up ページに移動します
しかし、私がこのコードを持っているとき
アクセスが拒否されました(403ページ)と表示されます
ユーザーの代わりに何を使用すればよいかを理解するのに苦労していますcan :create, User
ruby-on-rails - ActiveRecord::RecordInvalid: 検証に失敗しました: リソース タイプがリストに含まれていません
ユーザーロールを追加するためにrolify gemを使用しています。Rails コンソールからロールを追加しようとすると、この問題が発生します。この問題に直面した人はいますか?
エラーリスト ===
Rolify 移行ファイル ============
ここから rolify をインストールするためのドキュメントに従いました == https://github.com/RolifyCommunity/rolify
ruby-on-rails - 役割のないユーザーのスコープを作成する (roify)
User
モデルの写真を表示するのに問題があります。
rifyで役割が割り当てられていないユーザーからの写真のみを表示したい。
そのため、クエリを作成する必要があります。
スコープが動かない…
誰か試してみませんか?
ありがとう!
ruby-on-rails - 動的パーミッション rubygem?
動的アクセス許可を実装するためのフレームワークまたは一般的なパターンはありますか?
Rolify のようなものですが、サーバーを再起動する必要はありません。
役割を持つ各ユーザーを繰り返し処理し、権限を追加/削除することもできると思いますが、それはやり過ぎのようです。
ruby-on-rails - How to check rolify with a helper in rails?
I want to make some helpers for my rolify methods.
So, I've created the following:
Users helper
module UsersHelper
Now, in my view, how do I use them? Which is the better way?
ruby-on-rails - Rolify で特定のリソース インスタンスのすべてのロールを検索する
Rolify で特定のリソース インスタンスのすべてのロールを見つけるにはどうすればよいですか? ドキュメントは次のことを示唆しています。
Forum
しかし、特定のインスタンスが必要な場合はどうすればよいでしょうか? Forum.first.find_roles
動作しません。別の方法はありますか?Location
これは私が代わりに試したものですForum
: