From 8d291efedd90d0aa43048caff0de8b31cd7dd96c Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Sun, 4 Sep 2016 11:44:16 +0200 Subject: [PATCH] In the spirit of DRY: centralized IsAdmin() check in an extension method Made sure that non-admins can't trigger the enable/disable URL tracker endpoint Renamed "admin" in GetEnableState to "isUserAdmin" for clarity --- src/Umbraco.Core/Models/UserExtensions.cs | 17 ++++++++++++++--- .../developer/redirecturls.controller.js | 4 ++-- .../views/dashboard/developer/redirecturls.html | 2 +- .../Editors/RedirectUrlManagementController.cs | 16 ++++++++++++++-- .../Editors/UpdateCheckController.cs | 6 ++---- src/umbraco.businesslogic/User.cs | 3 ++- 6 files changed, 35 insertions(+), 13 deletions(-) diff --git a/src/Umbraco.Core/Models/UserExtensions.cs b/src/Umbraco.Core/Models/UserExtensions.cs index 5b9f63cf48..ece63b4889 100644 --- a/src/Umbraco.Core/Models/UserExtensions.cs +++ b/src/Umbraco.Core/Models/UserExtensions.cs @@ -1,8 +1,5 @@ using System; using System.Globalization; -using System.Linq; -using System.Threading; -using Umbraco.Core.Models.Identity; using Umbraco.Core.Models.Membership; using Umbraco.Core.Services; @@ -83,5 +80,19 @@ namespace Umbraco.Core.Models if (media == null) throw new ArgumentNullException("media"); return HasPathAccess(media.Path, user.StartMediaId, Constants.System.RecycleBinMedia); } + + + /// + /// Determines whether this user is an admin. + /// + /// + /// + /// true if this user is admin; otherwise, false. + /// + public static bool IsAdmin(this IUser user) + { + if (user == null) throw new ArgumentNullException("user"); + return user.UserType.Alias == "admin"; + } } } \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/src/views/dashboard/developer/redirecturls.controller.js b/src/Umbraco.Web.UI.Client/src/views/dashboard/developer/redirecturls.controller.js index 98e7ea6b1e..2d34974d7c 100644 --- a/src/Umbraco.Web.UI.Client/src/views/dashboard/developer/redirecturls.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/dashboard/developer/redirecturls.controller.js @@ -15,7 +15,7 @@ searchTerm: "", loading: false, urlTrackerDisabled: false, - admin: false + userIsAdmin: false }; vm.pagination = { @@ -43,7 +43,7 @@ vm.dashboard.loading = true; return redirectUrlsResource.getEnableState().then(function (response) { vm.dashboard.urlTrackerDisabled = response.enabled !== true; - vm.dashboard.admin = response.admin; + vm.dashboard.userIsAdmin = response.userIsAdmin; vm.dashboard.loading = false; }); } diff --git a/src/Umbraco.Web.UI.Client/src/views/dashboard/developer/redirecturls.html b/src/Umbraco.Web.UI.Client/src/views/dashboard/developer/redirecturls.html index c885a77997..c083f9a429 100644 --- a/src/Umbraco.Web.UI.Client/src/views/dashboard/developer/redirecturls.html +++ b/src/Umbraco.Web.UI.Client/src/views/dashboard/developer/redirecturls.html @@ -6,7 +6,7 @@ - +