Sha256: 078f943fa99097e90e1db797085277f8d452d5d98f610e178b4e311a360f087a

Contents?: true

Size: 1007 Bytes

Versions: 21

Compression:

Stored size: 1007 Bytes

Contents

module Ddr
  module Auth
    class RemoteGroupService < GroupService

      attr_reader :env

      def initialize(env = nil)
        @env = env
      end

      def append_groups
        GrouperService.repository_group_names
      end

      def append_user_groups(user)
        if env && env.key?(Ddr::Auth.remote_groups_env_key)
          remote_groups
        else
          GrouperService.user_group_names(user)
        end
      end

      def remote_groups
        # get the raw list of values
        groups = env[Ddr::Auth.remote_groups_env_key].split(Ddr::Auth.remote_groups_env_value_delim)
        # munge values to proper Grouper group names, if necessary
        groups = groups.collect { |g| g.sub(*Ddr::Auth.remote_groups_env_value_sub) } if Ddr::Auth.remote_groups_env_value_sub
        # filter group list as configured
        groups = groups.select { |g| g =~ /^#{Ddr::Auth.remote_groups_name_filter}/ } if Ddr::Auth.remote_groups_name_filter
        groups
      end

    end
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
ddr-models-1.12.2 lib/ddr/auth/remote_group_service.rb
ddr-models-1.11.6 lib/ddr/auth/remote_group_service.rb
ddr-models-1.12.1 lib/ddr/auth/remote_group_service.rb
ddr-models-1.11.5 lib/ddr/auth/remote_group_service.rb
ddr-models-1.12.0 lib/ddr/auth/remote_group_service.rb
ddr-models-1.11.4 lib/ddr/auth/remote_group_service.rb
ddr-models-1.11.3 lib/ddr/auth/remote_group_service.rb
ddr-models-1.11.2 lib/ddr/auth/remote_group_service.rb
ddr-models-1.11.1 lib/ddr/auth/remote_group_service.rb
ddr-models-1.11.0 lib/ddr/auth/remote_group_service.rb
ddr-models-1.10.0 lib/ddr/auth/remote_group_service.rb
ddr-models-1.9.0 lib/ddr/auth/remote_group_service.rb
ddr-models-1.8.1 lib/ddr/auth/remote_group_service.rb
ddr-models-1.8.0 lib/ddr/auth/remote_group_service.rb
ddr-models-1.7.0 lib/ddr/auth/remote_group_service.rb
ddr-models-1.6.0 lib/ddr/auth/remote_group_service.rb
ddr-models-1.5.0 lib/ddr/auth/remote_group_service.rb
ddr-models-1.4.0 lib/ddr/auth/remote_group_service.rb
ddr-models-1.3.0 lib/ddr/auth/remote_group_service.rb
ddr-models-1.2.1 lib/ddr/auth/remote_group_service.rb