問題タブ [pundit]
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 で、Pundit スコープのサブクラスを定義して、ユーザーのタイプに応じて異なる一連の投稿を表示する
こんにちは、私は ruby on rails の初心者で、現在、3 種類のユーザー (管理者、モデレーター、メンバー) がいる演習に取り組んでいます。Devise Gem で Pundit gem を使用しています。ユーザーの役割に応じて投稿にアクセスできるようにするために、Pundit スコープ クラスを定義するように依頼されました。
管理者とモデレーターはすべての投稿を表示できます。サインインしたユーザーは、自分の投稿のみを表示できます。ゲストは投稿を見ることができません。
PostsController は次のとおりです。
そして私の投稿ポリシー:
また、Pundit と Rails での承認を使用したスコープ ポリシーについて読んだり、学習したりできる場所はありますか?
ruby-on-rails - Refile gem でアップロードされたファイルの専門家による承認
Pundit を使用して Refile gem でアップロードされたファイルの認証を行うにはどうすればよいですか? ファイルをアップロードしたユーザーに制限する必要があるファイルをアップロードしましたが、Refile の attachment_url が生成する URL を持つ人は誰でもファイルにアクセスできます。Refile は独自の Sinatra アプリを使用しているため、Pundit の authorize メソッドを呼び出すための Rails コントローラーはありません。
ruby-on-rails - Railsコントローラーアクションでインスタンス変数を読み取ってポリシーを説明するにはどうすればよいですか
コントローラーショーアクション
評論家の方針
Iputs @batch_idのときに nil を取得しています。ポリシーアクションでその値を取得するにはどうすればよいですか
ruby-on-rails - OR を含む複雑な SQL ステートメントを含む Rails スコープ
私は現在、小さなRailsプロジェクトに取り組んでいます。コントローラーのアクションなどの承認に Pundit を使用しています。現在の仕事は、インデックス アクションに Pundit を使用policy_scopeし、コントローラーで Pundit を使用して、ユーザーが表示できるプロジェクトを取得することです。
ユーザーがプロジェクトを表示できるようにする方法は 3 つあります。 - 彼が所有者である - 彼が招待された - プロジェクトが公開されている
現在、いくつかの解決策を試しましたが、最終的には次のようになりました。
これは、「public_or_involved」のようなものを project_policy.rb の次の専門家スコープで動作させる唯一の方法です。
だから私の質問、最後に:
私が今やっているエレガントな方法はありますか? それは醜く、レールのようではありません!
ruby-on-rails-4 - オブジェクトの作成/削除時の専門家の使用法
オブジェクトを作成および更新しています。コントローラーには次のものがあります。
作成を承認する必要があるため、追加しましauthorize @mymodelたが、これが最初に来るはずですか? 問題は、どのパラメータを指定するauthorizeかです。
私はそれをできた
しかし、これは、ポリシーが関連付けられているコントローラー内で Pundit が使用されることになっている方法ではないようです。ここで承認する正しい方法は何ですか? ドキュメントで見逃していたらすみません。
ruby-on-rails - Join を使用した Pundit ポリシー
歌を使う教会があります。
特定の曲IDを使用して、最新の使用日と、ユーザーが所属する教会によって制限された使用の合計を取得しようとしています。
上記のコードは機能しているようですが、Pundit 認証の実装を開始したところ、いくつかの問題が発生しました。私のスコープ ポリシーは非常に単純です。
問題は、結合で実際にどのように使用するかです。これは正しくないようですが、私はちょっと途方に暮れています:
ruby-on-rails - Rails で Pundit を使用して特定のフィールドを編集する権限をユーザーに与える
承認のために Rails アプリで Pundit を実行しています。私はすべてのコツをつかんでいるようですが、編集または更新アクションを特定のフィールドに制限する方法を知りたいです。
たとえば、ユーザーは自分の user.first_name、user.mobile、user.birthday などを編集できますが、user.role を編集することはできません。本質的に私の論理は、ユーザーが表面的なものは何でも編集できるようにすることですが、それが機能している場合は編集できません。
これらのフィールドは、「super_admin」ロール (以下のような方法で user.rb に設定した) を持つユーザーのみが編集できるようにする必要があります。
user_policy.rb更新と編集のアクションがデフォルトである白紙のファイルをほとんど持っています
たぶん、私はこれについて完全に間違っていると考えているので、user.super_admin をラップする必要がありますか? ユーザー表示ページのロール フィールドの周りに if ステートメントがありますが、セキュリティのためにその戦術のみを使用している場合、これは間違っていると感じます。
ruby-on-rails - $ rails g pundit: インストール エラー 'const_get' : 定数名 Admin が間違っていますか? (名前エラー) デフォルト ポリシー ライブラリの生成中に
ROR を初めて使用するチュートリアルで、アプリケーションのデフォルト ポリシー ファイルを生成しようとしていますpundit:install。
$ rails g pundit:install次のエラーが生成されます。
また、次のコマンドで pundit をキャプティライズしようとしました:
$ rails g Pundit:install、しかし、同じエラーが生成されます: