Module: Placet::Rails::Controller
- Extended by:
- ActiveSupport::Concern
- Defined in:
- lib/placet/rails/controller.rb
Overview
コントローラ統合(PEP ヘルパー。docs/rails-usage.md Section 4)
class ApplicationController < ActionController::Base
include Placet::Rails::Controller
placet_verify!
end
class PostsController < ApplicationController
before_action :set_post, only: %i[update destroy]
placet_resource Post
placet_permit "post:publish", only: :publish, resource: -> { @post }
end
Instance Method Summary collapse
-
#placet_permit?(actions, resource = nil) ⇒ Boolean
表示制御用。enforcement にはカウントされない.
-
#placet_recheck(records, action: nil) ⇒ Object
二段構えの再チェック(docs/rails-usage.md Section 6)。scope で絞った結果 (通常は 1 ページ分)へ個体判定を再適用し、check / scope の乖離があっても 見えてはいけないレコードを返さない。action 省略時は scope 宣言から引き継ぐ.
-
#placet_scope(model = nil) ⇒ Object
via: :scope の宣言から合成済みコレクション(AR なら Relation)を返す.
-
#placet_user ⇒ Object
アプリ側で上書き可能。既定は current_user.
Instance Method Details
#placet_permit?(actions, resource = nil) ⇒ Boolean
表示制御用。enforcement にはカウントされない
112 |
# File 'lib/placet/rails/controller.rb', line 112 def placet_permit?(actions, resource = nil) = Placet.permit?(placet_user, actions, resource) |
#placet_recheck(records, action: nil) ⇒ Object
二段構えの再チェック(docs/rails-usage.md Section 6)。scope で絞った結果 (通常は 1 ページ分)へ個体判定を再適用し、check / scope の乖離があっても 見えてはいけないレコードを返さない。action 省略時は scope 宣言から引き継ぐ
117 118 119 120 |
# File 'lib/placet/rails/controller.rb', line 117 def placet_recheck(records, action: nil) action ||= placet_scope_declaration![:actions].first Placet.recheck(placet_user, action, records) end |
#placet_scope(model = nil) ⇒ Object
via: :scope の宣言から合成済みコレクション(AR なら Relation)を返す
105 106 107 108 109 |
# File 'lib/placet/rails/controller.rb', line 105 def placet_scope(model = nil) declaration = placet_scope_declaration! target = model || declaration[:model] || declaration[:model_name].constantize Placet.scoped(placet_user, declaration[:actions].first, model: target) end |
#placet_user ⇒ Object
アプリ側で上書き可能。既定は current_user
102 |
# File 'lib/placet/rails/controller.rb', line 102 def placet_user = current_user |