diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/components/users/umbusergrouppreview.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/components/users/umbusergrouppreview.directive.js
index 0481418215..7a777b76c5 100644
--- a/src/Umbraco.Web.UI.Client/src/common/directives/components/users/umbusergrouppreview.directive.js
+++ b/src/Umbraco.Web.UI.Client/src/common/directives/components/users/umbusergrouppreview.directive.js
@@ -20,7 +20,9 @@
mediaStartNode: "=?",
permissions: "=?",
allowRemove: "=?",
- onRemove: "&?"
+ allowEdit: "=?",
+ onRemove: "&?",
+ onEdit: "&?"
},
link: link
};
diff --git a/src/Umbraco.Web.UI.Client/src/views/components/users/umb-user-group-preview.html b/src/Umbraco.Web.UI.Client/src/views/components/users/umb-user-group-preview.html
index 0126d8120e..2a38d00df0 100644
--- a/src/Umbraco.Web.UI.Client/src/views/components/users/umb-user-group-preview.html
+++ b/src/Umbraco.Web.UI.Client/src/views/components/users/umb-user-group-preview.html
@@ -39,6 +39,7 @@
+
Edit
Remove
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 2ed2d9662d..614be714f5 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
@@ -22,6 +22,103 @@
usersResource.getUserGroups().then(function (userGroups) {
vm.availableUserGroups = userGroups;
vm.loading = false;
+
+ // fake permissions
+ angular.forEach(vm.availableUserGroups, function(userGroup){
+ userGroup.permissions = [
+ {
+ "groupName": "Content",
+ "permissions": [
+ {
+ "name": "Edit content (save)",
+ "description": "Lorem ipsum dolor sit amet",
+ "checked": false
+ },
+ {
+ "name": "Browse content",
+ "description": "Nullam egestas porta mi, quis finibus nisl commodo a",
+ "checked": true
+ },
+ {
+ "name": "Publish",
+ "description": "Aliquam molestie consequat felis",
+ "checked": true
+ },
+ {
+ "name": "Send to publish",
+ "description": "Sed pharetra sodales enim quis molestie",
+ "checked": true
+ },
+ {
+ "name": "Delete",
+ "description": "Vitae porta mauris turpis sit amet ligula",
+ "checked": true
+ },
+ {
+ "name": "Create",
+ "description": "Vestibulum pretium sapien id turpis elementum viverra",
+ "checked": true
+ },
+ ]
+ },
+ {
+ "groupName": "Structure",
+ "permissions": [
+ {
+ "name": "Move",
+ "description": "Vestibulum pretium sapien id turpis elementum viverra",
+ "checked": true
+ },
+ {
+ "name": "Copy",
+ "description": "Phasellus sagittis, dolor vel accumsan porttitor",
+ "checked": false
+ },
+ {
+ "name": "Sort",
+ "description": "Aliquam erat volutpat",
+ "checked": false
+ }
+ ]
+ },
+ {
+ "groupName": "Administration",
+ "permissions": [
+ {
+ "name": "Culture and Hostnames",
+ "description": "Lorem ipsum dolor sit amet",
+ "checked": true
+ },
+ {
+ "name": "Audit Trail",
+ "description": "Lorem ipsum dolor sit amet",
+ "checked": true
+ },
+ {
+ "name": "Translate",
+ "description": "Lorem ipsum dolor sit amet",
+ "checked": true
+ },
+ {
+ "name": "Change document type",
+ "description": "Lorem ipsum dolor sit amet",
+ "checked": true
+ },
+ {
+ "name": "Public access",
+ "description": "Lorem ipsum dolor sit amet",
+ "checked": true
+ },
+ {
+ "name": "Rollback",
+ "description": "Lorem ipsum dolor sit amet",
+ "checked": true
+ }
+ ]
+ }
+ ];
+
+ });
});
}
@@ -36,121 +133,28 @@
function editPermissions(group) {
vm.selectedUserGroup = group;
setViewSate("managePermissions");
-
- // fake permissions
- vm.selectedUserGroup.permissions = [
- {
- "groupName": "Content",
- "permissions": [
- {
- "name": "Edit content (save)",
- "description": "Lorem ipsum dolor sit amet",
- "checked": false
- },
- {
- "name": "Browse content",
- "description": "Nullam egestas porta mi, quis finibus nisl commodo a",
- "checked": true
- },
- {
- "name": "Publish",
- "description": "Aliquam molestie consequat felis",
- "checked": true
- },
- {
- "name": "Send to publish",
- "description": "Sed pharetra sodales enim quis molestie",
- "checked": true
- },
- {
- "name": "Delete",
- "description": "Vitae porta mauris turpis sit amet ligula",
- "checked": true
- },
- {
- "name": "Create",
- "description": "Vestibulum pretium sapien id turpis elementum viverra",
- "checked": true
- },
- ]
- },
- {
- "groupName": "Structure",
- "permissions": [
- {
- "name": "Move",
- "description": "Vestibulum pretium sapien id turpis elementum viverra",
- "checked": true
- },
- {
- "name": "Copy",
- "description": "Phasellus sagittis, dolor vel accumsan porttitor",
- "checked": false
- },
- {
- "name": "Sort",
- "description": "Aliquam erat volutpat",
- "checked": false
- }
- ]
- },
- {
- "groupName": "Administration",
- "permissions": [
- {
- "name": "Culture and Hostnames",
- "description": "Lorem ipsum dolor sit amet",
- "checked": true
- },
- {
- "name": "Audit Trail",
- "description": "Lorem ipsum dolor sit amet",
- "checked": true
- },
- {
- "name": "Translate",
- "description": "Lorem ipsum dolor sit amet",
- "checked": true
- },
- {
- "name": "Change document type",
- "description": "Lorem ipsum dolor sit amet",
- "checked": true
- },
- {
- "name": "Public access",
- "description": "Lorem ipsum dolor sit amet",
- "checked": true
- },
- {
- "name": "Rollback",
- "description": "Lorem ipsum dolor sit amet",
- "checked": true
- }
- ]
- }
- ];
-
}
function setPermissions(group) {
+ // clear allowed permissions before we make the list
+ // so we don't have deplicates
+ group.allowedPermissions = [];
// get list of checked permissions
angular.forEach(group.permissions, function(permissionGroup) {
angular.forEach(permissionGroup.permissions, function(permission) {
if(permission.checked) {
- if(!group.allowedPermissions) {
- group.allowedPermissions = [];
- }
group.allowedPermissions.push(permission);
}
});
});
-
- // set to selected so we can remove from the dropdown easily
- group.selected = true;
-
- vm.selectedUserGroups.push(group);
+
+ if(!group.selected) {
+ // set to selected so we can remove from the dropdown easily
+ group.selected = true;
+ vm.selectedUserGroups.push(group);
+ }
+
setViewSate("manageGroups");
}
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 91b9e708b5..defedb550e 100644
--- a/src/Umbraco.Web.UI.Client/src/views/content/rights.html
+++ b/src/Umbraco.Web.UI.Client/src/views/content/rights.html
@@ -30,7 +30,9 @@
name="group.name"
permissions="group.allowedPermissions"
allow-remove="true"
- on-remove="vm.removePermissions($index, vm.selectedUserGroups)">
+ allow-edit="true"
+ on-remove="vm.removePermissions($index, vm.selectedUserGroups)"
+ on-edit="vm.editPermissions(group)">