From 206813e15c9e1fdcdf6b3f8ca39bef3e562ce826 Mon Sep 17 00:00:00 2001 From: Luciano Prestes Cavalcanti Date: Tue, 5 Jan 2016 13:32:32 +0100 Subject: [PATCH] Remove secondary_email from user --- src/noosfero-spb/gov_user/db/migrate/20160105122610_remove_secondary_email_from_user.rb | 9 +++++++++ src/noosfero-spb/gov_user/lib/ext/person.rb | 8 -------- src/noosfero-spb/gov_user/lib/ext/user.rb | 53 ----------------------------------------------------- src/noosfero-spb/gov_user/lib/gov_user_plugin.rb | 2 +- src/noosfero-spb/gov_user/public/views/user-edit-profile.js | 2 -- src/noosfero-spb/gov_user/test/helpers/plugin_test_helper.rb | 8 +++----- src/noosfero-spb/gov_user/test/unit/institutions_block_test.rb | 1 - src/noosfero-spb/gov_user/test/unit/person_test.rb | 9 +-------- src/noosfero-spb/gov_user/test/unit/user_test.rb | 74 -------------------------------------------------------------------------- src/noosfero-spb/gov_user/views/person_editor_extras.html.erb | 9 --------- src/noosfero-spb/software_communities/features/step_definitions/software_communities_steps.rb | 4 ---- src/noosfero-spb/software_communities/lib/ext/profile_helper.rb | 3 +-- 12 files changed, 15 insertions(+), 167 deletions(-) create mode 100644 src/noosfero-spb/gov_user/db/migrate/20160105122610_remove_secondary_email_from_user.rb diff --git a/src/noosfero-spb/gov_user/db/migrate/20160105122610_remove_secondary_email_from_user.rb b/src/noosfero-spb/gov_user/db/migrate/20160105122610_remove_secondary_email_from_user.rb new file mode 100644 index 0000000..cb78277 --- /dev/null +++ b/src/noosfero-spb/gov_user/db/migrate/20160105122610_remove_secondary_email_from_user.rb @@ -0,0 +1,9 @@ +class RemoveSecondaryEmailFromUser < ActiveRecord::Migration + def up + remove_column :users, :secondary_email + end + + def down + add_column :users, :secondary_email, :string + end +end diff --git a/src/noosfero-spb/gov_user/lib/ext/person.rb b/src/noosfero-spb/gov_user/lib/ext/person.rb index 0260a99..b4aa842 100644 --- a/src/noosfero-spb/gov_user/lib/ext/person.rb +++ b/src/noosfero-spb/gov_user/lib/ext/person.rb @@ -14,14 +14,6 @@ class Person false end - def secondary_email - self.user.secondary_email unless self.user.nil? - end - - def secondary_email= value - self.user.secondary_email = value unless self.user.nil? - end - def institutions institutions = [] unless self.user.institutions.nil? diff --git a/src/noosfero-spb/gov_user/lib/ext/user.rb b/src/noosfero-spb/gov_user/lib/ext/user.rb index ec5f7ce..ec3d6b8 100644 --- a/src/noosfero-spb/gov_user/lib/ext/user.rb +++ b/src/noosfero-spb/gov_user/lib/ext/user.rb @@ -2,59 +2,6 @@ require_dependency 'user' class User - GOV_SUFFIX = /^.*@[gov.br|jus.br|leg.br|mp.br]+$/ - has_and_belongs_to_many :institutions - validate :email_different_secondary?, :email_has_already_been_used?, - :secondary_email_format - - scope :primary_or_secondary_email_already_used?, lambda { |email| - where("email=? OR secondary_email=?", email, email) - } - - def email_different_secondary? - self.errors.add( - :base, - _("Email must be different from secondary email.") - ) if self.email == self.secondary_email - end - - def email_has_already_been_used? - user_already_saved = User.find(:first, - :conditions => ["email = ?", self.email]) - - if user_already_saved.nil? - primary_email_hasnt_been_used = - User.primary_or_secondary_email_already_used?(self.email).empty? - - if !self.secondary_email.nil? and self.secondary_email.empty? - self.secondary_email = nil - end - - secondary_email_hasnt_been_used = - User.primary_or_secondary_email_already_used?(self.secondary_email). - empty? - - if !primary_email_hasnt_been_used or !secondary_email_hasnt_been_used - self.errors.add(:base, _("E-mail or secondary e-mail already taken.")) - end - end - end - - def secondary_email_format - if !self.secondary_email.nil? and self.secondary_email.length > 0 - test = /\A[^@]+@([^@\.]+\.)+[^@\.]+\z/ - - unless test.match(self.secondary_email) - self.errors.add(:base, _("Invalid secondary email format.")) - end - end - end - - private - - def valid_format?(value, string_format) - !value.nil? && value.length > 0 && !string_format.match(value).nil? - end end diff --git a/src/noosfero-spb/gov_user/lib/gov_user_plugin.rb b/src/noosfero-spb/gov_user/lib/gov_user_plugin.rb index e12eb41..22b49bb 100644 --- a/src/noosfero-spb/gov_user/lib/gov_user_plugin.rb +++ b/src/noosfero-spb/gov_user/lib/gov_user_plugin.rb @@ -187,7 +187,7 @@ class GovUserPlugin < Noosfero::Plugin identifier name) - fields[:user_fields] = %w(secondary_email email) + fields[:user_fields] = %w(email) fields end diff --git a/src/noosfero-spb/gov_user/public/views/user-edit-profile.js b/src/noosfero-spb/gov_user/public/views/user-edit-profile.js index 049647d..fa188ec 100644 --- a/src/noosfero-spb/gov_user/public/views/user-edit-profile.js +++ b/src/noosfero-spb/gov_user/public/views/user-edit-profile.js @@ -158,7 +158,6 @@ modulejs.define('UserEditProfile', ['jquery', 'SelectElement', 'SelectFieldChoic try_to_remove(containers, get_privacy_selector_parent_div("#profile_data_contact_phone")); try_to_remove(containers, get_privacy_selector_parent_div("#profile_data_cell_phone")); try_to_remove(containers, $("#select_institution")); - try_to_remove(containers, $("#user_secondary_email").parent().parent()); try_to_remove(containers, get_privacy_selector_parent_div("#profile_data_email")); try_to_remove(containers, get_privacy_selector_parent_div("#profile_data_name")); try_to_remove(containers, $(".pseudoformlabel").parent().parent()); @@ -191,7 +190,6 @@ modulejs.define('UserEditProfile', ['jquery', 'SelectElement', 'SelectFieldChoic fix_phone_mask_format("#profile_data_contact_phone"); add_blur_fields("#profile_data_email", "email_error", invalid_email_validation); - add_blur_fields("#user_secondary_email", "email_error", invalid_email_validation, true); add_blur_fields("#profile_data_personal_website", "site_error", invalid_site_validation); add_blur_fields("#profile_data_organization_website", "site_error", invalid_site_validation); } diff --git a/src/noosfero-spb/gov_user/test/helpers/plugin_test_helper.rb b/src/noosfero-spb/gov_user/test/helpers/plugin_test_helper.rb index 741cb2f..d4816d4 100644 --- a/src/noosfero-spb/gov_user/test/helpers/plugin_test_helper.rb +++ b/src/noosfero-spb/gov_user/test/helpers/plugin_test_helper.rb @@ -2,13 +2,12 @@ require File.dirname(__FILE__) + '/../helpers/institution_test_helper' module PluginTestHelper - def create_person name, email, password, password_confirmation, secondary_email, state="state", city="city" + def create_person name, email, password, password_confirmation, state="state", city="city" user = create_user( name.to_slug, email, password, - password_confirmation, - secondary_email + password_confirmation ) person = Person::new @@ -26,14 +25,13 @@ module PluginTestHelper person end - def create_user login, email, password, password_confirmation, secondary_email + def create_user login, email, password, password_confirmation user = User.new user.login = login user.email = email user.password = password user.password_confirmation = password_confirmation - user.secondary_email = secondary_email user end diff --git a/src/noosfero-spb/gov_user/test/unit/institutions_block_test.rb b/src/noosfero-spb/gov_user/test/unit/institutions_block_test.rb index bcab723..e0af039 100644 --- a/src/noosfero-spb/gov_user/test/unit/institutions_block_test.rb +++ b/src/noosfero-spb/gov_user/test/unit/institutions_block_test.rb @@ -27,7 +27,6 @@ class InstitutionsBlockTest < ActiveSupport::TestCase "jose_augusto@email.com", "aaaaaaa", "aaaaaaa", - 'jose@secondary.com', "DF", "Gama" ) diff --git a/src/noosfero-spb/gov_user/test/unit/person_test.rb b/src/noosfero-spb/gov_user/test/unit/person_test.rb index dd6c628..fb29526 100644 --- a/src/noosfero-spb/gov_user/test/unit/person_test.rb +++ b/src/noosfero-spb/gov_user/test/unit/person_test.rb @@ -12,7 +12,6 @@ class SoftwareCommunitiesPluginPersonTest < ActiveSupport::TestCase "user@email.com", "123456", "123456", - "user@secondaryemail.com", "Any State", "Some City" ) @@ -22,7 +21,7 @@ class SoftwareCommunitiesPluginPersonTest < ActiveSupport::TestCase @person.cell_phone = "76888919" @person.contact_phone = "987654321" - assert_equal(67, @plugin.calc_percentage_registration(@person)) + assert_equal(64, @plugin.calc_percentage_registration(@person)) @person.comercial_phone = "11223344" @person.country = "I dont know" @@ -34,10 +33,4 @@ class SoftwareCommunitiesPluginPersonTest < ActiveSupport::TestCase assert_equal(100, @plugin.calc_percentage_registration(@person)) end - - should 'return true when the email has not gov.br,jus.br,leg.br or mp.br' do - @user.secondary_email = "test_email@com.br" - @user.email = "test_email@net.br" - assert @user.save - end end diff --git a/src/noosfero-spb/gov_user/test/unit/user_test.rb b/src/noosfero-spb/gov_user/test/unit/user_test.rb index c2b15c6..de78a9d 100644 --- a/src/noosfero-spb/gov_user/test/unit/user_test.rb +++ b/src/noosfero-spb/gov_user/test/unit/user_test.rb @@ -4,96 +4,22 @@ require File.dirname(__FILE__) + '/../helpers/plugin_test_helper' class UserTest < ActiveSupport::TestCase include PluginTestHelper - should 'not save user whose both email and secondary email are the same' do - user = fast_create(User) - user.email = "test@email.com" - user.secondary_email = "test@email.com" - - assert !user.save - end - - should 'not save user whose email and secondary email have been taken' do - user1 = create_default_user - user2 = fast_create(User) - - user2.email = "primary@email.com" - user2.secondary_email = "secondary@email.com" - assert !user2.save - end - should 'not save user whose email has already been used' do user1 = create_default_user user2 = fast_create(User) user2.email = "primary@email.com" - user2.secondary_email = "noosfero@email.com" - assert !user2.save - end - - should 'not save user whose email has been taken another in users secondary email' do - user1 = create_default_user - user2 = fast_create(User) - - user2.login = "another-login" - user2.email = "secondary@email.com" - user2.secondary_email = "noosfero@email.com" - assert !user2.save - end - - should 'not save user whose secondary email has been taken used in another users email' do - user1 = create_default_user - user2 = fast_create(User) - - user2.login = "another-login" - user2.email = "noosfero@email.com" - user2.secondary_email = "primary@email.com" assert !user2.save end - should 'not save user whose secondary email has already been used in another users secondary email' do - user1 = create_default_user - user2 = fast_create(User) - - user2.login = "another-login" - user2.email = "noosfero@email.com" - user2.secondary_email = "secondary@email.com" - assert !user2.save - end - - should 'not save user whose secondary email is in the wrong format' do - user = fast_create(User) - user.email = "test@email.com" - user.secondary_email = "notarightformat.com" - - assert !user.save - - user.secondary_email = "not@arightformatcom" - - assert !user.save - end - - should 'save more than one user without secondary email' do - user = fast_create(User) - user.email = "test@email.com" - user.secondary_email = "" - user.save - - user2 = fast_create(User) - user2.email = "test2@email.com" - user2.secondary_email = "" - assert user2.save - end - private def create_default_user user = fast_create(User) user.login = "a-login" user.email = "primary@email.com" - user.secondary_email = "secondary@email.com" user.save return user end - end diff --git a/src/noosfero-spb/gov_user/views/person_editor_extras.html.erb b/src/noosfero-spb/gov_user/views/person_editor_extras.html.erb index 9bdb55d..7c404e7 100644 --- a/src/noosfero-spb/gov_user/views/person_editor_extras.html.erb +++ b/src/noosfero-spb/gov_user/views/person_editor_extras.html.erb @@ -1,12 +1,3 @@ -
- <%= label_tag "user[secondary_email]", _('Secondary e-mail')+":", :class=>"formlabel" %> - -
- <%= text_field_tag "user[secondary_email]", context.profile.user.secondary_email %> -
-
- -
<%= label_tag "user[institution_ids]", _('Institutions'), :class=>"formlabel" %> diff --git a/src/noosfero-spb/software_communities/features/step_definitions/software_communities_steps.rb b/src/noosfero-spb/software_communities/features/step_definitions/software_communities_steps.rb index 5f4801d..4fbd4c2 100644 --- a/src/noosfero-spb/software_communities/features/step_definitions/software_communities_steps.rb +++ b/src/noosfero-spb/software_communities/features/step_definitions/software_communities_steps.rb @@ -236,10 +236,6 @@ Given /^I click on the last button with class "([^"]*)"$/ do |selector| evaluate_script "jQuery('#{selector}').last().trigger('click') && true" end -Given /^the user "([^"]*)" has "([^"]*)" as secondary e\-mail$/ do |login, email| - User[login].update_attributes(:secondary_email => email) -end - Given /^I click on anything with selector "([^"]*)"$/ do |selector| page.evaluate_script("jQuery('##{selector}').click();") end diff --git a/src/noosfero-spb/software_communities/lib/ext/profile_helper.rb b/src/noosfero-spb/software_communities/lib/ext/profile_helper.rb index 7268d4b..38d88ba 100644 --- a/src/noosfero-spb/software_communities/lib/ext/profile_helper.rb +++ b/src/noosfero-spb/software_communities/lib/ext/profile_helper.rb @@ -1,8 +1,7 @@ require_dependency 'profile_helper' module ProfileHelper - PERSON_CATEGORIES[:mpog_profile_information] = [:secondary_email, - :institutions] + PERSON_CATEGORIES[:mpog_profile_information] = [:institutions] def display_mpog_field(title, profile, field, force = false) unless force || profile.may_display_field_to?(field, user) -- libgit2 0.21.2