Sha256: 07f5eaca9afd79d1ba4b37cef68f2403d3c2f84f68e8972762883d68f49a84af

Contents?: true

Size: 1009 Bytes

Versions: 2

Compression:

Stored size: 1009 Bytes

Contents

module DulHydra
  module Services
    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?(DulHydra.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[DulHydra.remote_groups_env_key].split(DulHydra.remote_groups_env_value_delim)
        # munge values to proper Grouper group names, if necessary
        groups = groups.collect { |g| g.sub(*DulHydra.remote_groups_env_value_sub) } if DulHydra.remote_groups_env_value_sub
        # filter group list as configured
        groups = groups.select { |g| g =~ /^#{DulHydra.remote_groups_name_filter}/ } if DulHydra.remote_groups_name_filter
        groups
      end

    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ddr-models-1.3.0 lib/ddr/auth/remote_group_service.rb~
ddr-models-1.2.0 lib/ddr/auth/remote_group_service.rb~