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}
|
* @returns {boolean}
|
||||||
*/
|
*/
|
||||||
hasUserShares: function() {
|
hasUserShares: function() {
|
||||||
var shares = this.get('shares');
|
return this.getSharesWithCurrentItem().length > 0;
|
||||||
return _.isArray(shares) && shares.length > 0;
|
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -407,6 +406,20 @@
|
||||||
return this.get('reshare').share_type;
|
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
|
* @param shareIndex
|
||||||
* @returns {string}
|
* @returns {string}
|
||||||
|
|
|
@ -304,6 +304,63 @@ describe('OC.Share.ShareItemModel', function() {
|
||||||
expect(share.expiration).toEqual('2015-10-12 00:00:00');
|
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() {
|
describe('Util', function() {
|
||||||
it('parseTime should properly parse strings', function() {
|
it('parseTime should properly parse strings', function() {
|
||||||
|
|
Loading…
Reference in New Issue