diff --git a/apps/files/js/fileactions.js b/apps/files/js/fileactions.js index 0f320c8b3c..6c031ab06d 100644 --- a/apps/files/js/fileactions.js +++ b/apps/files/js/fileactions.js @@ -235,7 +235,7 @@ } var filteredActions = {}; $.each(actions, function (name, action) { - if (action.permissions & permissions) { + if ((action.permissions === OC.PERMISSION_NONE) || (action.permissions & permissions)) { filteredActions[name] = action; } }); diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 4790afcf4d..c19f517e42 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -1159,6 +1159,11 @@ } } + var permissions = fileData.permissions; + if (permissions === undefined || permissions === null) { + permissions = this.getDirectoryPermissions(); + } + //containing tr var tr = $('').attr({ "data-id" : fileData.id, @@ -1168,7 +1173,7 @@ "data-mime": mime, "data-mtime": mtime, "data-etag": fileData.etag, - "data-permissions": fileData.permissions || this.getDirectoryPermissions(), + "data-permissions": permissions, "data-has-preview": fileData.hasPreview !== false }); diff --git a/apps/files/tests/js/filelistSpec.js b/apps/files/tests/js/filelistSpec.js index 8bb188e360..8a3e8cb9d4 100644 --- a/apps/files/tests/js/filelistSpec.js +++ b/apps/files/tests/js/filelistSpec.js @@ -296,6 +296,15 @@ describe('OCA.Files.FileList tests', function() { expect($tr.find('.filesize').text()).toEqual('Pending'); expect($tr.find('.date').text()).not.toEqual('?'); }); + it('generates file element with no permissions when permissions are explicitly none', function() { + var fileData = { + type: 'dir', + name: 'testFolder', + permissions: OC.PERMISSION_NONE + }; + var $tr = fileList.add(fileData); + expect($tr.attr('data-permissions')).toEqual('0'); + }); it('generates file element with zero size when size is explicitly zero', function() { var fileData = { type: 'dir', diff --git a/core/js/js.js b/core/js/js.js index c02ef5c792..246aae3ac0 100644 --- a/core/js/js.js +++ b/core/js/js.js @@ -60,6 +60,7 @@ function fileDownloadPath(dir, file) { /** @namespace */ var OCP = {}, OC = { + PERMISSION_NONE:0, PERMISSION_CREATE:4, PERMISSION_READ:1, PERMISSION_UPDATE:2,