問題タブ [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.

0 投票する
2 に答える
843 参照

ruby-on-rails-4 - CanCanCan は、指定したようなフラッシュ メッセージではなく、例外で通常の Rails エラーをスローします。

CanCanCan、Devise、Rolifyを使っています。

ApplicationControllerはこのように見えます:

routes.rbはこのように見えます:

これはability.rb関連する私のものです:

としてログインしているときに:memberにアクセスしようとすると/newsroom、次のエラーが表示されます。

にリダイレクトされるのではなく、私が期待root_urlしていたようなものです。:alert

ここで何が起こっているのかわかりません。

編集 1

価値があるのは、これを my に追加した場合にのみ取得できますNewsroomController:

0 投票する
3 に答える
4743 参照

ruby-on-rails - カンカンカンの使い方は?

Rails アプリでユーザーに権限を付与したいと考えています。すべての投稿とコメントを作成、更新、および削除できる「管理者」、自分のコメントのみを作成および更新できる「ユーザー」、およびこれらのいずれも実行できない「ゲスト」がいます。このために、gem 'devise' と 'cancancan' を使用します。「devise」gem は理解できますが、「cancancan」は理解できません。

クラスability.rbで、これらのユーザー(管理者、ユーザー、ゲスト)の権限をどのように記述できますか?

0 投票する
0 に答える
696 参照

ruby-on-rails-4 - cancancan gem パラメータを能力に渡す

アプリケーションで cancancan と activeadmin の gem を使用しています。

controller.rb

アビリティ.rb

上記のコードが機能しません。これを達成する方法。

0 投票する
1 に答える
875 参照

ruby-on-rails - load_and_authorize_resource null cancancan

cancancan を使用してリソースを読み込もうとしていますが、null が返され続け、その理由がわかりません。誰かが私のエラーを指摘できますか? Railsコンソールでデバッグを試みて、関連付け条件が場合によってはtrueを返すようにしました。私のテストケースでは、すべての文字(2)がユーザーに属しています。

これがコードです

api/v1/characters_controller.rb

models/ability.rb

応答

0 投票する
0 に答える
481 参照

ruby-on-rails - Cancancan のネストされたリソース ルート

という名前のコントローラーを取得しましたFileRecord。2 つの異なるパスからアクセスできます。

ロール管理者を持つユーザーから

一般ユーザーから

管理者から共通ユーザーのルートへのアクセスをブロックする方法はありますか?また、その逆の方法はありますか?

ありがとう

0 投票する
4 に答える
9321 参照

ruby-on-rails - CanCanCan 権限を正しく設定するにはどうすればよいですか?

CanCanCan を適切に構成する方法について少し混乱しています。

手始めに、load_and_authorize_resourceアクセスを制限したいすべてのコントローラ リソースに追加する必要がありますか?

これは私がやりたいことです:

  • 管理者は、すべてのコントローラーとアクションを管理およびアクセスできます
  • 編集者は、ニュースルームのすべてを読み取り、管理し、すべての投稿を管理できます
  • メンバーはすべての投稿を読むことができ、投稿を作成および更新できます (編集/削除/その他ではありません)。ニュースルームにはアクセスできません。ビジネス ルールの更新と編集の投稿の違いは、更新は現在の投稿の子投稿である新しい投稿を作成することです。なので、編集ではありません。祖先協会とのちょうど新しい記録。
  • ゲストはすべての投稿を読むことができますが、投稿を作成したりニュースルームにアクセスしたりすることはできません。

これは私ability.rbのように見えるものです:

routes.rbはこれを持っています:

ただし、役割が割り当てられていないユーザー (つまり、「ゲスト」になりたいもの) でログインすると、ニュースルームにアクセスできます。

の役割で投稿を編集しようとすると:member、「投稿を編集する権限がありません」というエラーが表示されます (これは正しいです)。

を完全にロックダウンできず、そのNewsroom理由がわかりません。

0 投票する
1 に答える
352 参照

ruby-on-rails - CanCanCan を使用して複雑な能力を定義する

私のデータモデルでは:

Company has_many offices

Employee has_many offices, through: :employee_office(これは、会社の管理者が特定のオフィスの従業員に許可を与え、他のオフィスには許可しない方法です)

Office has_many appointmentsAppointment belongs_to office

での作品が で作成された場合にのみ でアクションを実行CanCanCanできるようにする機能を定義したいと思います。EmployeeAppointmentEmployeeOfficeAppointment

この疑似コードのようなもの:

Employee can :manage Appointment, Employee.offices.include?(Appointment.office)

これは私がこれまでに持っているものです:

ありがとう!

0 投票する
1 に答える
644 参照

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