From 9ac2d04aeab8c18c298aeff46067114159960bfd Mon Sep 17 00:00:00 2001 From: Shannon Date: Wed, 16 Mar 2016 17:52:08 +0100 Subject: [PATCH] User and User type from the old businesslogic assembly are GONE! --- src/Umbraco.Core/Services/UserService.cs | 23 +- .../Services/UserServiceExtensions.cs | 13 + .../PublishedMediaCacheTests.cs | 8 +- .../PublishedContent/PublishedMediaTests.cs | 12 +- .../config/ClientDependency.config | 2 +- src/Umbraco.Web.UI/umbraco/Create.aspx.cs | 2 +- .../umbraco/create/User.ascx.cs | 5 +- .../umbraco/developer/Macros/editMacro.aspx | 2 +- .../umbraco/dialogs/ChangeDocType.aspx.cs | 2 +- .../umbraco/dialogs/viewAuditTrail.aspx | 3 +- src/Umbraco.Web/Editors/ContentController.cs | 6 +- .../Editors/CurrentUserController.cs | 1 - src/Umbraco.Web/Editors/LegacyController.cs | 6 +- src/Umbraco.Web/Editors/MediaController.cs | 2 +- src/Umbraco.Web/Editors/SectionController.cs | 2 +- src/Umbraco.Web/LegacyActions/Action.cs | 18 + .../Mvc/UmbracoAuthorizedController.cs | 19 - .../NotificationServiceExtensions.cs | 3 +- .../PublishedContentCache.cs | 2 +- src/Umbraco.Web/Security/WebSecurity.cs | 20 +- .../Trees/ContentTreeController.cs | 7 +- .../Trees/ContentTreeControllerBase.cs | 5 +- src/Umbraco.Web/UI/LegacyDialogHandler.cs | 14 +- src/Umbraco.Web/UI/LegacyDialogTask.cs | 7 +- .../UI/Pages/UmbracoEnsuredPage.cs | 21 +- src/Umbraco.Web/UmbracoContext.cs | 17 +- .../WebApi/UmbracoAuthorizedApiController.cs | 21 - .../WebServices/DomainsApiController.cs | 6 +- .../WebServices/EmbedMediaService.cs | 3 +- .../UmbracoAuthorizedHttpHandler.cs | 22 +- .../UmbracoAuthorizedWebService.cs | 23 +- .../umbraco/Trees/UserPermissions.cs | 7 +- .../umbraco/Trees/loadTranslationTasks.cs | 21 +- .../umbraco/Trees/loadUsers.cs | 16 +- .../umbraco/actions/delete.aspx.cs | 2 +- .../umbraco/create/XsltTasks.cs | 2 +- .../umbraco/create/dialogHandler_temp.cs | 4 +- .../umbraco/create/language.ascx.cs | 2 +- .../umbraco/create/script.ascx.cs | 2 +- .../umbraco/create/simple.ascx.cs | 2 +- .../umbraco/create/userTasks.cs | 5 +- .../umbraco/create/xslt.ascx.cs | 2 +- .../Packages/installedPackage.aspx.cs | 6 +- .../developer/Packages/installer.aspx.cs | 4 +- .../umbraco/dialogs/AssignDomain2.aspx.cs | 3 +- .../umbraco/dialogs/Preview.aspx.cs | 4 +- .../umbraco/dialogs/create.aspx.cs | 5 +- .../umbraco/dialogs/cruds.aspx.cs | 18 +- .../umbraco/dialogs/moveOrCopy.aspx.cs | 8 +- .../umbraco/dialogs/notifications.aspx.cs | 12 +- .../umbraco/dialogs/protectPage.aspx.cs | 2 +- .../umbraco/dialogs/search.aspx.cs | 4 +- .../umbraco/dialogs/sendToTranslation.aspx.cs | 23 +- .../umbraco/dialogs/viewAuditTrail.aspx | 3 +- .../umbraco/preview/PreviewContent.cs | 25 +- .../umbraco/templateControls/Item.cs | 10 +- .../umbraco/translation/default.aspx.cs | 6 +- .../umbraco/translation/xml.aspx.cs | 2 +- .../umbraco/users/EditUser.aspx.cs | 2 +- .../umbraco/users/NodePermissions.ascx.cs | 7 +- .../umbraco/users/PermissionEditor.aspx.cs | 14 +- .../umbraco/users/PermissionsHandler.asmx.cs | 2 +- .../umbraco/users/UserPermissions.cs | 17 +- .../webservices/legacyAjaxCalls.asmx.cs | 17 +- src/umbraco.businesslogic/User.cs | 928 ------------------ src/umbraco.businesslogic/UserType.cs | 259 ----- .../umbraco.businesslogic.csproj | 6 - src/umbraco.cms/businesslogic/CMSNode.cs | 10 +- .../businesslogic/Packager/Installer.cs | 6 +- .../businesslogic/Packager/Package.cs | 6 +- .../PackageActions/publishRootDocument.cs | 3 +- src/umbraco.cms/businesslogic/Permission.cs | 24 +- src/umbraco.cms/businesslogic/media/Media.cs | 12 +- .../businesslogic/media/MediaType.cs | 20 +- .../businesslogic/member/Member.cs | 8 +- .../businesslogic/member/MemberGroup.cs | 7 +- .../businesslogic/member/MemberType.cs | 7 +- src/umbraco.cms/businesslogic/task/Task.cs | 23 +- .../businesslogic/template/Template.cs | 12 +- src/umbraco.cms/businesslogic/web/Document.cs | 18 +- .../businesslogic/web/DocumentType.cs | 15 +- .../businesslogic/web/DocumentVersionList.cs | 8 +- .../businesslogic/web/StyleSheet.cs | 7 +- .../businesslogic/web/StylesheetProperty.cs | 3 +- .../businesslogic/workflow/Notification.cs | 42 +- 85 files changed, 367 insertions(+), 1613 deletions(-) delete mode 100644 src/umbraco.businesslogic/User.cs delete mode 100644 src/umbraco.businesslogic/UserType.cs diff --git a/src/Umbraco.Core/Services/UserService.cs b/src/Umbraco.Core/Services/UserService.cs index 7c6f9e3c59..64dfc8f601 100644 --- a/src/Umbraco.Core/Services/UserService.cs +++ b/src/Umbraco.Core/Services/UserService.cs @@ -747,11 +747,24 @@ namespace Umbraco.Core.Services var missingIds = nodeIds.Except(result.Select(x => x.EntityId)); foreach (var id in missingIds) { - result.Add( - new EntityPermission( - user.Id, - id, - user.DefaultPermissions.ToArray())); + if (id == -1 && user.DefaultPermissions.Any() == false) + { + // exception to everything. If default cruds is empty and we're on root node; allow browse of root node + result.Add( + new EntityPermission( + user.Id, + id, + user.DefaultPermissions.ToArray())); + } + else + { + //use the user's user type permissions + result.Add( + new EntityPermission( + user.Id, + id, + user.DefaultPermissions.ToArray())); + } } return result; diff --git a/src/Umbraco.Core/Services/UserServiceExtensions.cs b/src/Umbraco.Core/Services/UserServiceExtensions.cs index afb679afa1..b78d66cbf5 100644 --- a/src/Umbraco.Core/Services/UserServiceExtensions.cs +++ b/src/Umbraco.Core/Services/UserServiceExtensions.cs @@ -1,4 +1,5 @@ using System; +using System.Linq; using System.Web.Security; using Umbraco.Core.Models.Membership; @@ -6,6 +7,18 @@ namespace Umbraco.Core.Services { internal static class UserServiceExtensions { + public static EntityPermission GetPermissions(this IUserService userService, IUser user, string path) + { + var ids = path.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries) + .Select(x => x.TryConvertTo()) + .Where(x => x.Success) + .Select(x => x.Result) + .ToArray(); + if (ids.Length == 0) throw new InvalidOperationException("The path: " + path + " could not be parsed into an array of integers or the path was empty"); + + return userService.GetPermissions(user, ids[ids.Length - 1]).FirstOrDefault(); + } + /// /// Remove all permissions for this user for all nodes specified /// diff --git a/src/Umbraco.Tests/Cache/PublishedCache/PublishedMediaCacheTests.cs b/src/Umbraco.Tests/Cache/PublishedCache/PublishedMediaCacheTests.cs index c2b4934de9..87aaa3d84a 100644 --- a/src/Umbraco.Tests/Cache/PublishedCache/PublishedMediaCacheTests.cs +++ b/src/Umbraco.Tests/Cache/PublishedCache/PublishedMediaCacheTests.cs @@ -37,8 +37,8 @@ namespace Umbraco.Tests.Cache.PublishedCache [Test] public void Get_Root_Docs() { - var user = new User(0); - var mType = global::umbraco.cms.businesslogic.media.MediaType.MakeNew(user, "TestMediaType"); + var user = ServiceContext.UserService.GetUserById(0); + var mType = global::umbraco.cms.businesslogic.media.MediaType.MakeNew(user, "TestMediaType"); var mRoot1 = global::umbraco.cms.businesslogic.media.Media.MakeNew("MediaRoot1", mType, user, -1); var mRoot2 = global::umbraco.cms.businesslogic.media.Media.MakeNew("MediaRoot2", mType, user, -1); var mChild1 = global::umbraco.cms.businesslogic.media.Media.MakeNew("Child1", mType, user, mRoot1.Id); @@ -55,8 +55,8 @@ namespace Umbraco.Tests.Cache.PublishedCache [Test] public void Get_Item_Without_Examine() { - var user = new User(0); - var mType = global::umbraco.cms.businesslogic.media.MediaType.MakeNew(user, "TestMediaType"); + var user = ServiceContext.UserService.GetUserById(0); + var mType = global::umbraco.cms.businesslogic.media.MediaType.MakeNew(user, "TestMediaType"); var mRoot = global::umbraco.cms.businesslogic.media.Media.MakeNew("MediaRoot", mType, user, -1); var mChild1 = global::umbraco.cms.businesslogic.media.Media.MakeNew("Child1", mType, user, mRoot.Id); var publishedMedia = PublishedMediaTests.GetNode(mRoot.Id, GetUmbracoContext("/test", 1234)); diff --git a/src/Umbraco.Tests/PublishedContent/PublishedMediaTests.cs b/src/Umbraco.Tests/PublishedContent/PublishedMediaTests.cs index 379832518a..ff59bac94a 100644 --- a/src/Umbraco.Tests/PublishedContent/PublishedMediaTests.cs +++ b/src/Umbraco.Tests/PublishedContent/PublishedMediaTests.cs @@ -292,7 +292,7 @@ namespace Umbraco.Tests.PublishedContent [Test] public void Children_Without_Examine() { - var user = new User(0); + var user = ServiceContext.UserService.GetUserById(0); var mType = global::umbraco.cms.businesslogic.media.MediaType.MakeNew(user, "TestMediaType"); var mRoot = global::umbraco.cms.businesslogic.media.Media.MakeNew("MediaRoot", mType, user, -1); @@ -316,7 +316,7 @@ namespace Umbraco.Tests.PublishedContent [Test] public void Descendants_Without_Examine() { - var user = new User(0); + var user = ServiceContext.UserService.GetUserById(0); var mType = global::umbraco.cms.businesslogic.media.MediaType.MakeNew(user, "TestMediaType"); var mRoot = global::umbraco.cms.businesslogic.media.Media.MakeNew("MediaRoot", mType, user, -1); @@ -340,7 +340,7 @@ namespace Umbraco.Tests.PublishedContent [Test] public void DescendantsOrSelf_Without_Examine() { - var user = new User(0); + var user = ServiceContext.UserService.GetUserById(0); var mType = global::umbraco.cms.businesslogic.media.MediaType.MakeNew(user, "TestMediaType"); var mRoot = global::umbraco.cms.businesslogic.media.Media.MakeNew("MediaRoot", mType, user, -1); @@ -366,7 +366,7 @@ namespace Umbraco.Tests.PublishedContent [Test] public void Parent_Without_Examine() { - var user = new User(0); + var user = ServiceContext.UserService.GetUserById(0); var mType = global::umbraco.cms.businesslogic.media.MediaType.MakeNew(user, "TestMediaType"); var mRoot = global::umbraco.cms.businesslogic.media.Media.MakeNew("MediaRoot", mType, user, -1); @@ -391,7 +391,7 @@ namespace Umbraco.Tests.PublishedContent [Test] public void Ancestors_Without_Examine() { - var user = new User(0); + var user = ServiceContext.UserService.GetUserById(0); var mType = global::umbraco.cms.businesslogic.media.MediaType.MakeNew(user, "TestMediaType"); var mRoot = global::umbraco.cms.businesslogic.media.Media.MakeNew("MediaRoot", mType, user, -1); @@ -410,7 +410,7 @@ namespace Umbraco.Tests.PublishedContent [Test] public void AncestorsOrSelf_Without_Examine() { - var user = new User(0); + var user = ServiceContext.UserService.GetUserById(0); var mType = global::umbraco.cms.businesslogic.media.MediaType.MakeNew(user, "TestMediaType"); var mRoot = global::umbraco.cms.businesslogic.media.Media.MakeNew("MediaRoot", mType, user, -1); diff --git a/src/Umbraco.Web.UI/config/ClientDependency.config b/src/Umbraco.Web.UI/config/ClientDependency.config index 2781de0795..0023483deb 100644 --- a/src/Umbraco.Web.UI/config/ClientDependency.config +++ b/src/Umbraco.Web.UI/config/ClientDependency.config @@ -10,7 +10,7 @@ NOTES: * Compression/Combination/Minification is not enabled unless debug="false" is specified on the 'compiliation' element in the web.config * A new version will invalidate both client and server cache and create new persisted files --> - +