Sha256: ef03f39cbd572a5fcafcd3bb9b28137de7df685d5c72d358dc6eddeabffa6405

Contents?: true

Size: 1.12 KB

Versions: 82

Compression:

Stored size: 1.12 KB

Contents

module Ddr
  module Auth
    module Roles
      #
      # Wraps a set of Roles implemented as an ActiveTriples::Term.
      #
      class PropertyRoleSet < RoleSet

        def grant(*roles)
          if roles.present?
            role_set << coerce(roles)
          end
        end
        
        # @note We have to destroy resources on the ActiveTriples::Term
        #   because Term#delete does not support isomorphism.
        # @see https://github.com/ActiveTriples/ActiveTriples/issues/42
        def revoke(*roles)
          coerce(roles).each do |role|
            if role_index = find_index(role)
              role_set[role_index].destroy
            end
          end
        end

        # @note We have to destroy resources on the
        #   ActiveTriples::Term because Term#delete does not
        #   support isomorphism.
        # @see https://github.com/ActiveTriples/ActiveTriples/issues/42
        def revoke_all
          each(&:destroy)
          self
        end

        def each(&block)
          role_set.map.each(&block)
        end

        def to_set
          map.to_set
        end

      end
    end
  end
end

Version data entries

82 entries across 82 versions & 1 rubygems

Version Path
ddr-models-2.11.0 lib/ddr/auth/roles/property_role_set.rb
ddr-models-2.10.2 lib/ddr/auth/roles/property_role_set.rb
ddr-models-2.10.1 lib/ddr/auth/roles/property_role_set.rb
ddr-models-2.10.0 lib/ddr/auth/roles/property_role_set.rb
ddr-models-2.10.0.rc2 lib/ddr/auth/roles/property_role_set.rb
ddr-models-2.10.0.rc1 lib/ddr/auth/roles/property_role_set.rb
ddr-models-2.9.2 lib/ddr/auth/roles/property_role_set.rb
ddr-models-2.9.1 lib/ddr/auth/roles/property_role_set.rb
ddr-models-2.9.0 lib/ddr/auth/roles/property_role_set.rb
ddr-models-2.9.0.rc1 lib/ddr/auth/roles/property_role_set.rb
ddr-models-2.8.0 lib/ddr/auth/roles/property_role_set.rb
ddr-models-2.8.0.rc1 lib/ddr/auth/roles/property_role_set.rb
ddr-models-2.7.6 lib/ddr/auth/roles/property_role_set.rb
ddr-models-2.7.5 lib/ddr/auth/roles/property_role_set.rb
ddr-models-2.7.4 lib/ddr/auth/roles/property_role_set.rb
ddr-models-2.7.3 lib/ddr/auth/roles/property_role_set.rb
ddr-models-2.7.2 lib/ddr/auth/roles/property_role_set.rb
ddr-models-2.7.1 lib/ddr/auth/roles/property_role_set.rb
ddr-models-2.7.0 lib/ddr/auth/roles/property_role_set.rb
ddr-models-2.7.0.rc1 lib/ddr/auth/roles/property_role_set.rb