Merge pull request #19305 from owncloud/share-hasusershares
Fix ShareItemModel.hasUserShares to only check shares of current item
This commit is contained in:
commit
d7a923671f
|
@ -297,8 +297,7 @@
|
|||
* @returns {boolean}
|
||||
*/
|
||||
hasUserShares: function() {
|
||||
var shares = this.get('shares');
|
||||
return _.isArray(shares) && shares.length > 0;
|
||||
return this.getSharesWithCurrentItem().length > 0;
|
||||
},
|
||||
|
||||
/**
|
||||
|
@ -407,6 +406,20 @@
|
|||
return this.get('reshare').share_type;
|
||||
},
|
||||
|
||||
/**
|
||||
* Returns all share entries that only apply to the current item
|
||||
* (file/folder)
|
||||
*
|
||||
* @return {Array.<OC.Share.Types.ShareInfo>}
|
||||
*/
|
||||
getSharesWithCurrentItem: function() {
|
||||
var shares = this.get('shares') || [];
|
||||
var fileId = this.fileInfoModel.get('id');
|
||||
return _.filter(shares, function(share) {
|
||||
return share.item_source === fileId;
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* @param shareIndex
|
||||
* @returns {string}
|
||||
|
|
|
@ -304,6 +304,63 @@ describe('OC.Share.ShareItemModel', function() {
|
|||
expect(share.expiration).toEqual('2015-10-12 00:00:00');
|
||||
});
|
||||
});
|
||||
describe('hasUserShares', function() {
|
||||
it('returns false when no user shares exist', function() {
|
||||
loadItemStub.yields({
|
||||
reshare: {},
|
||||
shares: []
|
||||
});
|
||||
|
||||
model.fetch();
|
||||
|
||||
expect(model.hasUserShares()).toEqual(false);
|
||||
});
|
||||
it('returns true when user shares exist on the current item', function() {
|
||||
loadItemStub.yields({
|
||||
reshare: {},
|
||||
shares: [{
|
||||
id: 1,
|
||||
share_type: OC.Share.SHARE_TYPE_USER,
|
||||
share_with: 'user1',
|
||||
item_source: '123'
|
||||
}]
|
||||
});
|
||||
|
||||
model.fetch();
|
||||
|
||||
expect(model.hasUserShares()).toEqual(true);
|
||||
});
|
||||
it('returns true when group shares exist on the current item', function() {
|
||||
loadItemStub.yields({
|
||||
reshare: {},
|
||||
shares: [{
|
||||
id: 1,
|
||||
share_type: OC.Share.SHARE_TYPE_GROUP,
|
||||
share_with: 'group1',
|
||||
item_source: '123'
|
||||
}]
|
||||
});
|
||||
|
||||
model.fetch();
|
||||
|
||||
expect(model.hasUserShares()).toEqual(true);
|
||||
});
|
||||
it('returns false when share exist on parent item', function() {
|
||||
loadItemStub.yields({
|
||||
reshare: {},
|
||||
shares: [{
|
||||
id: 1,
|
||||
share_type: OC.Share.SHARE_TYPE_GROUP,
|
||||
share_with: 'group1',
|
||||
item_source: '111'
|
||||
}]
|
||||
});
|
||||
|
||||
model.fetch();
|
||||
|
||||
expect(model.hasUserShares()).toEqual(false);
|
||||
});
|
||||
});
|
||||
|
||||
describe('Util', function() {
|
||||
it('parseTime should properly parse strings', function() {
|
||||
|
|
Loading…
Reference in New Issue