Sha256: 1c2ca95509978961da532d47e40fff0e55decf763527cfd5672131249912af5c

Contents?: true

Size: 1.23 KB

Versions: 26

Compression:

Stored size: 1.23 KB

Contents

module Ddr
  module Auth
    class GroupService

      class_attribute :include_role_mapper_groups
      self.include_role_mapper_groups = RoleMapper.role_names.present? rescue false

      def role_mapper_user_groups(user)
        RoleMapper.roles(user) rescue []
      end

      def role_mapper_groups
        RoleMapper.role_names rescue []
      end

      def groups
        default_groups | append_groups
      end

      def user_groups(user)
        default_user_groups(user) | append_user_groups(user)
      end

      def superuser_group
        Ddr::Auth.superuser_group
      end

      def append_groups
        []
      end

      def append_user_groups(user)
        []
      end

      def default_groups
        dg = [Ddr::Auth.everyone_group, Ddr::Auth.authenticated_users_group]
        dg += role_mapper_groups if include_role_mapper_groups
        dg
      end

      def default_user_groups(user)
        dug = [Hydra::AccessControls::AccessRight::PERMISSION_TEXT_VALUE_PUBLIC]
        if user && user.persisted?
          dug << Hydra::AccessControls::AccessRight::PERMISSION_TEXT_VALUE_AUTHENTICATED
          dug += role_mapper_user_groups(user) if include_role_mapper_groups
        end
        dug
      end

    end
  end
end

Version data entries

26 entries across 24 versions & 1 rubygems

Version Path
ddr-models-1.11.8 lib/ddr/auth/group_service.rb
ddr-models-1.12.3 lib/ddr/auth/group_service.rb
ddr-models-1.11.7 lib/ddr/auth/group_service.rb
ddr-models-1.12.2 lib/ddr/auth/group_service.rb
ddr-models-1.11.6 lib/ddr/auth/group_service.rb
ddr-models-1.12.1 lib/ddr/auth/group_service.rb
ddr-models-1.11.5 lib/ddr/auth/group_service.rb
ddr-models-1.12.0 lib/ddr/auth/group_service.rb
ddr-models-1.11.4 lib/ddr/auth/group_service.rb
ddr-models-1.11.3 lib/ddr/auth/group_service.rb
ddr-models-1.11.2 lib/ddr/auth/group_service.rb
ddr-models-1.11.1 lib/ddr/auth/group_service.rb
ddr-models-1.11.0 lib/ddr/auth/group_service.rb
ddr-models-1.10.0 lib/ddr/auth/group_service.rb
ddr-models-1.9.0 lib/ddr/auth/group_service.rb
ddr-models-1.8.1 lib/ddr/auth/group_service.rb
ddr-models-1.8.0 lib/ddr/auth/group_service.rb
ddr-models-1.7.0 lib/ddr/auth/group_service.rb
ddr-models-1.6.0 lib/ddr/auth/group_service.rb
ddr-models-1.5.0 lib/ddr/auth/group_service.rb