Sha256: 1a397495b4bacaf8206915cfc0ea560a3bf6f0aa4c2a5bf6cbb1c4a0077dc047

Contents?: true

Size: 842 Bytes

Versions: 13

Compression:

Stored size: 842 Bytes

Contents

require_dependency 'egov_utils/auth_source'
module EgovUtils
  class Group < Principal
    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 members

    end

    def ldap_members
      Rails.cache.fetch("#{cache_key}/ldap_members", expires_in: 2.hours) do
        if provider.present?
          auth_source.group_members(ldap_uid)
        else
          []
        end
      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

13 entries across 13 versions & 1 rubygems

Version Path
egov_utils-0.1.37 app/models/egov_utils/group.rb
egov_utils-0.1.36 app/models/egov_utils/group.rb
egov_utils-0.1.35 app/models/egov_utils/group.rb
egov_utils-0.1.33 app/models/egov_utils/group.rb
egov_utils-0.1.32 app/models/egov_utils/group.rb
egov_utils-0.1.31 app/models/egov_utils/group.rb
egov_utils-0.1.30 app/models/egov_utils/group.rb
egov_utils-0.1.29 app/models/egov_utils/group.rb
egov_utils-0.1.28 app/models/egov_utils/group.rb
egov_utils-0.1.27 app/models/egov_utils/group.rb
egov_utils-0.1.26 app/models/egov_utils/group.rb
egov_utils-0.1.23 app/models/egov_utils/group.rb
egov_utils-0.1.19 app/models/egov_utils/group.rb