diff --git a/plugins/stoa/lib/stoa_plugin.rb b/plugins/stoa/lib/stoa_plugin.rb index 01b60bb..ed9c5e4 100644 --- a/plugins/stoa/lib/stoa_plugin.rb +++ b/plugins/stoa/lib/stoa_plugin.rb @@ -60,12 +60,14 @@ class StoaPlugin < Noosfero::Plugin end def account_controller_filters + environment = context.environment block = lambda do params[:profile_data] ||= {} params[:profile_data][:invitation_code] = params[:invitation_code] + invitation = Task.pending.find(:first, :conditions => {:code => params[:invitation_code]}) if request.post? - if !params[:invitation_code] && !StoaPlugin::UspUser.matches?(params[:profile_data][:usp_id], params[:confirmation_field], params[params[:confirmation_field]]) - @person = Person.new + if !invitation && !StoaPlugin::UspUser.matches?(params[:profile_data][:usp_id], params[:confirmation_field], params[params[:confirmation_field]]) + @person = Person.new(:environment => environment) @person.errors.add(:usp_id, _(' validation failed')) render :action => :signup end diff --git a/plugins/stoa/lib/stoa_plugin/usp_user.rb b/plugins/stoa/lib/stoa_plugin/usp_user.rb index 0fc9087..71d30b1 100644 --- a/plugins/stoa/lib/stoa_plugin/usp_user.rb +++ b/plugins/stoa/lib/stoa_plugin/usp_user.rb @@ -13,6 +13,8 @@ class StoaPlugin::UspUser < ActiveRecord::Base end def self.matches?(usp_id, field, value) + usp_id.gsub!(/[.-]/,'') + value.gsub!(/[.-]/,'') user = StoaPlugin::UspUser.find_by_codpes(usp_id.to_i) return false if user.nil? || !user.respond_to?(field) || value.blank? case field.to_sym -- libgit2 0.21.2