diff --git a/plugins/stoa/lib/stoa_plugin.rb b/plugins/stoa/lib/stoa_plugin.rb index 9d37d1f..651a47f 100644 --- a/plugins/stoa/lib/stoa_plugin.rb +++ b/plugins/stoa/lib/stoa_plugin.rb @@ -21,7 +21,7 @@ class StoaPlugin < Noosfero::Plugin lambda { required(labelled_form_field(_('USP number'), text_field_tag('profile_data[usp_id]', '', :id => 'usp_id_field'))) + labelled_form_field(_('Select a confirmation data'), select_tag('confirmation_field', - options_for_select([['CPF','cpf'], [_('Mother\'s name'), 'mother'], [_('Birth date (yyyy-mm-dd)'), 'birth']]) + options_for_select([['CPF','cpf'], [_('Birth date (yyyy-mm-dd)'), 'birth_date']]) )) + required(labelled_form_field(_('Confirmation value'), text_field_tag('confirmation_value', '', :placeholder=>_('Confirmation value')))) + javascript_tag(<<-EOF diff --git a/plugins/stoa/lib/stoa_plugin/usp_user.rb b/plugins/stoa/lib/stoa_plugin/usp_user.rb index be48df7..8fa09ed 100644 --- a/plugins/stoa/lib/stoa_plugin/usp_user.rb +++ b/plugins/stoa/lib/stoa_plugin/usp_user.rb @@ -6,7 +6,7 @@ class StoaPlugin::UspUser < ActiveRecord::Base SALT=YAML::load(File.open(StoaPlugin.root_path + '/config.yml'))['salt'] alias_attribute :cpf, :numcpf - alias_attribute :rg, :numdocidf + alias_attribute :birth_date, :dtanas def self.exists?(usp_id) !StoaPlugin::UspUser.find(:first, :conditions => {:codpes => usp_id}).nil? @@ -15,7 +15,12 @@ class StoaPlugin::UspUser < ActiveRecord::Base def self.matches?(usp_id, field, value) user = StoaPlugin::UspUser.find(:first, :conditions => {:codpes => usp_id}) return false if user.nil? || !user.respond_to?(field) || value.blank? - user.send(field) == Digest::MD5.hexdigest(SALT+value.to_s) + case field.to_sym + when :cpf + user.cpf == Digest::MD5.hexdigest(SALT+value.to_s) + when :birth_date + user.birth_date.to_s == value + end end end diff --git a/plugins/stoa/test/unit/usp_user.rb b/plugins/stoa/test/unit/usp_user.rb index 9575bad..6c43479 100644 --- a/plugins/stoa/test/unit/usp_user.rb +++ b/plugins/stoa/test/unit/usp_user.rb @@ -11,10 +11,10 @@ class StoaPlugin::UspUserTest < ActiveSupport::TestCase ActiveRecord::Schema.create_table "pessoa" do |t| t.integer "codpes" t.text "numcpf" - t.text "numdocidf" + t.date "dtanas" end ActiveRecord::Base.establish_connection(:test) - StoaPlugin::UspUser.create!(:codpes => 123456, :cpf => Digest::MD5.hexdigest(SALT+'12345678'), :rg => Digest::MD5.hexdigest(SALT+'87654321')) + StoaPlugin::UspUser.create!(:codpes => 123456, :cpf => Digest::MD5.hexdigest(SALT+'12345678'), :birth_date => '1970-01-30') end def teardown @@ -26,10 +26,16 @@ class StoaPlugin::UspUserTest < ActiveSupport::TestCase assert !StoaPlugin::UspUser.exists?(654321) end - should 'check if usp_id matches with a field' do + should 'check if usp_id matches with a cpf' do assert StoaPlugin::UspUser.matches?(123456, :cpf, 12345678) assert !StoaPlugin::UspUser.matches?(123456, :cpf, 87654321) assert !StoaPlugin::UspUser.matches?(654321, :cpf, 12345678) end + + should 'check if usp_id matches with a birth_date' do + assert StoaPlugin::UspUser.matches?(123456, :birth_date, '1970-01-30') + assert !StoaPlugin::UspUser.matches?(123456, :birth_date, '1999-01-30') + assert !StoaPlugin::UspUser.matches?(654321, :birth_date, '1970-01-30') + end end -- libgit2 0.21.2