diff --git a/app/assets/javascripts/admin/templates/modal/admin_suspend_user.js.handlebars b/app/assets/javascripts/admin/templates/modal/admin_suspend_user.js.handlebars
index bc70d42c82..735396ad91 100644
--- a/app/assets/javascripts/admin/templates/modal/admin_suspend_user.js.handlebars
+++ b/app/assets/javascripts/admin/templates/modal/admin_suspend_user.js.handlebars
@@ -2,9 +2,9 @@
diff --git a/app/assets/javascripts/discourse/models/user.js b/app/assets/javascripts/discourse/models/user.js
index 09a7ee2090..6316e4f788 100644
--- a/app/assets/javascripts/discourse/models/user.js
+++ b/app/assets/javascripts/discourse/models/user.js
@@ -97,6 +97,12 @@ Discourse.User = Discourse.Model.extend({
return Discourse.Site.currentProp('trustLevels').findProperty('id', parseInt(this.get('trust_level'), 10));
}.property('trust_level'),
+ isSuspended: Em.computed.equal('suspended', true),
+
+ suspendedTillDate: function() {
+ return Discourse.Formatter.longDate(this.get('suspended_till'));
+ }.property('suspended_till'),
+
/**
Changes this user's username.
diff --git a/app/assets/javascripts/discourse/templates/user/user.js.handlebars b/app/assets/javascripts/discourse/templates/user/user.js.handlebars
index 535d7f8338..89de4df924 100644
--- a/app/assets/javascripts/discourse/templates/user/user.js.handlebars
+++ b/app/assets/javascripts/discourse/templates/user/user.js.handlebars
@@ -42,6 +42,14 @@
{{name}}
{{{bio_excerpt}}}
+
+ {{#if isSuspended}}
+
+
+ {{i18n user.suspended_notice date="suspendedTillDate"}}
+ {{i18n user.suspended_reason}} {{suspend_reason}}
+
+ {{/if}}
diff --git a/app/assets/stylesheets/desktop/user.scss b/app/assets/stylesheets/desktop/user.scss
index e6c85335ce..2c29326bbd 100644
--- a/app/assets/stylesheets/desktop/user.scss
+++ b/app/assets/stylesheets/desktop/user.scss
@@ -166,6 +166,10 @@
background-color: white;
}
+ .suspended {
+ color: #f77;
+ }
+
.primary {
margin-top: 20px;
float: left;
diff --git a/app/serializers/user_serializer.rb b/app/serializers/user_serializer.rb
index 4533d320bc..38be5f6061 100644
--- a/app/serializers/user_serializer.rb
+++ b/app/serializers/user_serializer.rb
@@ -17,7 +17,10 @@ class UserSerializer < BasicUserSerializer
:trust_level,
:moderator,
:admin,
- :title
+ :title,
+ :suspended,
+ :suspend_reason,
+ :suspended_till
has_one :invited_by, embed: :object, serializer: BasicUserSerializer
@@ -96,4 +99,18 @@ class UserSerializer < BasicUserSerializer
SiteSetting.enable_names?
end
+ def suspended
+ object.suspended?
+ end
+
+ def include_suspended?
+ object.suspended?
+ end
+ def include_suspend_reason?
+ object.suspended?
+ end
+ def include_suspended_till?
+ object.suspended?
+ end
+
end
diff --git a/config/locales/client.en.yml b/config/locales/client.en.yml
index aeb4c6f8df..7fa6f06f25 100644
--- a/config/locales/client.en.yml
+++ b/config/locales/client.en.yml
@@ -216,6 +216,8 @@ en:
moderator: "{{user}} is a moderator"
admin: "{{user}} is an admin"
deleted: "(deleted)"
+ suspended_notice: "This user is suspended until {{date}}."
+ suspended_reason: "Reason: "
messages:
all: "All"
@@ -1339,9 +1341,9 @@ en:
user:
suspend_failed: "Something went wrong suspending this user {{error}}"
unsuspend_failed: "Something went wrong unsuspending this user {{error}}"
- suspend_duration: "How long would you like to suspend the user for?"
+ suspend_duration: "How long will the user be suspended for?"
suspend_duration_units: "(days)"
- suspend_reason_label: "Why are you suspending? When the user tries to log in, they will see this text. Keep it short."
+ suspend_reason_label: "Why are you suspending? This text will be visible to everyone on this user's profile page, and will be shown to the user when they try to log in. Keep it short."
suspend_reason: "Reason"
suspended_by: "Suspended by"
delete_all_posts: "Delete all posts"