Merge pull request #758 from nextcloud/bugfix/noid/group-restrict

Implement group restrictions for creating and sharing
This commit is contained in:
Julius Härtl
2018-12-04 10:27:16 +01:00
committed by GitHub
16 changed files with 335 additions and 57 deletions

View File

@@ -53,7 +53,7 @@ if (\OC_Util::getVersion()[0] < 14) {
<div id="app-navigation" data-ng-controller="ListController" ng-init="initSidebar()">
<?php print_unescaped($this->inc('part.navigation')); ?>
<?php /* print_unescaped($this->inc('part.settings')); */ ?>
<?php print_unescaped($this->inc('part.settings')); ?>
</div>
<div id="app-content" ng-class="{ 'details-visible': sidebar.show }"><div id="app-navigation-toggle-custom" class="icon-menu" ng-click="toggleSidebar()"></div><div ui-view></div></div>
<div id="app-sidebar" ng-class="{ 'details-visible': sidebar.show }" ng-if="sidebar.show" class="details-view scroll-container" ui-view="sidebarView"></div>

View File

@@ -56,13 +56,13 @@
{{ acl.participant.displayname }}
</span>
<span class="sharingOptionsGroup">
<span class="shareOption" ng-if="boardservice.canManage()">
<input type="checkbox" class="permissions checkbox" id="checkbox-permission-{{ acl.id }}-share" ng-model="acl.permissionShare" ng-change="aclUpdate(acl)" />
<label for="checkbox-permission-{{ acl.id }}-share"><?php p($l->t('Share')); ?></label>
</span>
<span class="shareOption"ng-if="boardservice.canManage()">
<input type="checkbox" class="permissions checkbox" id="checkbox-permission-{{ acl.id }}-edit" ng-model="acl.permissionEdit" ng-change="aclUpdate(acl)" />
<label for="checkbox-permission-{{ acl.id }}-edit"><?php p($l->t('Edit')); ?></label>
</span>
<span class="shareOption" ng-if="boardservice.canManage()">
<input type="checkbox" class="permissions checkbox" id="checkbox-permission-{{ acl.id }}-share" ng-model="acl.permissionShare" ng-change="aclUpdate(acl)" />
<label for="checkbox-permission-{{ acl.id }}-share"><?php p($l->t('Share')); ?></label>
</span>
<span class="shareOption"ng-if="boardservice.canManage()">
<input type="checkbox" class="permissions checkbox" id="checkbox-permission-{{ acl.id }}-manage" ng-model="acl.permissionManage" ng-change="aclUpdate(acl)" />
@@ -71,6 +71,9 @@
</span>
<a ng-if="boardservice.canManage()" ng-click="aclDelete(acl)"><span class="icon-loading-small hidden"></span><span class="icon icon-delete"></span><span class="hidden-visually"><?php p($l->t('Discard share')); ?></span></a>
</li>
<li ng-if="!boardservice.canShare()">
<?php p($l->t('Sharing has been disabled for your account.')); ?>
</li>
</ul>
</div>

View File

@@ -95,7 +95,7 @@
</div>
</td>
</tr>
<tr ng-if="status.filter === '' && !status.addBoard" ng-click="status.addBoard=!status.addBoard" class="board-create">
<tr ng-if="canCreate && status.filter === '' && !status.addBoard" ng-click="status.addBoard=!status.addBoard" class="board-create">
<td><span class="icon icon-add"></span></td>
<td colspan="3">
<a ng-click="status.addBoard=!status.addBoard"

View File

@@ -52,7 +52,7 @@
</div>
</li>
<li ng-class="{editing: status.addBoard}">
<li ng-class="{editing: status.addBoard}" ng-if="canCreate">
<a ng-click="status.addBoard=!status.addBoard" class="icon-add app-navigation-noclose">
<?php p($l->t('Create a new board')); ?>
</a>

View File

@@ -1,8 +1,21 @@
<div id="app-settings">
<div id="app-settings" ng-if="isAdmin">
<div id="app-settings-header">
<button class="settings-button" data-apps-slide-toggle="#app-settings-content"></button>
<button class="settings-button" data-apps-slide-toggle="#app-settings-content"><?php p($l->t('Settings')); ?></button>
</div>
<div id="app-settings-content">
<div id="app-settings-content" class="hidden">
<ui-select multiple tagging="" ng-model="groupLimit" theme="select2"
title="<?php p($l->t('Limit deck to groups')); ?>"
placeholder="<?php p($l->t('Limit deck to groups')); ?>"
on-select="groupLimitAdd($item, $model)"
on-remove="groupLimitRemove($item, $model)" ng-disabled="groupLimitDisabled">
<ui-select-match placeholder="<?php p($l->t('Limit deck to groups')); ?>">
<span class="select-label">{{$item.displayname}}&nbsp;</span>
</ui-select-match>
<ui-select-choices
repeat="group in groups | filter: $select.search | limitTo: 3 track by group.id" position="down">
<span class="choose-label">{{group.displayname}}</span>
</ui-select-choices>
</ui-select>
<p class="hint"><?php p($l->t('Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them.')); ?></p>
</div>
</div>