From ce05b43c1d8151ebea2a135b0021d6d981aee12f Mon Sep 17 00:00:00 2001 From: Neil Lalonde Date: Thu, 8 Aug 2013 12:34:42 -0400 Subject: [PATCH] Fix delete user button on admin/user page so it's enabled at the right times, and update its title attribute to be more helpful --- app/assets/javascripts/admin/models/admin_user.js | 4 ++-- app/models/site_setting.rb | 2 +- config/locales/client.en.yml | 4 +++- test/javascripts/fixtures/site_settings_fixtures.js | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/app/assets/javascripts/admin/models/admin_user.js b/app/assets/javascripts/admin/models/admin_user.js index 6f836cbf3ad..31d8eed77e5 100644 --- a/app/assets/javascripts/admin/models/admin_user.js +++ b/app/assets/javascripts/admin/models/admin_user.js @@ -202,12 +202,12 @@ Discourse.AdminUser = Discourse.User.extend({ }, deleteForbidden: function() { - return (this.get('post_count') > 0); + return (!this.get('can_be_deleted') || this.get('post_count') > 0); }.property('post_count'), deleteButtonTitle: function() { if (this.get('deleteForbidden')) { - return I18n.t('admin.user.delete_forbidden'); + return I18n.t('admin.user.delete_forbidden', {count: Discourse.SiteSettings.delete_user_max_age}); } else { return null; } diff --git a/app/models/site_setting.rb b/app/models/site_setting.rb index e0376d76a18..8f226d1ad4f 100644 --- a/app/models/site_setting.rb +++ b/app/models/site_setting.rb @@ -236,7 +236,7 @@ class SiteSetting < ActiveRecord::Base client_setting(:relative_date_duration, 14) - setting(:delete_user_max_age, 7) + client_setting(:delete_user_max_age, 7) setting(:delete_all_posts_max, 10) diff --git a/config/locales/client.en.yml b/config/locales/client.en.yml index 9dd23e1238b..2d24c5f315f 100644 --- a/config/locales/client.en.yml +++ b/config/locales/client.en.yml @@ -1265,7 +1265,9 @@ en: and notified." time_read: "Read Time" delete: "Delete User" - delete_forbidden: "This user can't be deleted because there are posts. Delete all this user's posts first." + delete_forbidden: + one: "Users can't be deleted if they registered more than %{count} day ago, or if they have posts. Delete all posts before trying to delete a user." + other: "Users can't be deleted if they registered more than %{count} days ago, or if they have posts. Delete all posts before trying to delete a user." delete_confirm: "Are you SURE you want to permanently delete this user from the site? This action is permanent!" delete_and_block: "Yes, and block signups with the same email address" delete_dont_block: "Yes, and allow signups with the same email address" diff --git a/test/javascripts/fixtures/site_settings_fixtures.js b/test/javascripts/fixtures/site_settings_fixtures.js index 8cfed610824..f8c707db4d3 100644 --- a/test/javascripts/fixtures/site_settings_fixtures.js +++ b/test/javascripts/fixtures/site_settings_fixtures.js @@ -1,3 +1,3 @@ /*jshint maxlen:10000000 */ -Discourse.SiteSettingsOriginal = {"title":"Discourse Meta","logo_url":"/assets/logo.png","logo_small_url":"/assets/logo-single.png","traditional_markdown_linebreaks":false,"top_menu":"latest|new|unread|read|favorited|categories","post_menu":"like|edit|flag|delete|share|bookmark|reply","share_links":"twitter|facebook|google+|email","track_external_right_clicks":false,"must_approve_users":false,"ga_tracking_code":"UA-33736483-2","ga_domain_name":"","enable_long_polling":true,"polling_interval":3000,"anon_polling_interval":30000,"min_post_length":20,"max_post_length":16000,"min_topic_title_length":15,"max_topic_title_length":255,"min_private_message_title_length":2,"allow_uncategorized_topics":true,"min_search_term_length":3,"flush_timings_secs":5,"suppress_reply_directly_below":true,"email_domains_blacklist":"mailinator.com","email_domains_whitelist":null,"version_checks":true,"min_title_similar_length":10,"min_body_similar_length":15,"category_colors":"BF1E2E|F1592A|F7941D|9EB83B|3AB54A|12A89D|25AAE2|0E76BD|652D90|92278F|ED207B|8C6238|231F20|808281|B3B5B4|283890","max_upload_size_kb":1024,"category_featured_topics":6,"favicon_url":"/assets/favicon.ico","dynamic_favicon":false,"uncategorized_name":"uncategorized","uncategorized_color":"AB9364","uncategorized_text_color":"FFFFFF","invite_only":false,"login_required":false,"enable_local_logins":true,"enable_local_account_create":true,"enable_google_logins":true,"enable_yahoo_logins":true,"enable_twitter_logins":true,"enable_facebook_logins":true,"enable_cas_logins":false,"enable_github_logins":true,"enable_persona_logins":true,"educate_until_posts":2,"topic_views_heat_low":1000,"topic_views_heat_medium":2000,"topic_views_heat_high":5000,"min_private_message_post_length":5,"faq_url":"","tos_url":"","privacy_policy_url":"","authorized_extensions":".jpg|.jpeg|.png|.gif|.txt","relative_date_duration":14,"delete_removed_posts_after":24}; +Discourse.SiteSettingsOriginal = {"title":"Discourse Meta","logo_url":"/assets/logo.png","logo_small_url":"/assets/logo-single.png","traditional_markdown_linebreaks":false,"top_menu":"latest|new|unread|read|favorited|categories","post_menu":"like|edit|flag|delete|share|bookmark|reply","share_links":"twitter|facebook|google+|email","track_external_right_clicks":false,"must_approve_users":false,"ga_tracking_code":"UA-33736483-2","ga_domain_name":"","enable_long_polling":true,"polling_interval":3000,"anon_polling_interval":30000,"min_post_length":20,"max_post_length":16000,"min_topic_title_length":15,"max_topic_title_length":255,"min_private_message_title_length":2,"allow_uncategorized_topics":true,"min_search_term_length":3,"flush_timings_secs":5,"suppress_reply_directly_below":true,"email_domains_blacklist":"mailinator.com","email_domains_whitelist":null,"version_checks":true,"min_title_similar_length":10,"min_body_similar_length":15,"category_colors":"BF1E2E|F1592A|F7941D|9EB83B|3AB54A|12A89D|25AAE2|0E76BD|652D90|92278F|ED207B|8C6238|231F20|808281|B3B5B4|283890","max_upload_size_kb":1024,"category_featured_topics":6,"favicon_url":"/assets/favicon.ico","dynamic_favicon":false,"uncategorized_name":"uncategorized","uncategorized_color":"AB9364","uncategorized_text_color":"FFFFFF","invite_only":false,"login_required":false,"enable_local_logins":true,"enable_local_account_create":true,"enable_google_logins":true,"enable_yahoo_logins":true,"enable_twitter_logins":true,"enable_facebook_logins":true,"enable_cas_logins":false,"enable_github_logins":true,"enable_persona_logins":true,"educate_until_posts":2,"topic_views_heat_low":1000,"topic_views_heat_medium":2000,"topic_views_heat_high":5000,"min_private_message_post_length":5,"faq_url":"","tos_url":"","privacy_policy_url":"","authorized_extensions":".jpg|.jpeg|.png|.gif|.txt","relative_date_duration":14,"delete_removed_posts_after":24,"delete_user_max_age":7}; Discourse.SiteSettings = jQuery.extend(true, {}, Discourse.SiteSettingsOriginal);