Merge branch 'user-group-permissions' of https://github.com/umbraco/Umbraco-CMS into user-group-permissions

This commit is contained in:
Shannon
2017-06-27 19:55:21 +10:00
4 changed files with 52 additions and 31 deletions

View File

@@ -39,7 +39,7 @@
</div>
<div class="umb-user-group-preview__actions">
<a class="umb-user-group-preview__action" title="Edit" href="" ng-if="allowRemove" ng-click="onEdit()">Edit</i></a>
<a class="umb-user-group-preview__action" title="Edit" href="" ng-if="allowEdit" ng-click="onEdit()">Edit</i></a>
<a class="umb-user-group-preview__action umb-user-group-preview__action--red" title="Remove" href="" ng-if="allowRemove" ng-click="onRemove()">Remove</i></a>
<div>

View File

@@ -104,7 +104,7 @@
</div>
</div>
<div class="test-group">
<div class="test-group" ng-if="!vm.user.isCurrentUser">
<div class="test-group-title">Permissions</div>
<div class="test-group-content block-form">
@@ -243,7 +243,7 @@
<div style="margin-top: 20px;">
<div style="margin-bottom: 10px;">
<umb-button ng-if="vm.user.userDisplayState.alias === 'active'"
<umb-button ng-if="vm.user.userDisplayState.key === 'Active' && !vm.user.isCurrentUser"
type="button"
button-style="[danger,block]"
action="vm.disableUser()"
@@ -254,7 +254,7 @@
</div>
<div style="margin-bottom: 10px;">
<umb-button ng-if="vm.user.userDisplayState.alias === 'disabled' || vm.user.userDisplayState.alias === 'lockedOut'"
<umb-button ng-if="vm.user.userDisplayState.key === 'Disabled' && !vm.user.isCurrentUser || vm.user.userDisplayState.key === 'LockedOut' && !vm.user.isCurrentUser"
type="button"
button-style="[success,block]"
state="vm.enableUserButtonState"

View File

@@ -123,20 +123,24 @@
function selectUser(user, selection, event) {
if (user.selected) {
var index = selection.indexOf(user.id);
selection.splice(index, 1);
user.selected = false;
} else {
user.selected = true;
vm.selection.push(user.id);
}
setBulkActions(vm.users);
// prevent the current user to be selected
if(!user.isCurrentUser) {
if(event){
event.preventDefault();
event.stopPropagation();
if (user.selected) {
var index = selection.indexOf(user.id);
selection.splice(index, 1);
user.selected = false;
} else {
user.selected = true;
vm.selection.push(user.id);
}
setBulkActions(vm.users);
if(event){
event.preventDefault();
event.stopPropagation();
}
}
}
@@ -252,15 +256,24 @@
vm.selection = [];
// select all users
angular.forEach(vm.users, function (user) {
user.selected = true;
vm.selection.push(user.id);
// prevent the current user to be selected
if(!user.isCurrentUser) {
user.selected = true;
vm.selection.push(user.id);
}
});
}
}
function areAllSelected() {
if (vm.selection.length === vm.users.length) {
return true;
// we need to check if the current user is part of the selection and
// subtract the user from the total selection to find out if all users are selected
var includesCurrentUser = vm.users.some(function (user) { return user.isCurrentUser === true; });
if(includesCurrentUser) {
if (vm.selection.length === vm.users.length - 1) { return true;}
} else {
if (vm.selection.length === vm.users.length) { return true;}
}
}
@@ -426,15 +439,23 @@
return;
}
if(user.userDisplayState.key === "Disabled") {
// if the current user is selected prevent any bulk actions with the user included
if(user.isCurrentUser) {
vm.allowDisableUser = false;
vm.allowEnableUser = false;
vm.allowSetUserGroup = false;
return;
}
if(user.userDisplayState && user.userDisplayState.key === "Disabled") {
vm.allowDisableUser = false;
}
if(user.userDisplayState.key === "Active") {
if(user.userDisplayState && user.userDisplayState.key === "Active") {
vm.allowEnableUser = false;
}
if(user.userDisplayState.key === "Invited") {
if(user.userDisplayState && user.userDisplayState.key === "Invited") {
vm.allowEnableUser = false;
}

View File

@@ -178,7 +178,7 @@
</umb-avatar>
</div>
<div class="umb-user-card__checkmark" ng-class="{'umb-user-card__checkmark--visible': user.selected || vm.selection.length > 0 }" ng-click="vm.selectUser(user, vm.selection, $event)">
<umb-checkmark checked="user.selected" size="s"></umb-checkmark>
<umb-checkmark ng-if="!user.isCurrentUser" checked="user.selected" size="s"></umb-checkmark>
</div>
<div class="umb-user-card__name" href="">{{user.name}}</div>
<div class="umb-user-card__group">
@@ -217,12 +217,12 @@
<tbody>
<tr ng-repeat="user in vm.users" ng-click="vm.clickUser(user)" style="cursor: pointer;" ng-mouseenter="user.hover = true" ng-mouseleave="user.hover = false">
<td style="padding-left: 10px;">
<div ng-click="vm.selectUser(user, vm.selection, $event)">
<umb-checkmark
ng-if="vm.selection.length > 0 || user.hover"
checked="user.selected"
size="xs">
</umb-checkmark>
<div ng-if="!user.isCurrentUser" ng-click="vm.selectUser(user, vm.selection, $event)">
<umb-checkmark
ng-if="vm.selection.length > 0 || user.hover"
checked="user.selected"
size="xs">
</umb-checkmark>
</div>
</td>
<td scope="row">