Sha256: a1a81abefdf1b12321dd392ba92da8a8cf311578cb8a2dea2a8fc0449983a2cd

Contents?: true

Size: 687 Bytes

Versions: 82

Compression:

Stored size: 687 Bytes

Contents

require "delegate"

module Ddr
  module Auth
    # Wraps a String
    class Group < SimpleDelegator

      attr_reader :rule

      def initialize(id, opts={}, &rule)
        super(id)
        @label = opts[:label]
        @rule = rule
        freeze
      end

      # @param user [Ddr::Auth::AuthContext]
      def has_member?(auth_context)
        rule ? instance_exec(auth_context, &rule) : auth_context.member_of?(self)
      end

      def id
        __getobj__
      end

      def label
        @label || id
      end

      def agent
        to_s
      end

      def inspect
        "#<#{self.class.name} id=#{id.inspect}, label=#{label.inspect}>"
      end

    end
  end
end

Version data entries

82 entries across 82 versions & 2 rubygems

Version Path
ddr-core-1.17.0 lib/ddr/auth/group.rb
ddr-core-1.16.0 lib/ddr/auth/group.rb
ddr-core-1.15.0 lib/ddr/auth/group.rb
ddr-core-1.14.0 lib/ddr/auth/group.rb
ddr-core-1.13.2 lib/ddr/auth/group.rb
ddr-core-1.13.1 lib/ddr/auth/group.rb
ddr-core-1.13.0 lib/ddr/auth/group.rb
ddr-core-1.12.2 lib/ddr/auth/group.rb
ddr-core-1.12.1 lib/ddr/auth/group.rb
ddr-core-1.12.0 lib/ddr/auth/group.rb
ddr-core-1.11.0 lib/ddr/auth/group.rb
ddr-core-1.10.0 lib/ddr/auth/group.rb
ddr-core-1.9.0 lib/ddr/auth/group.rb
ddr-core-1.8.0 lib/ddr/auth/group.rb
ddr-core-1.7.0 lib/ddr/auth/group.rb
ddr-core-1.6.6 lib/ddr/auth/group.rb
ddr-core-1.6.5 lib/ddr/auth/group.rb
ddr-core-1.6.4 lib/ddr/auth/group.rb
ddr-core-1.6.3 lib/ddr/auth/group.rb
ddr-core-1.6.2 lib/ddr/auth/group.rb