diff --git a/app/assets/javascripts/admin/models/admin_user.js b/app/assets/javascripts/admin/models/admin_user.js
index d005c14523..7e66e278ab 100644
--- a/app/assets/javascripts/admin/models/admin_user.js
+++ b/app/assets/javascripts/admin/models/admin_user.js
@@ -328,6 +328,48 @@ Discourse.AdminUser = Discourse.User.extend({
});
},
+ anonymizeForbidden: Em.computed.not("can_be_anonymized"),
+
+ anonymize: function() {
+ var user = this;
+
+ var performAnonymize = function() {
+ Discourse.ajax("/admin/users/" + user.get('id') + '/anonymize.json', {type: 'PUT'}).then(function(data) {
+ if (data.success) {
+ bootbox.alert(I18n.t("admin.user.anonymize_successful"));
+ if (data.username) {
+ document.location = "/admin/users/" + data.username;
+ } else {
+ document.location = "/admin/users/list/active";
+ }
+ } else {
+ bootbox.alert(I18n.t("admin.user.anonymize_failed"));
+ if (data.user) {
+ user.setProperties(data.user);
+ }
+ }
+ }, function() {
+ bootbox.alert(I18n.t("admin.user.anonymize_failed"));
+ });
+ };
+
+ var message = I18n.t("admin.user.anonymize_confirm");
+
+ var buttons = [{
+ "label": I18n.t("composer.cancel"),
+ "class": "cancel",
+ "link": true
+ }, {
+ "label": '' + I18n.t('admin.user.anonymize_yes'),
+ "class": "btn btn-danger",
+ "callback": function(){
+ performAnonymize();
+ }
+ }];
+
+ bootbox.dialog(message, buttons, {"classes": "delete-user-modal"});
+ },
+
deleteForbidden: Em.computed.not("canBeDeleted"),
deleteExplanation: function() {
diff --git a/app/assets/javascripts/admin/templates/user_index.hbs b/app/assets/javascripts/admin/templates/user_index.hbs
index 6c85c515eb..bd25465e13 100644
--- a/app/assets/javascripts/admin/templates/user_index.hbs
+++ b/app/assets/javascripts/admin/templates/user_index.hbs
@@ -450,6 +450,11 @@
+
+