From dd720c39d76a9e044555cfc501ce2776ff6e712a Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Sat, 19 Jan 2013 19:10:27 +0100 Subject: [PATCH] Prevent a user to disable its own account. fix #361 --- modoboa/admin/forms.py | 2 ++ modoboa/admin/static/admin/js/admin.js | 6 +++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/modoboa/admin/forms.py b/modoboa/admin/forms.py index 8fd5ec40d..958a0f997 100644 --- a/modoboa/admin/forms.py +++ b/modoboa/admin/forms.py @@ -453,6 +453,8 @@ class AccountFormGeneral(forms.ModelForm): def save(self, commit=True): account = super(AccountFormGeneral, self).save(commit=False) + if self.user == account and not self.cleaned_data["is_active"]: + raise AdminError(_("You can't disable your own account")) if commit: if self.cleaned_data["password1"] != "": account.set_password(self.cleaned_data["password1"]) diff --git a/modoboa/admin/static/admin/js/admin.js b/modoboa/admin/static/admin/js/admin.js index b0cdff044..4e6b872f5 100644 --- a/modoboa/admin/static/admin/js/admin.js +++ b/modoboa/admin/static/admin/js/admin.js @@ -124,7 +124,7 @@ Domains.prototype = { $(".submit").one('click', $.proxy(function(e) { simple_ajax_form_post(e, { formid: "domform", - error_cb: this.domainform_cb, + error_cb: $.proxy(this.domainform_cb, this), reload_on_success: false, success_cb: $.proxy(this.reload_listing, this) }); @@ -258,7 +258,7 @@ Identities.prototype = { $('.submit').one('click', $.proxy(function(e) { simple_ajax_form_post(e, { formid: "accountform", - error_cb: this.editaccount_cb, + error_cb: $.proxy(this.editaccount_cb, this), reload_on_success: false, success_cb: $.proxy(this.reload_listing, this) }); @@ -277,7 +277,7 @@ Identities.prototype = { $(".submit").one('click', $.proxy(function(e) { simple_ajax_form_post(e, { formid: "aliasform", - error_cb: this.aliasform_cb, + error_cb: $.proxy(this.aliasform_cb, this), reload_on_success: false, success_cb: $.proxy(this.reload_listing, this) });