diff --git a/Changelog.md b/Changelog.md index 28bf7b9a5..146a3f519 100644 --- a/Changelog.md +++ b/Changelog.md @@ -135,6 +135,7 @@ diaspora.yml file**. The existing settings from 0.4.x and before will not work a * Fix code overflow for the mobile website [#5675](https://github.com/diaspora/diaspora/pull/5675) * Strip Unicode format characters prior post processing [#5680](https://github.com/diaspora/diaspora/pull/5680) * Disable email notifications for closed user accounts [#5640](https://github.com/diaspora/diaspora/pull/5640) +* Total user statistic no longer includes closed accounts [#5041](https://github.com/diaspora/diaspora/pull/5041) ## Features * Don't pull jQuery from a CDN by default [#5105](https://github.com/diaspora/diaspora/pull/5105) diff --git a/app/models/user.rb b/app/models/user.rb index 8c2810e75..74c8a6ffa 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -526,6 +526,11 @@ class User < ActiveRecord::Base end end + + def self.total_users + User.joins(:person).where(:people => {:closed_account => false}).where.not(:username => nil) + end + private def clearable_fields self.attributes.keys - ["id", "username", "encrypted_password", diff --git a/app/presenters/statistics_presenter.rb b/app/presenters/statistics_presenter.rb index dd766f02c..d07913e3d 100644 --- a/app/presenters/statistics_presenter.rb +++ b/app/presenters/statistics_presenter.rb @@ -122,4 +122,4 @@ class StatisticsPresenter } end -end \ No newline at end of file +end diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 37ad3a8e0..80b024cc1 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -1089,5 +1089,18 @@ describe User, :type => :model do @user.after_database_authentication expect(@user.remove_after).to eq(nil) end + + describe "total_users" do + before do + @user1 = FactoryGirl.build(:user, :username => nil) + @user1.save(:validate => false) + @user2 = FactoryGirl.create(:user) + @user2.person.closed_account = true + @user2.save + end + + it "returns total_users excluding closed accounts & users without usernames" do + expect(User.total_users.count).to eq 5 #5 users from fixtures + end end end diff --git a/spec/presenters/statistics_presenter_spec.rb b/spec/presenters/statistics_presenter_spec.rb index 1dd94dff1..354ad0031 100644 --- a/spec/presenters/statistics_presenter_spec.rb +++ b/spec/presenters/statistics_presenter_spec.rb @@ -51,8 +51,8 @@ describe StatisticsPresenter do "name" => AppConfig.settings.pod_name, "network" => "Diaspora", "version" => AppConfig.version_string, - "registrations_open" => AppConfig.settings.enable_registrations?, - "total_users" => User.count, + "registrations_open" => AppConfig.settings.enable_registrations, + "total_users" => User.total_users.count, "active_users_halfyear" => User.halfyear_actives.count, "active_users_monthly" => User.monthly_actives.count, "local_posts" => @presenter.local_posts,