Commit a0a33c64e55882603aa44e3cb9398c03db6e00fd

Authored by Arthur Esposte
1 parent be877df5

Change LDAP plugin to return all user attributes from a LDAP connection

plugins/ldap/lib/ldap_authentication.rb
@@ -77,18 +77,20 @@ class LdapAuthentication @@ -77,18 +77,20 @@ class LdapAuthentication
77 end 77 end
78 78
79 def get_user_attributes_from_ldap_entry(entry) 79 def get_user_attributes_from_ldap_entry(entry)
80 - {  
81 - :dn => entry.dn,  
82 - :fullname => LdapAuthentication.get_attr(entry, self.attr_fullname),  
83 - :mail => LdapAuthentication.get_attr(entry, self.attr_mail),  
84 - } 80 + attributes = entry.instance_values["myhash"]
  81 +
  82 + attributes[:dn] = entry.dn
  83 + attributes[:fullname] = LdapAuthentication.get_attr(entry, self.attr_fullname)
  84 + attributes[:mail] = LdapAuthentication.get_attr(entry, self.attr_mail)
  85 +
  86 + attributes
85 end 87 end
86 88
87 # Return the attributes needed for the LDAP search. It will only 89 # Return the attributes needed for the LDAP search. It will only
88 # include the user attributes if on-the-fly registration is enabled 90 # include the user attributes if on-the-fly registration is enabled
89 def search_attributes 91 def search_attributes
90 if onthefly_register? 92 if onthefly_register?
91 - ['dn', self.attr_fullname, self.attr_mail] 93 + nil
92 else 94 else
93 ['dn'] 95 ['dn']
94 end 96 end
@@ -111,6 +113,7 @@ class LdapAuthentication @@ -111,6 +113,7 @@ class LdapAuthentication
111 end 113 end
112 login_filter = Net::LDAP::Filter.eq( self.attr_login, login ) 114 login_filter = Net::LDAP::Filter.eq( self.attr_login, login )
113 object_filter = Net::LDAP::Filter.eq( "objectClass", "*" ) 115 object_filter = Net::LDAP::Filter.eq( "objectClass", "*" )
  116 +
114 attrs = {} 117 attrs = {}
115 118
116 search_filter = object_filter & login_filter 119 search_filter = object_filter & login_filter
plugins/ldap/lib/ldap_plugin.rb
@@ -60,7 +60,7 @@ class LdapPlugin < Noosfero::Plugin @@ -60,7 +60,7 @@ class LdapPlugin < Noosfero::Plugin
60 user.password = password 60 user.password = password
61 user.password_confirmation = password 61 user.password_confirmation = password
62 person_data = plugins.dispatch(:ldap_plugin_set_profile_data, attrs, login, context.params) 62 person_data = plugins.dispatch(:ldap_plugin_set_profile_data, attrs, login, context.params)
63 - user.person_data = person_data.nil? ? context.params[:profile_data] : person_data 63 + user.person_data = person_data.blank? ? context.params[:profile_data] : person_data
64 user.activated_at = Time.now.utc 64 user.activated_at = Time.now.utc
65 user.activation_code = nil 65 user.activation_code = nil
66 66