Module: Garage::Authorizable

Included in:
Docs::Document, Meta::RemoteService, MetaResource
Defined in:
lib/garage/authorizable.rb

Instance Method Summary collapse

Instance Method Details

#authorize!(subject, action) ⇒ Object



22
23
24
# File 'lib/garage/authorizable.rb', line 22

def authorize!(subject, action)
  effective_permissions(subject).authorize!(action)
end

#build_permissions(perms, subject) ⇒ Object

Raises:

  • (NotImplementedError)


12
13
14
# File 'lib/garage/authorizable.rb', line 12

def build_permissions(perms, subject)
  raise NotImplementedError, "#{self.class}#build_permissions must be implemented"
end

#effective_permissions(subject) ⇒ Object



16
17
18
19
20
# File 'lib/garage/authorizable.rb', line 16

def effective_permissions(subject)
  Garage::Permissions.new(subject, resource_class).tap do |perms|
    build_permissions(perms, subject)
  end
end