From aa41c41572b9b69612308b25a23c0348bab8edea Mon Sep 17 00:00:00 2001 From: r888888888 Date: Tue, 14 Feb 2017 12:46:54 -0800 Subject: [PATCH] fixes #2876: Changing approver/contributor privileges should log mod action --- app/controllers/admin/users_controller.rb | 7 ++----- app/logical/user_promotion.rb | 11 +++++++++++ app/presenters/user_presenter.rb | 4 ++-- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/app/controllers/admin/users_controller.rb b/app/controllers/admin/users_controller.rb index 5fd1fb833..f917eb6b1 100644 --- a/app/controllers/admin/users_controller.rb +++ b/app/controllers/admin/users_controller.rb @@ -9,11 +9,8 @@ module Admin def update @user = User.find(params[:id]) - @user.promote_to!( - params[:user][:level], - :can_approve_posts => params[:user][:can_approve_posts], - :can_upload_free => params[:user][:can_upload_free] - ) + promotion = UserPromotion.new(@user, CurrentUser.user, params[:user][:level], params[:user]) + promotion.promote! redirect_to edit_admin_user_path(@user), :notice => "User updated" end end diff --git a/app/logical/user_promotion.rb b/app/logical/user_promotion.rb index 891adf812..bc3283256 100644 --- a/app/logical/user_promotion.rb +++ b/app/logical/user_promotion.rb @@ -22,12 +22,23 @@ class UserPromotion create_user_feedback unless options[:skip_feedback] create_dmail unless options[:skip_dmail] update_saved_searches + create_mod_actions user.save end private + def create_mod_actions + if old_can_approve_posts != user.can_approve_posts? + ModAction.log("#{promoter.name} changed approval privileges for #{user.name} from #{old_can_approve_posts} to [b]#{user.can_approve_posts?}[/b]") + end + + if old_can_upload_free != user.can_upload_free? + ModAction.log("#{promoter.name} changed unlimited upload privileges for #{user.name} from #{old_can_upload_free} to [b]#{user.can_upload_free?}[/b]") + end + end + def validate # admins can do anything return if promoter.is_admin? diff --git a/app/presenters/user_presenter.rb b/app/presenters/user_presenter.rb index bb0504a92..5d14e6c3c 100644 --- a/app/presenters/user_presenter.rb +++ b/app/presenters/user_presenter.rb @@ -47,7 +47,7 @@ class UserPresenter if !SavedSearch.enabled? return Post.where("false") end - + ids = SavedSearch.post_ids(CurrentUser.user.id, category) if ids.any? @@ -81,7 +81,7 @@ class UserPresenter if user.can_upload_free? return "none" end - + dcon = [user.deletion_confidence(60), 15].min multiplier = (1 - (dcon / 15.0)) max_count = [(user.base_upload_limit * multiplier).ceil, 5].max