Class: ActiveadminMcp::Authorization
- Inherits:
-
Object
- Object
- ActiveadminMcp::Authorization
- Defined in:
- lib/activeadmin_mcp/authorization.rb
Overview
Applies a resource's ActiveAdmin authorization adapter to MCP tool calls, so reads, listings and writes obey the same rules as the admin UI.
ActiveAdmin's default adapter authorizes every action and returns collections
unchanged, so applications without an authorization adapter are unaffected.
Applications that configure one (CanCanCan via cancan_ability_class, Pundit,
a custom adapter, ...) get their policy enforced on every path.
Constant Summary collapse
- READ =
:read
Class Method Summary collapse
Instance Method Summary collapse
- #authorized?(action, subject) ⇒ Boolean
-
#initialize(adapter) ⇒ Authorization
constructor
A new instance of Authorization.
- #scope_collection(collection, action = READ) ⇒ Object
Constructor Details
#initialize(adapter) ⇒ Authorization
Returns a new instance of Authorization.
20 21 22 |
# File 'lib/activeadmin_mcp/authorization.rb', line 20 def initialize(adapter) @adapter = adapter end |
Class Method Details
.for(config, current_user) ⇒ Object
14 15 16 17 18 |
# File 'lib/activeadmin_mcp/authorization.rb', line 14 def self.for(config, current_user) adapter_class = config.namespace. adapter_class = adapter_class.constantize if adapter_class.is_a?(String) new(adapter_class.new(config, current_user)) end |
Instance Method Details
#authorized?(action, subject) ⇒ Boolean
24 25 26 |
# File 'lib/activeadmin_mcp/authorization.rb', line 24 def (action, subject) @adapter.(action, subject) end |
#scope_collection(collection, action = READ) ⇒ Object
28 29 30 |
# File 'lib/activeadmin_mcp/authorization.rb', line 28 def scope_collection(collection, action = READ) @adapter.scope_collection(collection, action) end |