Commit 141fa98c4ec2d9373513bfb9f17ee2a3d0113a2f
1 parent
ee712409
Exists in
master
and in
29 other branches
Fix ldap plugin hotspot behaviour
Showing
1 changed file
with
20 additions
and
6 deletions
Show diff stats
plugins/ldap/lib/ldap_plugin.rb
@@ -18,7 +18,8 @@ class LdapPlugin < Noosfero::Plugin | @@ -18,7 +18,8 @@ class LdapPlugin < Noosfero::Plugin | ||
18 | # - login received by ldap | 18 | # - login received by ldap |
19 | # - params from current context | 19 | # - params from current context |
20 | # returns = updated person_data hash | 20 | # returns = updated person_data hash |
21 | - def ldap_plugin_set_profile_data(attrs, login, params) | 21 | + def ldap_plugin_set_profile_data(attrs, params) |
22 | + [attrs, params] | ||
22 | end | 23 | end |
23 | 24 | ||
24 | # -> Custom ldap plugin hotspot to update user object | 25 | # -> Custom ldap plugin hotspot to update user object |
@@ -55,19 +56,22 @@ class LdapPlugin < Noosfero::Plugin | @@ -55,19 +56,22 @@ class LdapPlugin < Noosfero::Plugin | ||
55 | 56 | ||
56 | if attrs | 57 | if attrs |
57 | user.login = login | 58 | user.login = login |
58 | - user.email = attrs[:mail] | 59 | + user.email = get_email(attrs, login) |
59 | user.name = attrs[:fullname] | 60 | user.name = attrs[:fullname] |
60 | user.password = password | 61 | user.password = password |
61 | user.password_confirmation = password | 62 | user.password_confirmation = password |
62 | - person_data = plugins.dispatch(:ldap_plugin_set_profile_data, attrs, login, context.params) | ||
63 | - user.person_data = person_data.blank? ? context.params[:profile_data] : person_data | 63 | + user.person_data = plugins.pipeline(:ldap_plugin_set_profile_data, attrs, context.params).last[:profile_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 | ||
67 | ldap = LdapAuthentication.new(context.environment.ldap_plugin_attributes) | 67 | ldap = LdapAuthentication.new(context.environment.ldap_plugin_attributes) |
68 | begin | 68 | begin |
69 | - user = nil unless user.save! | ||
70 | - plugins.dispatch(:ldap_plugin_update_user, user, attrs) | 69 | + if user.save |
70 | + user.activate | ||
71 | + plugins.dispatch(:ldap_plugin_update_user, user, attrs) | ||
72 | + else | ||
73 | + user = nil | ||
74 | + end | ||
71 | rescue | 75 | rescue |
72 | #User not saved | 76 | #User not saved |
73 | end | 77 | end |
@@ -90,6 +94,16 @@ class LdapPlugin < Noosfero::Plugin | @@ -90,6 +94,16 @@ class LdapPlugin < Noosfero::Plugin | ||
90 | user | 94 | user |
91 | end | 95 | end |
92 | 96 | ||
97 | + def get_email(attrs, login) | ||
98 | + return attrs[:mail] unless attrs[:mail].blank? | ||
99 | + | ||
100 | + if attrs[:fullname] | ||
101 | + return attrs[:fullname].to_slug + "@ldap.user" | ||
102 | + else | ||
103 | + return login.to_slug + "@ldap.user" | ||
104 | + end | ||
105 | + end | ||
106 | + | ||
93 | def login_extra_contents | 107 | def login_extra_contents |
94 | proc do | 108 | proc do |
95 | @person = Person.new(:environment => @environment) | 109 | @person = Person.new(:environment => @environment) |