diff options
author | Vincent Petry <pvince81@owncloud.com> | 2015-07-02 16:38:20 +0200 |
---|---|---|
committer | Vincent Petry <pvince81@owncloud.com> | 2015-07-02 16:38:20 +0200 |
commit | 71ae96bb56c668e8bc587e89ce9cf55e22fe7455 (patch) | |
tree | b275c7169c8b5178a6290af6ef83f008cd2b8d44 | |
parent | 063071b58db926238e895105e13a116a5ceebddb (diff) | |
download | nextcloud-server-71ae96bb56c668e8bc587e89ce9cf55e22fe7455.tar.gz nextcloud-server-71ae96bb56c668e8bc587e89ce9cf55e22fe7455.zip |
Do not show static share owner if not available
In some corner cases, an outgoing share exists but sharing is not
allowed for the current user. This would cause the file list to break
because the static text could not be rendered as the owner was
undefined.
-rw-r--r-- | apps/files_sharing/js/share.js | 2 | ||||
-rw-r--r-- | apps/files_sharing/tests/js/shareSpec.js | 17 |
2 files changed, 18 insertions, 1 deletions
diff --git a/apps/files_sharing/js/share.js b/apps/files_sharing/js/share.js index 11c3170c2f0..0c7d5f3c576 100644 --- a/apps/files_sharing/js/share.js +++ b/apps/files_sharing/js/share.js @@ -151,7 +151,7 @@ var permissions = $tr.data('permissions'); var hasLink = !!(shareStatus && shareStatus.link); OC.Share.markFileAsShared($tr, true, hasLink); - if ((permissions & OC.PERMISSION_SHARE) === 0) { + if ((permissions & OC.PERMISSION_SHARE) === 0 && $tr.attr('data-share-owner')) { // if no share action exists because the admin disabled sharing for this user // we create a share notification action to inform the user about files // shared with him otherwise we just update the existing share action. diff --git a/apps/files_sharing/tests/js/shareSpec.js b/apps/files_sharing/tests/js/shareSpec.js index 1b1e363b792..1bbf4ffca09 100644 --- a/apps/files_sharing/tests/js/shareSpec.js +++ b/apps/files_sharing/tests/js/shareSpec.js @@ -206,6 +206,23 @@ describe('OCA.Sharing.Util tests', function() { expect(OC.basename(getImageUrl($tr.find('.filename .thumbnail')))).toEqual('folder-shared.svg'); expect($action.find('img').length).toEqual(1); }); + it('do not show static share text when share exists but neither permission nor owner is available', function() { + var $action, $tr; + fileList.setFiles([{ + id: 1, + type: 'dir', + name: 'One', + path: '/subdir', + mimetype: 'text/plain', + size: 12, + permissions: OC.PERMISSION_CREATE, + etag: 'abc' + }]); + $tr = fileList.$el.find('tbody tr:first'); + expect($tr.find('.action-share').length).toEqual(0); + $action = $tr.find('.action-share-notification'); + expect($action.length).toEqual(0); + }); }); describe('Share action', function() { var showDropDownStub; |