From 0b904e82b55e735f1a0de672b7d49ed34a06374b Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Tue, 7 Nov 2017 16:36:15 +0100 Subject: [PATCH 1/2] Get user by id instead of loginname U4-9857 Umbraco 7.6 - Exception after changing user login name --- .../Security/MembershipProviderExtensions.cs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Core/Security/MembershipProviderExtensions.cs b/src/Umbraco.Core/Security/MembershipProviderExtensions.cs index 645de22ab8..85cc8dd814 100644 --- a/src/Umbraco.Core/Security/MembershipProviderExtensions.cs +++ b/src/Umbraco.Core/Security/MembershipProviderExtensions.cs @@ -37,11 +37,15 @@ namespace Umbraco.Core.Security var identity = Thread.CurrentPrincipal.GetUmbracoIdentity(); if (identity != null) { - var user = userService.GetByUsername(identity.Username); - var userIsAdmin = user.IsAdmin(); - if (userIsAdmin) + var userId = 0; + if(int.TryParse(identity.Id.ToString(), out userId)) { - canReset = true; + var user = userService.GetUserById(userId); + var userIsAdmin = user.IsAdmin(); + if (userIsAdmin) + { + canReset = true; + } } } } From 2538e2e9c9950d11a7444e9d7cac12444a1ce16c Mon Sep 17 00:00:00 2001 From: Shannon Date: Wed, 8 Nov 2017 16:06:23 +1100 Subject: [PATCH 2/2] additional null check --- .../Security/MembershipProviderExtensions.cs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Core/Security/MembershipProviderExtensions.cs b/src/Umbraco.Core/Security/MembershipProviderExtensions.cs index 85cc8dd814..ad39efdc06 100644 --- a/src/Umbraco.Core/Security/MembershipProviderExtensions.cs +++ b/src/Umbraco.Core/Security/MembershipProviderExtensions.cs @@ -37,14 +37,18 @@ namespace Umbraco.Core.Security var identity = Thread.CurrentPrincipal.GetUmbracoIdentity(); if (identity != null) { + //get the user id from the identity var userId = 0; if(int.TryParse(identity.Id.ToString(), out userId)) { var user = userService.GetUserById(userId); - var userIsAdmin = user.IsAdmin(); - if (userIsAdmin) + if (user != null) { - canReset = true; + var userIsAdmin = user.IsAdmin(); + if (userIsAdmin) + { + canReset = true; + } } } }