refactor share permission logic into own method to reuse it for the share tab
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
This commit is contained in:
parent
bc1cb8a6d0
commit
9e5e120ef9
|
@ -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;
|
||||
}
|
||||
};
|
||||
})();
|
||||
|
|
|
@ -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',
|
||||
|
|
|
@ -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…
Reference in New Issue