summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVincent Petry <pvince81@owncloud.com>2015-07-02 16:38:20 +0200
committerVincent Petry <pvince81@owncloud.com>2015-07-02 16:38:20 +0200
commit71ae96bb56c668e8bc587e89ce9cf55e22fe7455 (patch)
treeb275c7169c8b5178a6290af6ef83f008cd2b8d44
parent063071b58db926238e895105e13a116a5ceebddb (diff)
downloadnextcloud-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.js2
-rw-r--r--apps/files_sharing/tests/js/shareSpec.js17
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;