Merge pull request #22285 from owncloud/fix_22275

Only show link shares for the current user
This commit is contained in:
Thomas Müller 2016-02-10 20:01:41 +01:00
commit 3184115c3c
3 changed files with 19 additions and 4 deletions

View File

@ -46,6 +46,7 @@
* @property {string} mail_send
* @property {Date} expiration optional?
* @property {number} stime optional?
* @property {string} uid_owner
*/
/**
@ -725,6 +726,14 @@
|| share.item_source === this.get('itemSource'));
if (isShareLink) {
/*
* Ignore reshared link shares for now
* FIXME: Find a way to display properly
*/
if (share.uid_owner !== OC.currentUser) {
return share;
}
var link = window.location.protocol + '//' + window.location.host;
if (!share.token) {
// pre-token link

View File

@ -164,6 +164,8 @@ describe('OC.Share.ShareItemModel', function() {
}
]));
OC.currentUser = 'root';
model.fetch();
var shares = model.get('shares');
@ -253,7 +255,7 @@ describe('OC.Share.ShareItemModel', function() {
uid_owner: 'root'
}]
));
OC.currentUser = 'root';
model.fetch();
var shares = model.get('shares');
@ -443,7 +445,7 @@ describe('OC.Share.ShareItemModel', function() {
token: 'tehtoken',
uid_owner: 'root'
}]));
OC.currentUser = 'root';
model.fetch();
var res = model.sendEmailPrivateLink('foo@bar.com');
@ -493,7 +495,7 @@ describe('OC.Share.ShareItemModel', function() {
token: 'tehtoken',
uid_owner: 'root'
}]));
OC.currentUser = 'root';
model.fetch();
var res = model.sendEmailPrivateLink('foo@bar.com');

View File

@ -2495,7 +2495,8 @@ class Share extends Constants {
if ($fileDependent) {
$select = '`*PREFIX*share`.`id`, `*PREFIX*share`.`parent`, `share_type`, `path`, `storage`, '
. '`share_with`, `uid_owner` , `file_source`, `stime`, `*PREFIX*share`.`permissions`, '
. '`*PREFIX*storages`.`id` AS `storage_id`, `*PREFIX*filecache`.`parent` as `file_parent`';
. '`*PREFIX*storages`.`id` AS `storage_id`, `*PREFIX*filecache`.`parent` as `file_parent`, '
. '`uid_initiator`';
} else {
$select = '`id`, `parent`, `share_type`, `share_with`, `uid_owner`, `item_source`, `stime`, `*PREFIX*share`.`permissions`';
}
@ -2583,6 +2584,9 @@ class Share extends Constants {
$statuses = array();
foreach ($items as $item) {
if ($item['share_type'] === self::SHARE_TYPE_LINK) {
if ($item['uid_initiator'] !== \OC::$server->getUserSession()->getUser()->getUID()) {
continue;
}
$statuses[$item[$column]]['link'] = true;
} else if (!isset($statuses[$item[$column]])) {
$statuses[$item[$column]]['link'] = false;