Browse Source

refactor share permission logic into own method to reuse it for the share tab

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
tags/v11.0RC2
Christoph Wurst 7 years ago
parent
commit
9e5e120ef9
No account linked to committer's email address
3 changed files with 27 additions and 14 deletions
  1. 22
    13
      apps/files_sharing/js/share.js
  2. 4
    0
      apps/files_sharing/js/sharetabview.js
  3. 1
    1
      tests/karma.config.js

+ 22
- 13
apps/files_sharing/js/share.js View File

@@ -36,19 +36,7 @@
var oldCreateRow = fileList._createRow;
fileList._createRow = function(fileData) {
var tr = oldCreateRow.apply(this, arguments);
var sharePermissions = fileData.permissions;
if (fileData.mountType && fileData.mountType === "external-root"){
// for external storages we can't use the permissions of the mountpoint
// instead we show all permissions and only use the share permissions from the mountpoint to handle resharing
sharePermissions = sharePermissions | (OC.PERMISSION_ALL & ~OC.PERMISSION_SHARE);
}
if (fileData.type === 'file') {
// files can't be shared with delete permissions
sharePermissions = sharePermissions & ~OC.PERMISSION_DELETE;

// create permissions don't mean anything for files
sharePermissions = sharePermissions & ~OC.PERMISSION_CREATE;
}
var sharePermissions = OCA.Sharing.Util.getSharePermissions(fileData);
tr.attr('data-share-permissions', sharePermissions);
if (fileData.shareOwner) {
tr.attr('data-share-owner', fileData.shareOwner);
@@ -251,6 +239,27 @@
text += ', +' + (count - maxRecipients);
}
return text;
},

/**
* @param {Array} fileData
* @returns {String}
*/
getSharePermissions: function(fileData) {
var sharePermissions = fileData.permissions;
if (fileData.mountType && fileData.mountType === "external-root"){
// for external storages we can't use the permissions of the mountpoint
// instead we show all permissions and only use the share permissions from the mountpoint to handle resharing
sharePermissions = sharePermissions | (OC.PERMISSION_ALL & ~OC.PERMISSION_SHARE);
}
if (fileData.type === 'file') {
// files can't be shared with delete permissions
sharePermissions = sharePermissions & ~OC.PERMISSION_DELETE;

// create permissions don't mean anything for files
sharePermissions = sharePermissions & ~OC.PERMISSION_CREATE;
}
return sharePermissions;
}
};
})();

+ 4
- 0
apps/files_sharing/js/sharetabview.js View File

@@ -50,6 +50,10 @@
if (this.model) {
this.$el.html(this.template());

if (_.isUndefined(this.model.get('sharePermissions'))) {
this.model.set('sharePermissions', OCA.Sharing.Util.getSharePermissions(this.model.attributes));
}

// TODO: the model should read these directly off the passed fileInfoModel
var attributes = {
itemType: this.model.isDirectory() ? 'folder' : 'file',

+ 1
- 1
tests/karma.config.js View File

@@ -54,7 +54,7 @@ module.exports = function(config) {
'apps/files_sharing/js/app.js',
'apps/files_sharing/js/sharedfilelist.js',
'apps/files_sharing/js/share.js',
'apps/files_sharing/js/external.js',
'apps/files_sharing/js/sharebreadcrumbview.js',
'apps/files_sharing/js/public.js',
'apps/files_sharing/js/sharetabview.js'
],

Loading…
Cancel
Save