Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Multiple groups in ldap device authenticatable

I am trying to allow users to login who are present in group1 or group2 but during LDAP authorization it is checking in both groups.

If user is present in either group1 or group2 i need to allow them to login.

Can anybody assist on this?

In devise.rb

config.ldap_check_group_membership = true

In ldap.yml

 authorizations: &AUTHORIZATIONS

  group_base: ou=groups,dc=test,dc=com

 required_groups:

  cn=admins,ou=groups,dc=test,dc=com -----group1

  cn=users,ou=groups,dc=test,dc=com ----- group2

require_attribute:

# objectClass: inetOrgPerson
# authorizationRole: postsAdmin

development:
  host: # ip address is to be filled in here..
  port: # port number goes here..
  attribute: cn 
  base: # my tree base details go in here..
  admin_user: cn=admin_name,dc=test,dc=com
  admin_password: # password goes in here..
  ssl: true 
  <<: *AUTHORIZATIONS 
like image 336
VDN Avatar asked Jun 20 '26 04:06

VDN


1 Answers

/devise_ldap_authenticatable-0.8.3/lib/devise_ldap_authenticatable/ldap/connection.rb

def in_required_groups?
    return true unless @check_group_membership

    ## FIXME set errors here, the ldap.yml isn't set properly.
    return false if @required_groups.nil?

    arr_res = []
    for group in @required_groups
      if group.is_a?(Array)
        res = in_group?(group[1],group[0])
        arr_res << res
      #  return false unless in_group?(group[1], group[0])
      else
        return false unless in_group?(group)
      end
    end
    DeviseLdapAuthenticatable::Logger.send(arr_res)
    return true if arr_res.include? true
   # return true
  end
like image 157
drunkenclam Avatar answered Jun 23 '26 02:06

drunkenclam