diff --git a/src/Umbraco.Core/Models/Membership/EntityPermissionSet.cs b/src/Umbraco.Core/Models/Membership/EntityPermissionSet.cs
index ea1e927a59..d91cd3a352 100644
--- a/src/Umbraco.Core/Models/Membership/EntityPermissionSet.cs
+++ b/src/Umbraco.Core/Models/Membership/EntityPermissionSet.cs
@@ -3,7 +3,7 @@
namespace Umbraco.Core.Models.Membership
{
///
- /// Represents an entity -> user & permission key value pair collection
+ /// Represents an entity -> user group & permission key value pair collection
///
public class EntityPermissionSet
{
diff --git a/src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs b/src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs
index 1f876bb7b0..6b99439093 100644
--- a/src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs
+++ b/src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs
@@ -884,7 +884,12 @@ order by umbracoNode.{2}, umbracoNode.parentID, umbracoNode.sortOrder",
var repo = new PermissionRepository(UnitOfWork, _cacheHelper, SqlSyntax);
repo.AssignEntityPermission(entity, permission, groupIds);
}
-
+
+ ///
+ /// Returns permissions directly assigned to the content item for all user groups
+ ///
+ ///
+ ///
public IEnumerable GetPermissionsForEntity(int entityId)
{
var repo = new PermissionRepository(UnitOfWork, _cacheHelper, SqlSyntax);
diff --git a/src/Umbraco.Core/Persistence/Repositories/PermissionRepository.cs b/src/Umbraco.Core/Persistence/Repositories/PermissionRepository.cs
index 3c7273eb0b..ca9045507b 100644
--- a/src/Umbraco.Core/Persistence/Repositories/PermissionRepository.cs
+++ b/src/Umbraco.Core/Persistence/Repositories/PermissionRepository.cs
@@ -130,7 +130,7 @@ namespace Umbraco.Core.Persistence.Repositories
}
///
- /// Returns permissions for all groups for a given entity
+ /// Returns permissions directly assigned to the content item for all user groups
///
///
///
diff --git a/src/Umbraco.Core/Services/ContentService.cs b/src/Umbraco.Core/Services/ContentService.cs
index 65367c24d1..6e09d5f845 100644
--- a/src/Umbraco.Core/Services/ContentService.cs
+++ b/src/Umbraco.Core/Services/ContentService.cs
@@ -130,7 +130,7 @@ namespace Umbraco.Core.Services
}
///
- /// Gets the list of permissions for the content item
+ /// Returns permissions directly assigned to the content item for all user groups
///
///
///
diff --git a/src/Umbraco.Core/Services/IContentService.cs b/src/Umbraco.Core/Services/IContentService.cs
index cefe39a599..289af7324b 100644
--- a/src/Umbraco.Core/Services/IContentService.cs
+++ b/src/Umbraco.Core/Services/IContentService.cs
@@ -137,7 +137,7 @@ namespace Umbraco.Core.Services
///
/// Used to bulk update the permissions set for a content item. This will replace all permissions
- /// assigned to an entity with a list of user id & permission pairs.
+ /// assigned to an entity with a list of user group id & permission pairs.
///
///
void ReplaceContentPermissions(EntityPermissionSet permissionSet);
@@ -151,7 +151,7 @@ namespace Umbraco.Core.Services
void AssignContentPermission(IContent entity, char permission, IEnumerable groupIds);
///
- /// Gets the list of permissions for the content item
+ /// Returns permissions directly assigned to the content item for all user groups
///
///
///
diff --git a/src/Umbraco.Core/Services/UserServiceExtensions.cs b/src/Umbraco.Core/Services/UserServiceExtensions.cs
index 6130077771..0492a59d03 100644
--- a/src/Umbraco.Core/Services/UserServiceExtensions.cs
+++ b/src/Umbraco.Core/Services/UserServiceExtensions.cs
@@ -7,7 +7,7 @@ namespace Umbraco.Core.Services
internal static class UserServiceExtensions
{
///
- /// Remove all permissions for this user for all nodes specified
+ /// Remove all permissions for this user group for all nodes specified
///
///
///
@@ -18,7 +18,7 @@ namespace Umbraco.Core.Services
}
///
- /// Remove all permissions for this user for all nodes
+ /// Remove all permissions for this user group for all nodes
///
///
///
diff --git a/src/Umbraco.Web.UI.Client/src/common/resources/content.resource.js b/src/Umbraco.Web.UI.Client/src/common/resources/content.resource.js
index 49c3745970..d24a29dc61 100644
--- a/src/Umbraco.Web.UI.Client/src/common/resources/content.resource.js
+++ b/src/Umbraco.Web.UI.Client/src/common/resources/content.resource.js
@@ -40,7 +40,24 @@ function contentResource($q, $http, umbDataFormatter, umbRequestHelper) {
return {
-
+
+ savePermissions: function (saveModel) {
+ if (!saveModel) {
+ throw "saveModel cannot be null";
+ }
+ if (!saveModel.contentId) {
+ throw "saveModel.contentId cannot be null";
+ }
+ if (!saveModel.permissions) {
+ throw "saveModel.permissions cannot be null";
+ }
+
+ return umbRequestHelper.resourcePromise(
+ $http.post(umbRequestHelper.getApiUrl("contentApiBaseUrl", "PostSaveUserGroupPermissions"),
+ saveModel),
+ 'Failed to save permissions');
+ },
+
getRecycleBin: function () {
return umbRequestHelper.resourcePromise(
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 a48806f48c..f5b9e3e6d7 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
@@ -36,7 +36,7 @@
"PostSaveUserGroup"),
formattedSaveData),
"Failed to save user group");
- }
+ }
function getUserGroup(id) {
diff --git a/src/Umbraco.Web.UI.Client/src/views/content/content.rights.controller.js b/src/Umbraco.Web.UI.Client/src/views/content/content.rights.controller.js
index 3c2cc55362..c82d41e201 100644
--- a/src/Umbraco.Web.UI.Client/src/views/content/content.rights.controller.js
+++ b/src/Umbraco.Web.UI.Client/src/views/content/content.rights.controller.js
@@ -13,6 +13,7 @@
vm.setViewSate = setViewSate;
vm.editPermissions = editPermissions;
vm.setPermissions = setPermissions;
+ vm.save = save;
vm.removePermissions = removePermissions;
vm.cancelManagePermissions = cancelManagePermissions;
@@ -35,7 +36,7 @@
function setPermissions(group) {
// clear allowed permissions before we make the list
- // so we don't have deplicates
+ // so we don't have duplicates
group.allowedPermissions = [];
// get list of checked permissions
@@ -67,6 +68,27 @@
setViewSate("manageGroups");
}
+ function save() {
+
+ //this is a dictionary that we need to format
+ var permissionsSave = {};
+ angular.forEach(vm.selectedUserGroups, function(g) {
+ permissionsSave[g.id] = [];
+ angular.forEach(g.allowedPermissions, function(p) {
+ permissionsSave[g.id].push(p.permissionCode);
+ });
+ });
+
+ var saveModel = {
+ contentId: $scope.currentNode.id,
+ permissions: permissionsSave
+ };
+
+ contentResource.savePermissions(saveModel).then(function() {
+ alert("hooray!");
+ });
+ }
+
onInit();
}
diff --git a/src/Umbraco.Web.UI.Client/src/views/content/rights.html b/src/Umbraco.Web.UI.Client/src/views/content/rights.html
index 7f5739122c..78779cc510 100644
--- a/src/Umbraco.Web.UI.Client/src/views/content/rights.html
+++ b/src/Umbraco.Web.UI.Client/src/views/content/rights.html
@@ -43,7 +43,7 @@
Cancel
-