# File lib/devise_ldap_authenticatable/ldap/connection.rb, line 148
      def in_group?(group_name, group_attribute = LDAP::DEFAULT_GROUP_UNIQUE_MEMBER_LIST_KEY)
        in_group = false

        if @check_group_membership_without_admin
          group_checking_ldap = @ldap
        else
          group_checking_ldap = Connection.admin
        end

        unless ::Devise.ldap_ad_group_check
          group_checking_ldap.search(:base => group_name, :scope => Net::LDAP::SearchScope_BaseObject) do |entry|
            if entry[group_attribute].include? dn
              in_group = true
              DeviseLdapAuthenticatable::Logger.send("User #{dn} IS included in group: #{group_name}")
            end
          end
        else
          # AD optimization - extension will recursively check sub-groups with one query
          # "(memberof:1.2.840.113556.1.4.1941:=group_name)"
          search_result = group_checking_ldap.search(:base => dn,
                            :filter => Net::LDAP::Filter.ex("memberof:1.2.840.113556.1.4.1941", group_name),
                            :scope => Net::LDAP::SearchScope_BaseObject)
          # Will return  the user entry if belongs to group otherwise nothing
          if search_result.length == 1 && search_result[0].dn.eql?(dn)
            in_group = true
            DeviseLdapAuthenticatable::Logger.send("User #{dn} IS included in group: #{group_name}")
          end
        end

        unless in_group
          DeviseLdapAuthenticatable::Logger.send("User #{dn} is not in group: #{group_name}")
        end

        return in_group
      end