diff --git a/apps/files/js/fileactions.js b/apps/files/js/fileactions.js index ec09ec1bb8c..fc79d63687f 100644 --- a/apps/files/js/fileactions.js +++ b/apps/files/js/fileactions.js @@ -653,6 +653,13 @@ context.fileList.showFileBusyState(filename, true); OCA.Files.Files.handleDownload(url, disableLoadingState); } + }, + shouldRender: function(context) { + var fileData = context.fileInfoModel + if (_.isFunction(fileData.canDownload) && !fileData.canDownload()) { + return false; + } + return true; } }); @@ -707,6 +714,13 @@ } context.fileList.dirInfo.dirLastCopiedTo = targetPath; }, false, "httpd/unix-directory", true, actions, dialogDir); + }, + shouldRender: function(context) { + var fileData = context.fileInfoModel + if (_.isFunction(fileData.canDownload) && !fileData.canDownload()) { + return false; + } + return true; } }); diff --git a/apps/files/js/fileactionsmenu.js b/apps/files/js/fileactionsmenu.js index 7eecf209984..f6166c22e27 100644 --- a/apps/files/js/fileactionsmenu.js +++ b/apps/files/js/fileactionsmenu.js @@ -82,6 +82,12 @@ var defaultAction = fileActions.getCurrentDefaultFileAction(); var items = _.filter(actions, function(actionSpec) { + if (actionSpec.shouldRender) { + if (!actionSpec.shouldRender(self._context)) { + return false; + } + } + return !defaultAction || actionSpec.name !== defaultAction.name; }); items = _.map(items, function(item) { diff --git a/apps/files_sharing/src/share.js b/apps/files_sharing/src/share.js index a54f2f13698..c154170de58 100644 --- a/apps/files_sharing/src/share.js +++ b/apps/files_sharing/src/share.js @@ -86,19 +86,6 @@ import { getCapabilities } from '@nextcloud/capabilities' var tr = oldCreateRow.apply(this, arguments) var sharePermissions = OCA.Sharing.Util.getSharePermissions(fileData) - if (fileData.permissions === 0) { - // no permission, disabling sidebar - delete fileActions.actions.all.Comment - delete fileActions.actions.all.Details - delete fileActions.actions.all.Goto - } - if (_.isFunction(fileData.canDownload) && !fileData.canDownload()) { - delete fileActions.actions.all.Download - if ((fileData.permissions & OC.PERMISSION_UPDATE) === 0) { - // neither move nor copy is allowed, remove the action completely - delete fileActions.actions.all.MoveCopy - } - } tr.attr('data-share-permissions', sharePermissions) tr.attr('data-share-attributes', JSON.stringify(fileData.shareAttributes)) if (fileData.shareOwner) {