From ec42b61a4d7d2f3385d247af1b2daa42c6db6906 Mon Sep 17 00:00:00 2001 From: Neil Lalonde Date: Fri, 29 Aug 2014 12:33:34 -0400 Subject: [PATCH] FIX: suspended users cannot be trust level 3 --- .../user_leader_requirements.js.handlebars | 3 +++ app/models/leader_requirements.rb | 20 ++++++++++--------- spec/models/leader_requirements_spec.rb | 10 ++++++++++ 3 files changed, 24 insertions(+), 9 deletions(-) diff --git a/app/assets/javascripts/admin/templates/user_leader_requirements.js.handlebars b/app/assets/javascripts/admin/templates/user_leader_requirements.js.handlebars index 7dc458a614f..d5fda53129b 100644 --- a/app/assets/javascripts/admin/templates/user_leader_requirements.js.handlebars +++ b/app/assets/javascripts/admin/templates/user_leader_requirements.js.handlebars @@ -98,6 +98,9 @@ {{/unless}} {{else}} {{i18n admin.user.tl3_requirements.does_not_qualify}} + {{#if suspended}} + {{i18n user.suspended_notice date="suspendedTillDate"}} + {{/if}} {{/if}}

diff --git a/app/models/leader_requirements.rb b/app/models/leader_requirements.rb index 1e25c1b04f3..052a7bed9da 100644 --- a/app/models/leader_requirements.rb +++ b/app/models/leader_requirements.rb @@ -23,19 +23,21 @@ class LeaderRequirements end def requirements_met? + !@user.suspended? && days_visited >= min_days_visited && - num_topics_replied_to >= min_topics_replied_to && - topics_viewed >= min_topics_viewed && - posts_read >= min_posts_read && - num_flagged_posts <= max_flagged_posts && - num_flagged_by_users <= max_flagged_by_users && - topics_viewed_all_time >= min_topics_viewed_all_time && - posts_read_all_time >= min_posts_read_all_time && - num_likes_given >= min_likes_given && - num_likes_received >= min_likes_received + num_topics_replied_to >= min_topics_replied_to && + topics_viewed >= min_topics_viewed && + posts_read >= min_posts_read && + num_flagged_posts <= max_flagged_posts && + num_flagged_by_users <= max_flagged_by_users && + topics_viewed_all_time >= min_topics_viewed_all_time && + posts_read_all_time >= min_posts_read_all_time && + num_likes_given >= min_likes_given && + num_likes_received >= min_likes_received end def requirements_lost? + @user.suspended? || days_visited < min_days_visited * LOW_WATER_MARK || num_topics_replied_to < min_topics_replied_to * LOW_WATER_MARK || topics_viewed < min_topics_viewed * LOW_WATER_MARK || diff --git a/spec/models/leader_requirements_spec.rb b/spec/models/leader_requirements_spec.rb index 4086bfade38..ee3477d24ea 100644 --- a/spec/models/leader_requirements_spec.rb +++ b/spec/models/leader_requirements_spec.rb @@ -280,6 +280,16 @@ describe LeaderRequirements do leader_requirements.stubs(:num_likes_received).returns(17) leader_requirements.requirements_lost?.should == true end + + it "are not met if suspended" do + user.stubs(:suspended?).returns(true) + leader_requirements.requirements_met?.should == false + end + + it "are lost if suspended" do + user.stubs(:suspended?).returns(true) + leader_requirements.requirements_lost?.should == true + end end end