module Maybee::AuthorizationObject::ClassMethods
Public Instance Methods
allows(*args)
click to toggle source
# File lib/maybee/authorization_object.rb, line 19 def allows(*args) options = args.extract_options! accesses = Array(options.delete(:to)) raise ArgumentError, "No accesses given" if accesses.empty? exclusive = options.delete(:exclusive) subject_classes = args.map { |name| name.is_a?(Symbol) ? name.to_s.classify.constantize : name.constantize } additional_authorizations = accesses.inject({}) { |hsh, access| hsh[access] = [Authorization.new(access, subject_classes, options)]; hsh } self.authorizations = authorizations.merge(additional_authorizations) { |access, previous_auths, new_auths| exclusive ? new_auths : previous_auths + new_auths } end
allows_crud(options = {})
click to toggle source
# File lib/maybee/authorization_object.rb, line 34 def allows_crud(options = {}) allows_to :create, :update, :destroy, options.reverse_merge(allow_nil: true) end
allows_to(*accesses)
click to toggle source
# File lib/maybee/authorization_object.rb, line 29 def allows_to(*accesses) options = accesses.extract_options! allows options.merge(:to => accesses) end