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 a748e63e28..daddfb57ef 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
Enabled %0% users
An error occurred while enabling the users
Disabled %0% users
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 0a48f80b09..2ddb6094b4 100644
--- a/src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml
+++ b/src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml
@@ -1104,6 +1104,8 @@ To manage your website, simply open the Umbraco back office and start adding con
%0% is now disabled
An error occurred while disabling the user
User groups have been set
+ 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..7c2b589e97 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,21 @@ namespace Umbraco.Web.Editors
return display;
}
+
+ [HttpPost]
+ [HttpDelete]
+ 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
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