Show 'shared via' in share list for reshares

Fixes #1330

userA shares a file to userB
userB shares that file to userC

userA can see both userB and userC.
Now they can also see that userB shared it to user C

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
This commit is contained in:
Roeland Jago Douma 2017-04-10 17:07:45 +02:00
parent 18580395d4
commit 58f959864a
No known key found for this signature in database
GPG Key ID: F941078878347C0C
2 changed files with 40 additions and 0 deletions

View File

@ -190,6 +190,8 @@
var shareWithDisplayName = this.model.getShareWithDisplayName(shareIndex); var shareWithDisplayName = this.model.getShareWithDisplayName(shareIndex);
var shareWithTitle = ''; var shareWithTitle = '';
var shareType = this.model.getShareType(shareIndex); var shareType = this.model.getShareType(shareIndex);
var sharedBy = this.model.getSharedBy(shareIndex);
var sharedByDisplayName = this.model.getSharedByDisplayName(shareIndex);
var hasPermissionOverride = {}; var hasPermissionOverride = {};
if (shareType === OC.Share.SHARE_TYPE_GROUP) { if (shareType === OC.Share.SHARE_TYPE_GROUP) {
@ -211,6 +213,17 @@
shareWithTitle = shareWith; shareWithTitle = shareWith;
} }
if (sharedBy !== oc_current_user) {
var empty = shareWithTitle === '';
if (!empty) {
shareWithTitle += ' (';
}
shareWithTitle += t('core', 'shared by {sharer}', {sharer: sharedByDisplayName});
if (!empty) {
shareWithTitle += ')';
}
}
var share = this.model.get('shares')[shareIndex]; var share = this.model.get('shares')[shareIndex];
var password = share.password; var password = share.password;
var hasPassword = password !== null && password !== ''; var hasPassword = password !== null && password !== '';

View File

@ -47,6 +47,7 @@
* @property {Date} expiration optional? * @property {Date} expiration optional?
* @property {number} stime optional? * @property {number} stime optional?
* @property {string} uid_owner * @property {string} uid_owner
* @property {string} displayname_owner
*/ */
/** /**
@ -407,6 +408,32 @@
return share.share_with_displayname; return share.share_with_displayname;
}, },
/**
* @param shareIndex
* @returns {string}
*/
getSharedBy: function(shareIndex) {
/** @type OC.Share.Types.ShareInfo **/
var share = this.get('shares')[shareIndex];
if(!_.isObject(share)) {
throw "Unknown Share";
}
return share.uid_owner;
},
/**
* @param shareIndex
* @returns {string}
*/
getSharedByDisplayName: function(shareIndex) {
/** @type OC.Share.Types.ShareInfo **/
var share = this.get('shares')[shareIndex];
if(!_.isObject(share)) {
throw "Unknown Share";
}
return share.displayname_owner;
},
/** /**
* returns the array index of a sharee for a provided shareId * returns the array index of a sharee for a provided shareId
* *