From 56346bc95beae1dd28123118a3f2315482e57c29 Mon Sep 17 00:00:00 2001 From: Braulio Bhavamitra Date: Mon, 2 Sep 2013 13:10:01 -0300 Subject: [PATCH] Set fields default to private --- app/models/person.rb | 3 ++- test/unit/person_test.rb | 32 +++++++++++++++----------------- 2 files changed, 17 insertions(+), 18 deletions(-) diff --git a/app/models/person.rb b/app/models/person.rb index aad72bc..8729394 100644 --- a/app/models/person.rb +++ b/app/models/person.rb @@ -471,8 +471,9 @@ class Person < Profile Scrap.find_by_sql("SELECT id, updated_at, '#{Scrap.to_s}' AS klass FROM #{Scrap.table_name} WHERE scraps.receiver_id = #{self.id} AND scraps.scrap_id IS NULL UNION SELECT id, updated_at, '#{ActionTracker::Record.to_s}' AS klass FROM #{ActionTracker::Record.table_name} WHERE action_tracker.user_id = #{self.id} and action_tracker.verb != 'leave_scrap_to_self' and action_tracker.verb != 'add_member_in_community' ORDER BY updated_at DESC") end + # by default, all fields are private def public_fields - self.fields_privacy.nil? ? self.active_fields : self.fields_privacy.reject{ |k, v| v != 'public' }.keys.map(&:to_s) + self.fields_privacy.nil? ? [] : self.fields_privacy.reject{ |k, v| v != 'public' }.keys.map(&:to_s) end protected diff --git a/test/unit/person_test.rb b/test/unit/person_test.rb index ad2b2db..96d8636 100644 --- a/test/unit/person_test.rb +++ b/test/unit/person_test.rb @@ -55,7 +55,7 @@ class PersonTest < ActiveSupport::TestCase p1 = u.person assert_equal u, p1.user - + p2 = Person.new(:environment => Environment.default) p2.user = u assert !p2.valid? @@ -202,7 +202,7 @@ class PersonTest < ActiveSupport::TestCase should 'have friends' do p1 = create_user('testuser1').person p2 = create_user('testuser2').person - + p1.add_friend(p2) p1.friends.reload @@ -237,7 +237,7 @@ class PersonTest < ActiveSupport::TestCase p2 = create_user('testuser2').person p3 = create_user('testuser3').person p4 = create_user('testuser4').person - + p1.add_friend(p2, 'group1') p1.add_friend(p3, 'group2') p1.add_friend(p4, 'group1') @@ -248,7 +248,7 @@ class PersonTest < ActiveSupport::TestCase should 'not suggest duplicated friend groups' do p1 = create_user('testuser1').person p2 = create_user('testuser2').person - + p1.add_friend(p2, 'friends') assert_equal p1.suggested_friend_groups, p1.suggested_friend_groups.uniq @@ -307,7 +307,7 @@ class PersonTest < ActiveSupport::TestCase assert_equal 'my contact', person.contact_information end - should 'provide desired info fields' do + should 'provide desired info fields' do p = Person.new(:environment => Environment.default) assert p.respond_to?(:photo) assert p.respond_to?(:address) @@ -472,7 +472,7 @@ class PersonTest < ActiveSupport::TestCase should 'require custom_area_of_study if area_of_study is others' do e = Environment.default e.expects(:required_person_fields).returns(['area_of_study', 'custom_area_of_study']).at_least_once - + person = Person.new(:environment => e, :area_of_study => 'Others') assert !person.valid? assert person.errors.invalid?(:custom_area_of_study) @@ -507,7 +507,7 @@ class PersonTest < ActiveSupport::TestCase should 'not require custom_formation if formation is not others' do e = Environment.default e.expects(:required_person_fields).returns(['formation']).at_least_once - + person = Person.new(:environment => e, :formation => 'Agrometeorology') assert !person.valid? assert ! person.errors.invalid?(:custom_formation) @@ -829,13 +829,13 @@ class PersonTest < ActiveSupport::TestCase assert !p1.is_a_friend?(p3) p1.add_friend(p4) assert p1.is_a_friend?(p4) - + action_tracker = fast_create(ActionTracker::Record) ActionTrackerNotification.delete_all count = ActionTrackerNotification.count Delayed::Job.destroy_all Person.notify_activity(action_tracker) - process_delayed_job_queue + process_delayed_job_queue assert_equal count + 3, ActionTrackerNotification.count ActionTrackerNotification.all.map{|a|a.profile}.map do |profile| [p1,p2,p4].include?(profile) @@ -853,7 +853,7 @@ class PersonTest < ActiveSupport::TestCase assert !p1.is_a_friend?(p3) p1.add_friend(p4) assert p1.is_a_friend?(p4) - + action_tracker = fast_create(ActionTracker::Record) assert_difference(Delayed::Job, :count, 1) do @@ -872,7 +872,7 @@ class PersonTest < ActiveSupport::TestCase assert !p1.is_a_friend?(p3) p1.add_friend(p4) assert p1.is_a_friend?(p4) - + action_tracker = fast_create(ActionTracker::Record) Delayed::Job.delete_all @@ -896,7 +896,7 @@ class PersonTest < ActiveSupport::TestCase assert p3.is_member_of?(community) assert !p2.is_member_of?(community) process_delayed_job_queue - + action_tracker = fast_create(ActionTracker::Record, :verb => 'create_article') action_tracker.target = community action_tracker.save! @@ -924,7 +924,7 @@ class PersonTest < ActiveSupport::TestCase community.add_member(p4) assert p4.is_member_of?(community) assert !p2.is_member_of?(community) - + action_tracker = fast_create(ActionTracker::Record) article = mock() action_tracker.stubs(:target).returns(article) @@ -1271,12 +1271,10 @@ class PersonTest < ActiveSupport::TestCase assert person.has_permission?('bli', Profile.new) end - should 'active fields are public if fields privacy is nil' do + should 'active fields are private if fields privacy is nil' do p = fast_create(Person) p.expects(:fields_privacy).returns(nil) - f = %w(sex birth_date) - p.expects(:active_fields).returns(f) - assert_equal f, p.public_fields + assert_equal [], p.public_fields end should 'return public fields' do -- libgit2 0.21.2