From 2e28ff3ccf5392e0fe96faa75a8af3e8d9f9f081 Mon Sep 17 00:00:00 2001 From: Claus Date: Wed, 12 Jul 2017 13:43:00 +0200 Subject: [PATCH 1/3] U4-10106 Cannot delete user groups --- .../src/common/resources/usergroups.resource.js | 14 +++++++++++++- .../views/users/views/groups/groups.controller.js | 15 ++++++++++++++- .../src/views/users/views/groups/groups.html | 2 +- src/Umbraco.Web.UI/umbraco/config/lang/en.xml | 2 ++ src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml | 3 ++- src/Umbraco.Web/Editors/UserGroupsController.cs | 15 ++++++++++++++- 6 files changed, 46 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/common/resources/usergroups.resource.js b/src/Umbraco.Web.UI.Client/src/common/resources/usergroups.resource.js index fad2820f56..90d9e58736 100644 --- a/src/Umbraco.Web.UI.Client/src/common/resources/usergroups.resource.js +++ b/src/Umbraco.Web.UI.Client/src/common/resources/usergroups.resource.js @@ -59,11 +59,23 @@ "Failed to retrieve user groups"); } + function deleteUserGroups(userGroupIds) { + var query = "userGroupIds=" + userGroupIds.join("&userGroupIds="); + return umbRequestHelper.resourcePromise( + $http.post( + umbRequestHelper.getApiUrl( + "userGroupsApiBaseUrl", + "PostDeleteUserGroups", + query)), + 'Failed to delete user groups'); + } + var resource = { saveUserGroup: saveUserGroup, getUserGroup: getUserGroup, getUserGroups: getUserGroups, - getUserGroupScaffold: getUserGroupScaffold + getUserGroupScaffold: getUserGroupScaffold, + deleteUserGroups: deleteUserGroups }; return resource; diff --git a/src/Umbraco.Web.UI.Client/src/views/users/views/groups/groups.controller.js b/src/Umbraco.Web.UI.Client/src/views/users/views/groups/groups.controller.js index f10cd8e530..5c30f1354e 100644 --- a/src/Umbraco.Web.UI.Client/src/views/users/views/groups/groups.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/users/views/groups/groups.controller.js @@ -1,7 +1,7 @@ (function () { "use strict"; - function UserGroupsController($scope, $timeout, $location, userGroupsResource) { + function UserGroupsController($scope, $timeout, $location, userGroupsResource, formHelper) { var vm = this; @@ -12,6 +12,7 @@ vm.clickUserGroup = clickUserGroup; vm.clearSelection = clearSelection; vm.selectUserGroup = selectUserGroup; + vm.deleteUserGroups = deleteUserGroups; function onInit() { @@ -57,6 +58,18 @@ } } + function deleteUserGroups() { + if (vm.selection.length > 0) { + userGroupsResource.deleteUserGroups(vm.selection).then(function (data) { + clearSelection(); + onInit(); + formHelper.showNotifications(data); + }, function(error) { + formHelper.showNotifications(error.data); + }); + } + } + function clearSelection() { angular.forEach(vm.userGroups, function (userGroup) { userGroup.selected = false; diff --git a/src/Umbraco.Web.UI.Client/src/views/users/views/groups/groups.html b/src/Umbraco.Web.UI.Client/src/views/users/views/groups/groups.html index 738fc4f654..38dc7a77f6 100644 --- a/src/Umbraco.Web.UI.Client/src/views/users/views/groups/groups.html +++ b/src/Umbraco.Web.UI.Client/src/views/users/views/groups/groups.html @@ -32,7 +32,7 @@ type="button" label="Delete" icon="icon-trash" - action="vm.deleteUserGroup()" + action="vm.deleteUserGroups()" size="xs"> diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/en.xml b/src/Umbraco.Web.UI/umbraco/config/lang/en.xml index 717c27270c..53c11eb420 100644 --- a/src/Umbraco.Web.UI/umbraco/config/lang/en.xml +++ b/src/Umbraco.Web.UI/umbraco/config/lang/en.xml @@ -1126,6 +1126,8 @@ To manage your website, simply open the Umbraco back office and start adding con Script view not saved An error occurred saving the file. An error occurred saving the file. + Deleted %0% user groups + %0% was deleted Uses CSS syntax ex: h1, .redHeader, .blueTex diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml b/src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml index 8620a5c75f..f4e00c52a9 100644 --- a/src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml +++ b/src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml @@ -1105,7 +1105,8 @@ To manage your website, simply open the Umbraco back office and start adding con An error occurred while enabling the user %0% is now disabled An error occurred while disabling the user - + Deleted %0% user groups + %0% was deleted Uses CSS syntax ex: h1, .redHeader, .blueTex diff --git a/src/Umbraco.Web/Editors/UserGroupsController.cs b/src/Umbraco.Web/Editors/UserGroupsController.cs index 43e7810227..9a1e26007f 100644 --- a/src/Umbraco.Web/Editors/UserGroupsController.cs +++ b/src/Umbraco.Web/Editors/UserGroupsController.cs @@ -5,7 +5,6 @@ using System.Net; using System.Net.Http; using System.Web.Http; using AutoMapper; -using Umbraco.Core.Models; using Umbraco.Core.Models.Membership; using Umbraco.Core.Services; using Umbraco.Web.Models.ContentEditing; @@ -87,5 +86,19 @@ namespace Umbraco.Web.Editors return display; } + + public HttpResponseMessage PostDeleteUserGroups([FromUri] int[] userGroupIds) + { + var userGroups = Services.UserService.GetAllUserGroups(userGroupIds).ToArray(); + foreach (var userGroup in userGroups) + { + Services.UserService.DeleteUserGroup(userGroup); + } + if (userGroups.Length > 1) + return Request.CreateNotificationSuccessResponse( + Services.TextService.Localize("speechBubbles/deleteUserGroupsSuccess", new[] {userGroups.Length.ToString()})); + return Request.CreateNotificationSuccessResponse( + Services.TextService.Localize("speechBubbles/deleteUserGroupSuccess", new[] {userGroups[0].Name})); + } } } \ No newline at end of file From 9fbf1aedac9f6935c42025b838bdce9359368ab2 Mon Sep 17 00:00:00 2001 From: Shannon Date: Fri, 14 Jul 2017 10:43:12 +1000 Subject: [PATCH 2/3] adds both post and delete verbs --- src/Umbraco.Web/Editors/UserGroupsController.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Umbraco.Web/Editors/UserGroupsController.cs b/src/Umbraco.Web/Editors/UserGroupsController.cs index 9a1e26007f..7c2b589e97 100644 --- a/src/Umbraco.Web/Editors/UserGroupsController.cs +++ b/src/Umbraco.Web/Editors/UserGroupsController.cs @@ -87,6 +87,8 @@ namespace Umbraco.Web.Editors return display; } + [HttpPost] + [HttpDelete] public HttpResponseMessage PostDeleteUserGroups([FromUri] int[] userGroupIds) { var userGroups = Services.UserService.GetAllUserGroups(userGroupIds).ToArray(); From db863a45923ec6dadc95021206851e376a009a1d Mon Sep 17 00:00:00 2001 From: Shannon Date: Fri, 14 Jul 2017 10:49:10 +1000 Subject: [PATCH 3/3] update sln to stop building the damn UI project --- src/umbraco.sln | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/umbraco.sln b/src/umbraco.sln index df260903ee..a2603aecbe 100644 --- a/src/umbraco.sln +++ b/src/umbraco.sln @@ -1,6 +1,6 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -VisualStudioVersion = 14.0.25420.1 +# Visual Studio 15 +VisualStudioVersion = 15.0.26430.15 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Umbraco.Web.UI", "Umbraco.Web.UI\Umbraco.Web.UI.csproj", "{4C4C194C-B5E4-4991-8F87-4373E24CC19F}" EndProject @@ -127,9 +127,7 @@ Global {4C4C194C-B5E4-4991-8F87-4373E24CC19F}.Release|Any CPU.ActiveCfg = Release|Any CPU {4C4C194C-B5E4-4991-8F87-4373E24CC19F}.Release|Any CPU.Build.0 = Release|Any CPU {3819A550-DCEC-4153-91B4-8BA9F7F0B9B4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3819A550-DCEC-4153-91B4-8BA9F7F0B9B4}.Debug|Any CPU.Build.0 = Debug|Any CPU {3819A550-DCEC-4153-91B4-8BA9F7F0B9B4}.Release|Any CPU.ActiveCfg = Debug|Any CPU - {3819A550-DCEC-4153-91B4-8BA9F7F0B9B4}.Release|Any CPU.Build.0 = Debug|Any CPU {651E1350-91B6-44B7-BD60-7207006D7003}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {651E1350-91B6-44B7-BD60-7207006D7003}.Debug|Any CPU.Build.0 = Debug|Any CPU {651E1350-91B6-44B7-BD60-7207006D7003}.Release|Any CPU.ActiveCfg = Release|Any CPU