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