Sha256: 8ad6b710ac70ac6c8cb20bdaeac73af26bd7c197a4450468ff1eab60b35710a2

Contents?: true

Size: 963 Bytes

Versions: 28

Compression:

Stored size: 963 Bytes

Contents

require_dependency 'egov_utils/auth_source'
module EgovUtils
  class Group < Principal

    has_and_belongs_to_many :users

    validates :name, presence: true, uniqueness: true
    validates :ldap_uid, uniqueness: true, allow_nil: true

    def self.organizations_by_domains(domains)
      EgovUtils::Organization.where(domain: domains)
    end

    def allow_member_assign?
      provider.nil?
    end

    def members
      if ldap?
        EgovUtils::User.where(login: ldap_members.collect{|m| m[:login] })
      else
        users
      end
    end

    def ldap_members
      if provider.present?
        auth_source.group_members(ldap_dn)
      else
        []
      end
    end

    def ldap_member?(user)
      ldap_members.detect{|mem| mem[:login] == user.login }
    end

    def external_uid
      super || ( ldap? && ldap_uid && auth_source.send(:get_group_dn, sid: ldap_uid) )
    end

    def ldap_dn
      ldap? && external_uid
    end

  end
end

Version data entries

28 entries across 28 versions & 1 rubygems

Version Path
egov_utils-1.5.0.alpha16 app/models/egov_utils/group.rb
egov_utils-1.5.0.alpha15 app/models/egov_utils/group.rb
egov_utils-1.5.0.alpha14 app/models/egov_utils/group.rb
egov_utils-1.5.0.alpha13 app/models/egov_utils/group.rb
egov_utils-1.5.0.alpha12 app/models/egov_utils/group.rb
egov_utils-1.5.0.alpha11 app/models/egov_utils/group.rb
egov_utils-1.5.0.alpha10 app/models/egov_utils/group.rb
egov_utils-1.5.0.alpha9 app/models/egov_utils/group.rb
egov_utils-1.5.0.alpha8 app/models/egov_utils/group.rb
egov_utils-1.5.0.alpha7 app/models/egov_utils/group.rb
egov_utils-1.5.0.alpha6 app/models/egov_utils/group.rb
egov_utils-1.5.0.alpha5 app/models/egov_utils/group.rb
egov_utils-1.5.0.alpha4 app/models/egov_utils/group.rb
egov_utils-1.4.5 app/models/egov_utils/group.rb
egov_utils-1.4.4 app/models/egov_utils/group.rb
egov_utils-1.5.0.alpha3 app/models/egov_utils/group.rb
egov_utils-1.5.0.alpha2 app/models/egov_utils/group.rb
egov_utils-1.5.0.alpha1 app/models/egov_utils/group.rb
egov_utils-1.4.3 app/models/egov_utils/group.rb
egov_utils-1.4.2 app/models/egov_utils/group.rb