Commit 4a72860850b9c38dfd68be8fd3b6521814e51293

Authored by Rodrigo Souto
1 parent 2340a574

[stoa] Confirmation through cpf and birth_date

(ActionItem2293)
plugins/stoa/lib/stoa_plugin.rb
... ... @@ -21,7 +21,7 @@ class StoaPlugin < Noosfero::Plugin
21 21 lambda {
22 22 required(labelled_form_field(_('USP number'), text_field_tag('profile_data[usp_id]', '', :id => 'usp_id_field'))) +
23 23 labelled_form_field(_('Select a confirmation data'), select_tag('confirmation_field',
24   - options_for_select([['CPF','cpf'], [_('Mother\'s name'), 'mother'], [_('Birth date (yyyy-mm-dd)'), 'birth']])
  24 + options_for_select([['CPF','cpf'], [_('Birth date (yyyy-mm-dd)'), 'birth_date']])
25 25 )) +
26 26 required(labelled_form_field(_('Confirmation value'), text_field_tag('confirmation_value', '', :placeholder=>_('Confirmation value')))) +
27 27 javascript_tag(<<-EOF
... ...
plugins/stoa/lib/stoa_plugin/usp_user.rb
... ... @@ -6,7 +6,7 @@ class StoaPlugin::UspUser &lt; ActiveRecord::Base
6 6 SALT=YAML::load(File.open(StoaPlugin.root_path + '/config.yml'))['salt']
7 7  
8 8 alias_attribute :cpf, :numcpf
9   - alias_attribute :rg, :numdocidf
  9 + alias_attribute :birth_date, :dtanas
10 10  
11 11 def self.exists?(usp_id)
12 12 !StoaPlugin::UspUser.find(:first, :conditions => {:codpes => usp_id}).nil?
... ... @@ -15,7 +15,12 @@ class StoaPlugin::UspUser &lt; ActiveRecord::Base
15 15 def self.matches?(usp_id, field, value)
16 16 user = StoaPlugin::UspUser.find(:first, :conditions => {:codpes => usp_id})
17 17 return false if user.nil? || !user.respond_to?(field) || value.blank?
18   - user.send(field) == Digest::MD5.hexdigest(SALT+value.to_s)
  18 + case field.to_sym
  19 + when :cpf
  20 + user.cpf == Digest::MD5.hexdigest(SALT+value.to_s)
  21 + when :birth_date
  22 + user.birth_date.to_s == value
  23 + end
19 24 end
20 25  
21 26 end
... ...
plugins/stoa/test/unit/usp_user.rb
... ... @@ -11,10 +11,10 @@ class StoaPlugin::UspUserTest &lt; ActiveSupport::TestCase
11 11 ActiveRecord::Schema.create_table "pessoa" do |t|
12 12 t.integer "codpes"
13 13 t.text "numcpf"
14   - t.text "numdocidf"
  14 + t.date "dtanas"
15 15 end
16 16 ActiveRecord::Base.establish_connection(:test)
17   - StoaPlugin::UspUser.create!(:codpes => 123456, :cpf => Digest::MD5.hexdigest(SALT+'12345678'), :rg => Digest::MD5.hexdigest(SALT+'87654321'))
  17 + StoaPlugin::UspUser.create!(:codpes => 123456, :cpf => Digest::MD5.hexdigest(SALT+'12345678'), :birth_date => '1970-01-30')
18 18 end
19 19  
20 20 def teardown
... ... @@ -26,10 +26,16 @@ class StoaPlugin::UspUserTest &lt; ActiveSupport::TestCase
26 26 assert !StoaPlugin::UspUser.exists?(654321)
27 27 end
28 28  
29   - should 'check if usp_id matches with a field' do
  29 + should 'check if usp_id matches with a cpf' do
30 30 assert StoaPlugin::UspUser.matches?(123456, :cpf, 12345678)
31 31 assert !StoaPlugin::UspUser.matches?(123456, :cpf, 87654321)
32 32 assert !StoaPlugin::UspUser.matches?(654321, :cpf, 12345678)
33 33 end
  34 +
  35 + should 'check if usp_id matches with a birth_date' do
  36 + assert StoaPlugin::UspUser.matches?(123456, :birth_date, '1970-01-30')
  37 + assert !StoaPlugin::UspUser.matches?(123456, :birth_date, '1999-01-30')
  38 + assert !StoaPlugin::UspUser.matches?(654321, :birth_date, '1970-01-30')
  39 + end
34 40 end
35 41  
... ...