Class: Decidim::ActionAuthorizer
- Inherits:
 - 
      Object
      
        
- Object
 - Decidim::ActionAuthorizer
 
 
- Defined in:
 - app/services/decidim/action_authorizer.rb
 
Overview
This class is used to authorize a user against an action in the context of a component.
Defined Under Namespace
Classes: AuthorizationError, AuthorizationStatus, AuthorizationStatusCollection
Instance Method Summary collapse
- 
  
    
      #authorize  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Authorize user to perform an action in the context of a component.
 - 
  
    
      #initialize(user, action, component, resource)  ⇒ ActionAuthorizer 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    
Initializes the ActionAuthorizer.
 
Constructor Details
#initialize(user, action, component, resource) ⇒ ActionAuthorizer
Initializes the ActionAuthorizer.
user - The user to authorize against. action - The action to authenticate. component - The component to authenticate against. resource - The resource to authenticate against. Can be nil.
      15 16 17 18 19 20  | 
    
      # File 'app/services/decidim/action_authorizer.rb', line 15 def initialize(user, action, component, resource) @user = user @action = action.to_s if action @component = resource.try(:component) || component @resource = resource end  | 
  
Instance Method Details
#authorize ⇒ Object
Authorize user to perform an action in the context of a component.
Returns:
:ok an empty hash                      - When there is no authorization handler related to the action.
result of authorization handler check  - When there is an authorization handler related to the action. Check Decidim::Verifications::DefaultActionAuthorizer class docs.
  
      29 30 31 32 33  | 
    
      # File 'app/services/decidim/action_authorizer.rb', line 29 def raise AuthorizationError, "Missing data" unless component && action AuthorizationStatusCollection.new(, user, component, resource) end  |