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 @@

+ +