Commit e1df99fbd9232b4d22de4fa9a55ae7b7269fd176
1 parent
1f4a8040
Exists in
master
and in
5 other branches
correcoes_aderencia: Fix full name regex bug
Signed-off-by: Fabio Teixeira <fabio1079@gmail.com> Signed-off-by: Luciano Prestes Cavalcanti <lucianopcbr@gmail.com>
Showing
3 changed files
with
22 additions
and
3 deletions
Show diff stats
lib/ext/person.rb
| ... | ... | @@ -60,8 +60,17 @@ class Person |
| 60 | 60 | def validate_full_name |
| 61 | 61 | reg_firsts_char = /(^|\s)([a-z]|[0-9])/ |
| 62 | 62 | reg_special_char = /[^\w\*\s]/ |
| 63 | + invalid = false | |
| 63 | 64 | |
| 64 | - invalid = reg_firsts_char.match(self.name) || reg_special_char.match(self.name) | |
| 65 | + return false if self.name.blank? | |
| 66 | + | |
| 67 | + self.name.split(" ").each do |value| | |
| 68 | + invalid = if value.length > 3 | |
| 69 | + reg_firsts_char.match(value) || reg_special_char.match(value) | |
| 70 | + else | |
| 71 | + reg_special_char.match(value) | |
| 72 | + end | |
| 73 | + end | |
| 65 | 74 | |
| 66 | 75 | if invalid |
| 67 | 76 | self.errors.add(:name, _("Should begin with a capital letter and no special characters")) | ... | ... |
public/mpog-user-validations.js
| ... | ... | @@ -92,8 +92,18 @@ |
| 92 | 92 | function is_invalid_formated(text) { |
| 93 | 93 | var reg_firsts_char = /(^|\s)([a-z]|[0-9])/g; |
| 94 | 94 | var reg_special_char = /[^\w\*\s*]/g; |
| 95 | + var invalid = false; | |
| 96 | + var slices = text.split(" "); | |
| 97 | + | |
| 98 | + for(var i = 0; i < slices.length; i++) { | |
| 99 | + if( slices[i].length > 3 ) { | |
| 100 | + invalid = reg_firsts_char.test(slices[i]) || reg_special_char.test(slices[i]); | |
| 101 | + } else { | |
| 102 | + invalid = reg_special_char.test(slices[i]); | |
| 103 | + } | |
| 104 | + } | |
| 95 | 105 | |
| 96 | - return reg_firsts_char.test(text) || reg_special_char.test(text); | |
| 106 | + return invalid; | |
| 97 | 107 | } |
| 98 | 108 | |
| 99 | 109 | function show_full_name_error_message() { | ... | ... |
test/unit/mpog_person_test.rb
| ... | ... | @@ -2,7 +2,7 @@ require File.dirname(__FILE__) + '/../../../../test/test_helper' |
| 2 | 2 | |
| 3 | 3 | class MpogSoftwarePluginPersonTest < ActiveSupport::TestCase |
| 4 | 4 | should 'save person with a valid full name' do |
| 5 | - p = Person::new :name=>"S1mpl3 N4m3", :identifier=>"simple-name" | |
| 5 | + p = Person::new :name=>"S1mpl3 0f N4m3", :identifier=>"simple-name" | |
| 6 | 6 | p.user = fast_create(:user) |
| 7 | 7 | |
| 8 | 8 | assert_equal true, p.save | ... | ... |