From 6b6e89e443a046c4d110427acda903f5d687736d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zolt=C3=A1n=20Leh=C3=B3czky?= Date: Fri, 28 Feb 2014 23:23:56 +0100 Subject: [PATCH] #20517: SMTP settings are now saved encrypted again. Applying fix by Jeff Olmstead. Work Item: 20517 --- .../Orchard.Email/Handlers/SmtpSettingsPartHandler.cs | 8 ++++++-- .../Modules/Orchard.Email/Models/SmtpSettingsPart.cs | 4 ++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/Orchard.Web/Modules/Orchard.Email/Handlers/SmtpSettingsPartHandler.cs b/src/Orchard.Web/Modules/Orchard.Email/Handlers/SmtpSettingsPartHandler.cs index ac5b97ce4..1810bc7e2 100644 --- a/src/Orchard.Web/Modules/Orchard.Email/Handlers/SmtpSettingsPartHandler.cs +++ b/src/Orchard.Web/Modules/Orchard.Email/Handlers/SmtpSettingsPartHandler.cs @@ -34,7 +34,8 @@ namespace Orchard.Email.Handlers { void LazyLoadHandlers(LoadContentContext context, SmtpSettingsPart part) { part.PasswordField.Getter(() => { try { - return String.IsNullOrWhiteSpace(part.Password) ? String.Empty : Encoding.UTF8.GetString(_encryptionService.Decode(Convert.FromBase64String(part.Password))); + var encryptedPassword = part.Retrieve(x => x.Password); + return String.IsNullOrWhiteSpace(encryptedPassword) ? String.Empty : Encoding.UTF8.GetString(_encryptionService.Decode(Convert.FromBase64String(encryptedPassword))); } catch { Logger.Error("The email password could not be decrypted. It might be corrupted, try to reset it."); @@ -42,7 +43,10 @@ namespace Orchard.Email.Handlers { } }); - part.PasswordField.Setter(value => part.Password = String.IsNullOrWhiteSpace(value) ? String.Empty : Convert.ToBase64String(_encryptionService.Encode(Encoding.UTF8.GetBytes(value)))); + part.PasswordField.Setter(value => { + var encryptedPassword = String.IsNullOrWhiteSpace(value) ? String.Empty : Convert.ToBase64String(_encryptionService.Encode(Encoding.UTF8.GetBytes(value))); + part.Store(x => x.Password, encryptedPassword); + }); } public Localizer T { get; set; } diff --git a/src/Orchard.Web/Modules/Orchard.Email/Models/SmtpSettingsPart.cs b/src/Orchard.Web/Modules/Orchard.Email/Models/SmtpSettingsPart.cs index fae0943aa..29bce5a4d 100644 --- a/src/Orchard.Web/Modules/Orchard.Email/Models/SmtpSettingsPart.cs +++ b/src/Orchard.Web/Modules/Orchard.Email/Models/SmtpSettingsPart.cs @@ -41,8 +41,8 @@ namespace Orchard.Email.Models { } public string Password { - get { return this.Retrieve(x => x.Password); } - set { this.Store(x => x.Password, value); } + get { return _password.Value; } + set { _password.Value = value; } } public bool IsValid() {