Commit c668a3249b8ac651705ebd70dbdb89809e1d65da
1 parent
8c6a28dd
Exists in
theme-brasil-digital-from-staging
and in
9 other branches
Fix user creation pt-br messages
Showing
7 changed files
with
39 additions
and
106 deletions
Show diff stats
app/models/user.rb
@@ -104,18 +104,18 @@ class User < ActiveRecord::Base | @@ -104,18 +104,18 @@ class User < ActiveRecord::Base | ||
104 | 104 | ||
105 | validates_presence_of :login | 105 | validates_presence_of :login |
106 | validates_presence_of :email | 106 | validates_presence_of :email |
107 | - validates_format_of :login, :message => _('incorrect login format'), :with => Profile::IDENTIFIER_FORMAT, :if => (lambda {|user| !user.login.blank?}) | 107 | + validates_format_of :login, :message => :login_format, :with => Profile::IDENTIFIER_FORMAT, :if => (lambda {|user| !user.login.blank?}) |
108 | validates_presence_of :password, :if => :password_required? | 108 | validates_presence_of :password, :if => :password_required? |
109 | validates_presence_of :password_confirmation, :if => :password_required? | 109 | validates_presence_of :password_confirmation, :if => :password_required? |
110 | - validates_length_of :password, :message => _('length must be within 4 to 40 characters'), :within => 4..40, :if => :password_required? | 110 | + validates_length_of :password, :within => 4..40, :if => :password_required? |
111 | validates_confirmation_of :password, :if => :password_required? | 111 | validates_confirmation_of :password, :if => :password_required? |
112 | - validates_length_of :login, :message => _('length must be within 2 to 40 characters'), :within => 2..40, :if => (lambda {|user| !user.login.blank?}) | ||
113 | - validates_length_of :email, :message => _('length must be within 3 to 100 characters'),:within => 3..100, :if => (lambda {|user| !user.email.blank?}) | 112 | + validates_length_of :login, :within => 2..40, :if => (lambda {|user| !user.login.blank?}) |
113 | + validates_length_of :email, :within => 3..100, :if => (lambda {|user| !user.email.blank?}) | ||
114 | validates_uniqueness_of :login, :case_sensitive => false, :scope => :environment_id | 114 | validates_uniqueness_of :login, :case_sensitive => false, :scope => :environment_id |
115 | validates_uniqueness_of :email, :case_sensitive => false, :scope => :environment_id | 115 | validates_uniqueness_of :email, :case_sensitive => false, :scope => :environment_id |
116 | before_save :encrypt_password | 116 | before_save :encrypt_password |
117 | before_save :normalize_email, if: proc{ |u| u.email.present? } | 117 | before_save :normalize_email, if: proc{ |u| u.email.present? } |
118 | - validates_format_of :email, :message => _('incorrect email format'), :with => Noosfero::Constants::EMAIL_FORMAT, :if => (lambda {|user| !user.email.blank?}) | 118 | + validates_format_of :email, :with => Noosfero::Constants::EMAIL_FORMAT, :if => (lambda {|user| !user.email.blank?}) |
119 | 119 | ||
120 | validates_inclusion_of :terms_accepted, :in => [ '1' ], :if => lambda { |u| ! u.terms_of_use.blank? }, :message => N_('{fn} must be checked in order to signup.').fix_i18n | 120 | validates_inclusion_of :terms_accepted, :in => [ '1' ], :if => lambda { |u| ! u.terms_of_use.blank? }, :message => N_('{fn} must be checked in order to signup.').fix_i18n |
121 | 121 |
config/locales/en-US.yml
@@ -221,6 +221,9 @@ | @@ -221,6 +221,9 @@ | ||
221 | <<: *errors_template | 221 | <<: *errors_template |
222 | full_messages: | 222 | full_messages: |
223 | format: "%{attribute} %{message}" | 223 | format: "%{attribute} %{message}" |
224 | + models: | ||
225 | + user: | ||
226 | + login_format: "with invalid format. It must contain only lowercase letters, digits, '_' and '-', and must begin with a letter or a digit." | ||
224 | 227 | ||
225 | en: | 228 | en: |
226 | <<: *en-US | 229 | <<: *en-US |
config/locales/pt-BR.yml
@@ -229,9 +229,11 @@ | @@ -229,9 +229,11 @@ | ||
229 | <<: *errors_messages | 229 | <<: *errors_messages |
230 | template: | 230 | template: |
231 | <<: *errors_template | 231 | <<: *errors_template |
232 | - | ||
233 | full_messages: | 232 | full_messages: |
234 | format: "%{attribute} %{message}" | 233 | format: "%{attribute} %{message}" |
234 | + models: | ||
235 | + user: | ||
236 | + login_format: "com formato inválido. Só pode conter letras minúsculas não acentudadas, dígitos, '_' e '-', e deve iniciar com uma letra ou um dígito." | ||
235 | 237 | ||
236 | pt: | 238 | pt: |
237 | <<: *pt-BR | 239 | <<: *pt-BR |
config/locales/pt-PT.yml
db/schema.rb
@@ -11,7 +11,7 @@ | @@ -11,7 +11,7 @@ | ||
11 | # | 11 | # |
12 | # It's strongly recommended to check this file into your version control system. | 12 | # It's strongly recommended to check this file into your version control system. |
13 | 13 | ||
14 | -ActiveRecord::Schema.define(:version => 20150712194411) do | 14 | +ActiveRecord::Schema.define(:version => 20150722042714) do |
15 | 15 | ||
16 | create_table "abuse_reports", :force => true do |t| | 16 | create_table "abuse_reports", :force => true do |t| |
17 | t.integer "reporter_id" | 17 | t.integer "reporter_id" |
@@ -163,8 +163,6 @@ ActiveRecord::Schema.define(:version => 20150712194411) do | @@ -163,8 +163,6 @@ ActiveRecord::Schema.define(:version => 20150712194411) do | ||
163 | t.integer "author_id" | 163 | t.integer "author_id" |
164 | t.integer "created_by_id" | 164 | t.integer "created_by_id" |
165 | t.boolean "show_to_followers", :default => true | 165 | t.boolean "show_to_followers", :default => true |
166 | - t.integer "sash_id" | ||
167 | - t.integer "level", :default => 0 | ||
168 | end | 166 | end |
169 | 167 | ||
170 | add_index "articles", ["comments_count"], :name => "index_articles_on_comments_count" | 168 | add_index "articles", ["comments_count"], :name => "index_articles_on_comments_count" |
@@ -191,17 +189,6 @@ ActiveRecord::Schema.define(:version => 20150712194411) do | @@ -191,17 +189,6 @@ ActiveRecord::Schema.define(:version => 20150712194411) do | ||
191 | add_index "articles_categories", ["article_id"], :name => "index_articles_categories_on_article_id" | 189 | add_index "articles_categories", ["article_id"], :name => "index_articles_categories_on_article_id" |
192 | add_index "articles_categories", ["category_id"], :name => "index_articles_categories_on_category_id" | 190 | add_index "articles_categories", ["category_id"], :name => "index_articles_categories_on_category_id" |
193 | 191 | ||
194 | - create_table "badges_sashes", :force => true do |t| | ||
195 | - t.integer "badge_id" | ||
196 | - t.integer "sash_id" | ||
197 | - t.boolean "notified_user", :default => false | ||
198 | - t.datetime "created_at" | ||
199 | - end | ||
200 | - | ||
201 | - add_index "badges_sashes", ["badge_id", "sash_id"], :name => "index_badges_sashes_on_badge_id_and_sash_id" | ||
202 | - add_index "badges_sashes", ["badge_id"], :name => "index_badges_sashes_on_badge_id" | ||
203 | - add_index "badges_sashes", ["sash_id"], :name => "index_badges_sashes_on_sash_id" | ||
204 | - | ||
205 | create_table "blocks", :force => true do |t| | 192 | create_table "blocks", :force => true do |t| |
206 | t.string "title" | 193 | t.string "title" |
207 | t.integer "box_id" | 194 | t.integer "box_id" |
@@ -297,10 +284,8 @@ ActiveRecord::Schema.define(:version => 20150712194411) do | @@ -297,10 +284,8 @@ ActiveRecord::Schema.define(:version => 20150712194411) do | ||
297 | t.string "referrer" | 284 | t.string "referrer" |
298 | t.text "settings" | 285 | t.text "settings" |
299 | t.integer "paragraph_id" | 286 | t.integer "paragraph_id" |
300 | - t.string "paragraph_uuid" | ||
301 | end | 287 | end |
302 | 288 | ||
303 | - add_index "comments", ["paragraph_uuid"], :name => "index_comments_on_paragraph_uuid" | ||
304 | add_index "comments", ["source_id", "spam"], :name => "index_comments_on_source_id_and_spam" | 289 | add_index "comments", ["source_id", "spam"], :name => "index_comments_on_source_id_and_spam" |
305 | 290 | ||
306 | create_table "contact_lists", :force => true do |t| | 291 | create_table "contact_lists", :force => true do |t| |
@@ -370,7 +355,6 @@ ActiveRecord::Schema.define(:version => 20150712194411) do | @@ -370,7 +355,6 @@ ActiveRecord::Schema.define(:version => 20150712194411) do | ||
370 | t.string "default_language" | 355 | t.string "default_language" |
371 | t.string "noreply_email" | 356 | t.string "noreply_email" |
372 | t.string "redirection_after_signup", :default => "keep_on_same_page" | 357 | t.string "redirection_after_signup", :default => "keep_on_same_page" |
373 | - t.text "send_email_plugin_allow_to" | ||
374 | t.string "date_format", :default => "month_name_with_year" | 358 | t.string "date_format", :default => "month_name_with_year" |
375 | end | 359 | end |
376 | 360 | ||
@@ -407,17 +391,6 @@ ActiveRecord::Schema.define(:version => 20150712194411) do | @@ -407,17 +391,6 @@ ActiveRecord::Schema.define(:version => 20150712194411) do | ||
407 | add_index "friendships", ["person_id", "friend_id"], :name => "index_friendships_on_person_id_and_friend_id" | 391 | add_index "friendships", ["person_id", "friend_id"], :name => "index_friendships_on_person_id_and_friend_id" |
408 | add_index "friendships", ["person_id"], :name => "index_friendships_on_person_id" | 392 | add_index "friendships", ["person_id"], :name => "index_friendships_on_person_id" |
409 | 393 | ||
410 | - create_table "gamification_plugin_badges", :force => true do |t| | ||
411 | - t.string "name" | ||
412 | - t.integer "level" | ||
413 | - t.string "description" | ||
414 | - t.string "custom_fields" | ||
415 | - t.integer "owner_id" | ||
416 | - t.string "owner_type" | ||
417 | - t.datetime "created_at", :null => false | ||
418 | - t.datetime "updated_at", :null => false | ||
419 | - end | ||
420 | - | ||
421 | create_table "images", :force => true do |t| | 394 | create_table "images", :force => true do |t| |
422 | t.integer "parent_id" | 395 | t.integer "parent_id" |
423 | t.string "content_type" | 396 | t.string "content_type" |
@@ -474,46 +447,6 @@ ActiveRecord::Schema.define(:version => 20150712194411) do | @@ -474,46 +447,6 @@ ActiveRecord::Schema.define(:version => 20150712194411) do | ||
474 | t.datetime "updated_at" | 447 | t.datetime "updated_at" |
475 | end | 448 | end |
476 | 449 | ||
477 | - create_table "mark_comment_as_read_plugin", :force => true do |t| | ||
478 | - t.integer "comment_id" | ||
479 | - t.integer "person_id" | ||
480 | - end | ||
481 | - | ||
482 | - add_index "mark_comment_as_read_plugin", ["comment_id", "person_id"], :name => "index_mark_comment_as_read_plugin_on_comment_id_and_person_id", :unique => true | ||
483 | - | ||
484 | - create_table "merit_actions", :force => true do |t| | ||
485 | - t.integer "user_id" | ||
486 | - t.string "action_method" | ||
487 | - t.integer "action_value" | ||
488 | - t.boolean "had_errors", :default => false | ||
489 | - t.string "target_model" | ||
490 | - t.integer "target_id" | ||
491 | - t.text "target_data" | ||
492 | - t.boolean "processed", :default => false | ||
493 | - t.datetime "created_at", :null => false | ||
494 | - t.datetime "updated_at", :null => false | ||
495 | - end | ||
496 | - | ||
497 | - create_table "merit_activity_logs", :force => true do |t| | ||
498 | - t.integer "action_id" | ||
499 | - t.string "related_change_type" | ||
500 | - t.integer "related_change_id" | ||
501 | - t.string "description" | ||
502 | - t.datetime "created_at" | ||
503 | - end | ||
504 | - | ||
505 | - create_table "merit_score_points", :force => true do |t| | ||
506 | - t.integer "score_id" | ||
507 | - t.integer "num_points", :default => 0 | ||
508 | - t.string "log" | ||
509 | - t.datetime "created_at" | ||
510 | - end | ||
511 | - | ||
512 | - create_table "merit_scores", :force => true do |t| | ||
513 | - t.integer "sash_id" | ||
514 | - t.string "category", :default => "default" | ||
515 | - end | ||
516 | - | ||
517 | create_table "national_region_types", :force => true do |t| | 450 | create_table "national_region_types", :force => true do |t| |
518 | t.string "name" | 451 | t.string "name" |
519 | end | 452 | end |
@@ -530,15 +463,6 @@ ActiveRecord::Schema.define(:version => 20150712194411) do | @@ -530,15 +463,6 @@ ActiveRecord::Schema.define(:version => 20150712194411) do | ||
530 | add_index "national_regions", ["name"], :name => "name_index" | 463 | add_index "national_regions", ["name"], :name => "name_index" |
531 | add_index "national_regions", ["national_region_code"], :name => "code_index" | 464 | add_index "national_regions", ["national_region_code"], :name => "code_index" |
532 | 465 | ||
533 | - create_table "pairwise_plugin_choices_related", :force => true do |t| | ||
534 | - t.integer "choice_id" | ||
535 | - t.integer "parent_choice_id" | ||
536 | - t.integer "question_id" | ||
537 | - t.integer "user_id" | ||
538 | - t.datetime "created_at", :null => false | ||
539 | - t.datetime "updated_at", :null => false | ||
540 | - end | ||
541 | - | ||
542 | create_table "price_details", :force => true do |t| | 466 | create_table "price_details", :force => true do |t| |
543 | t.decimal "price", :default => 0.0 | 467 | t.decimal "price", :default => 0.0 |
544 | t.integer "product_id" | 468 | t.integer "product_id" |
@@ -646,21 +570,15 @@ ActiveRecord::Schema.define(:version => 20150712194411) do | @@ -646,21 +570,15 @@ ActiveRecord::Schema.define(:version => 20150712194411) do | ||
646 | t.boolean "allow_members_to_invite", :default => true | 570 | t.boolean "allow_members_to_invite", :default => true |
647 | t.boolean "invite_friends_only", :default => false | 571 | t.boolean "invite_friends_only", :default => false |
648 | t.boolean "secret", :default => false | 572 | t.boolean "secret", :default => false |
649 | - t.integer "sash_id" | ||
650 | - t.integer "level", :default => 0 | ||
651 | end | 573 | end |
652 | 574 | ||
653 | add_index "profiles", ["activities_count"], :name => "index_profiles_on_activities_count" | 575 | add_index "profiles", ["activities_count"], :name => "index_profiles_on_activities_count" |
654 | add_index "profiles", ["created_at"], :name => "index_profiles_on_created_at" | 576 | add_index "profiles", ["created_at"], :name => "index_profiles_on_created_at" |
655 | - add_index "profiles", ["enabled"], :name => "index_profiles_on_enabled" | ||
656 | add_index "profiles", ["environment_id"], :name => "index_profiles_on_environment_id" | 577 | add_index "profiles", ["environment_id"], :name => "index_profiles_on_environment_id" |
657 | add_index "profiles", ["friends_count"], :name => "index_profiles_on_friends_count" | 578 | add_index "profiles", ["friends_count"], :name => "index_profiles_on_friends_count" |
658 | add_index "profiles", ["identifier"], :name => "index_profiles_on_identifier" | 579 | add_index "profiles", ["identifier"], :name => "index_profiles_on_identifier" |
659 | add_index "profiles", ["members_count"], :name => "index_profiles_on_members_count" | 580 | add_index "profiles", ["members_count"], :name => "index_profiles_on_members_count" |
660 | add_index "profiles", ["region_id"], :name => "index_profiles_on_region_id" | 581 | add_index "profiles", ["region_id"], :name => "index_profiles_on_region_id" |
661 | - add_index "profiles", ["type"], :name => "index_profiles_on_type" | ||
662 | - add_index "profiles", ["validated"], :name => "index_profiles_on_validated" | ||
663 | - add_index "profiles", ["visible"], :name => "index_profiles_on_visible" | ||
664 | 582 | ||
665 | create_table "proposals_discussion_plugin_proposal_evaluations", :force => true do |t| | 583 | create_table "proposals_discussion_plugin_proposal_evaluations", :force => true do |t| |
666 | t.integer "proposal_task_id" | 584 | t.integer "proposal_task_id" |
@@ -718,12 +636,6 @@ ActiveRecord::Schema.define(:version => 20150712194411) do | @@ -718,12 +636,6 @@ ActiveRecord::Schema.define(:version => 20150712194411) do | ||
718 | t.boolean "is_global" | 636 | t.boolean "is_global" |
719 | end | 637 | end |
720 | 638 | ||
721 | - add_index "role_assignments", ["accessor_id", "accessor_type", "resource_id", "resource_type"], :name => "index_on_role_assigments_accessor_resource_role" | ||
722 | - add_index "role_assignments", ["accessor_id", "accessor_type", "role_id"], :name => "index_on_role_assigments_accessor_role" | ||
723 | - add_index "role_assignments", ["accessor_id", "accessor_type"], :name => "index_role_assignments_on_accessor_id_and_accessor_type" | ||
724 | - add_index "role_assignments", ["resource_id", "resource_type", "role_id"], :name => "index_on_role_assigments_resource_role" | ||
725 | - add_index "role_assignments", ["resource_id", "resource_type"], :name => "index_role_assignments_on_resource_id_and_resource_type" | ||
726 | - | ||
727 | create_table "roles", :force => true do |t| | 639 | create_table "roles", :force => true do |t| |
728 | t.string "name" | 640 | t.string "name" |
729 | t.string "key" | 641 | t.string "key" |
@@ -733,11 +645,6 @@ ActiveRecord::Schema.define(:version => 20150712194411) do | @@ -733,11 +645,6 @@ ActiveRecord::Schema.define(:version => 20150712194411) do | ||
733 | t.integer "profile_id" | 645 | t.integer "profile_id" |
734 | end | 646 | end |
735 | 647 | ||
736 | - create_table "sashes", :force => true do |t| | ||
737 | - t.datetime "created_at", :null => false | ||
738 | - t.datetime "updated_at", :null => false | ||
739 | - end | ||
740 | - | ||
741 | create_table "scraps", :force => true do |t| | 648 | create_table "scraps", :force => true do |t| |
742 | t.text "content" | 649 | t.text "content" |
743 | t.integer "sender_id" | 650 | t.integer "sender_id" |
script/updatepo/data/pt.upo
@@ -128,8 +128,3 @@ msgid "Saved with success!"# msgstr "Salvo com sucesso!" | @@ -128,8 +128,3 @@ msgid "Saved with success!"# msgstr "Salvo com sucesso!" | ||
128 | msgid "Select at least one category"# msgstr "Selecione pelo menos uma categoria" | 128 | msgid "Select at least one category"# msgstr "Selecione pelo menos uma categoria" |
129 | msgid "Task Acceptance"# msgstr "Aceitar Tarefa" | 129 | msgid "Task Acceptance"# msgstr "Aceitar Tarefa" |
130 | msgid "Select an acceptance email template:"# msgstr "Selecionar modelo de email para aceitar:" | 130 | msgid "Select an acceptance email template:"# msgstr "Selecionar modelo de email para aceitar:" |
131 | -msgid "incorrect email format"# msgstr "formato do email inválido. O mesmo só pode ser composto por letras minúsculas, números, '_' e '-'. Adicionalmente não é permitido usar acentuação nem começar com '_' ou '-'" | ||
132 | -msgid "incorrect login format"# msgstr "formato do login inválido. O mesmo só pode ser composto por letras minúsculas, números, '_' e '-'. Adicionalmente não é permitido usar acentuação nem começar com '_' ou '-'" | ||
133 | -msgid "length must be within 4 to 40 characters"# msgstr "o tamanho do campo deve ser entre 4 e 40 caracteres" | ||
134 | -msgid "length must be within 2 to 40 characters"# msgstr "o tamanho do campo deve ser entre 2 e 40 caracteres" | ||
135 | -msgid "length must be within 3 to 100 characters"# msgstr "o tamanho do campo deve ser entre 3 e 100 caracteres" |
test/unit/api/session_test.rb
@@ -39,7 +39,32 @@ class SessionTest < ActiveSupport::TestCase | @@ -39,7 +39,32 @@ class SessionTest < ActiveSupport::TestCase | ||
39 | assert json['private_token'].blank? | 39 | assert json['private_token'].blank? |
40 | end | 40 | end |
41 | 41 | ||
42 | - should 'do not register a user without email' do | 42 | + should 'not register a user with invalid login' do |
43 | + params = {:login => "c", :password => "newuserapi", :password_confirmation => "newuserapi", :email => "newuserapi@email.com" } | ||
44 | + post "/api/v1/register?#{params.to_query}" | ||
45 | + assert_equal 400, last_response.status | ||
46 | + json = JSON.parse(last_response.body) | ||
47 | + msg = json['message'].split(':') | ||
48 | + key = msg[0][2, 5] | ||
49 | + val = msg[1][2, 38] | ||
50 | + assert_equal "login", key | ||
51 | + assert_equal "is too short (minimum is 2 characters)", val | ||
52 | + end | ||
53 | + | ||
54 | + should 'not register a user with invalid login pt' do | ||
55 | + I18n.locale = "pt-BR" | ||
56 | + params = {:lang => "pt-BR", :login => "c", :password => "newuserapi", :password_confirmation => "newuserapi", :email => "newuserapi@email.com" } | ||
57 | + post "/api/v1/register?#{params.to_query}" | ||
58 | + assert_equal 400, last_response.status | ||
59 | + json = JSON.parse(last_response.body) | ||
60 | + msg = json['message'].split(':') | ||
61 | + key = msg[0][2, 5] | ||
62 | + val = msg[1][2, 35] | ||
63 | + assert_equal "login", key | ||
64 | + assert val.include? "muito curto" | ||
65 | + end | ||
66 | + | ||
67 | + should 'not register a user without email' do | ||
43 | params = {:login => "newuserapi", :password => "newuserapi", :password_confirmation => "newuserapi", :email => nil } | 68 | params = {:login => "newuserapi", :password => "newuserapi", :password_confirmation => "newuserapi", :email => nil } |
44 | post "/api/v1/register?#{params.to_query}" | 69 | post "/api/v1/register?#{params.to_query}" |
45 | assert_equal 400, last_response.status | 70 | assert_equal 400, last_response.status |