問題タブ [cancancan]
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-4 - CanCanCan は、指定したようなフラッシュ メッセージではなく、例外で通常の Rails エラーをスローします。
CanCanCan、Devise、Rolifyを使っています。
私ApplicationController
はこのように見えます:
私routes.rb
はこのように見えます:
これはability.rb
関連する私のものです:
としてログインしているときに:member
にアクセスしようとすると/newsroom
、次のエラーが表示されます。
にリダイレクトされるのではなく、私が期待root_url
していたようなものです。:alert
ここで何が起こっているのかわかりません。
編集 1
価値があるのは、これを my に追加した場合にのみ取得できますNewsroomController
:
ruby-on-rails - カンカンカンの使い方は?
Rails アプリでユーザーに権限を付与したいと考えています。すべての投稿とコメントを作成、更新、および削除できる「管理者」、自分のコメントのみを作成および更新できる「ユーザー」、およびこれらのいずれも実行できない「ゲスト」がいます。このために、gem 'devise' と 'cancancan' を使用します。「devise」gem は理解できますが、「cancancan」は理解できません。
クラスability.rbで、これらのユーザー(管理者、ユーザー、ゲスト)の権限をどのように記述できますか?
ruby-on-rails-4 - cancancan gem パラメータを能力に渡す
アプリケーションで cancancan と activeadmin の gem を使用しています。
controller.rb
アビリティ.rb
上記のコードが機能しません。これを達成する方法。
ruby-on-rails - load_and_authorize_resource null cancancan
cancancan を使用してリソースを読み込もうとしていますが、null が返され続け、その理由がわかりません。誰かが私のエラーを指摘できますか? Railsコンソールでデバッグを試みて、関連付け条件が場合によってはtrueを返すようにしました。私のテストケースでは、すべての文字(2)がユーザーに属しています。
これがコードです
api/v1/characters_controller.rb
models/ability.rb
応答
ruby-on-rails - Cancancan のネストされたリソース ルート
という名前のコントローラーを取得しましたFileRecord
。2 つの異なるパスからアクセスできます。
ロール管理者を持つユーザーから
一般ユーザーから
管理者から共通ユーザーのルートへのアクセスをブロックする方法はありますか?また、その逆の方法はありますか?
ありがとう
ruby-on-rails - CanCanCan 権限を正しく設定するにはどうすればよいですか?
CanCanCan を適切に構成する方法について少し混乱しています。
手始めに、load_and_authorize_resource
アクセスを制限したいすべてのコントローラ リソースに追加する必要がありますか?
これは私がやりたいことです:
- 管理者は、すべてのコントローラーとアクションを管理およびアクセスできます
- 編集者は、ニュースルームのすべてを読み取り、管理し、すべての投稿を管理できます
- メンバーはすべての投稿を読むことができ、投稿を作成および更新できます (編集/削除/その他ではありません)。ニュースルームにはアクセスできません。ビジネス ルールの更新と編集の投稿の違いは、更新は現在の投稿の子投稿である新しい投稿を作成することです。なので、編集ではありません。祖先協会とのちょうど新しい記録。
- ゲストはすべての投稿を読むことができますが、投稿を作成したりニュースルームにアクセスしたりすることはできません。
これは私ability.rb
のように見えるものです:
私routes.rb
はこれを持っています:
ただし、役割が割り当てられていないユーザー (つまり、「ゲスト」になりたいもの) でログインすると、ニュースルームにアクセスできます。
の役割で投稿を編集しようとすると:member
、「投稿を編集する権限がありません」というエラーが表示されます (これは正しいです)。
を完全にロックダウンできず、そのNewsroom
理由がわかりません。
ruby-on-rails - CanCanCan を使用して複雑な能力を定義する
私のデータモデルでは:
Company has_many offices
Employee has_many offices, through: :employee_office
(これは、会社の管理者が特定のオフィスの従業員に許可を与え、他のオフィスには許可しない方法です)
Office has_many appointments
と
Appointment belongs_to office
での作品が で作成された場合にのみ でアクションを実行CanCanCan
できるようにする機能を定義したいと思います。Employee
Appointment
Employee
Office
Appointment
この疑似コードのようなもの:
Employee
can :manage Appointment, Employee.offices.include?(Appointment.office)
これは私がこれまでに持っているものです:
ありがとう!
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