|
|
|
|
@ -322,10 +322,7 @@ class DefaultShareProvider implements IShareProviderWithNotification, IShareProv
|
|
|
|
|
->where($qb->expr()->eq('share_type', $qb->createNamedParameter(IShare::TYPE_USERGROUP)))
|
|
|
|
|
->andWhere($qb->expr()->eq('share_with', $qb->createNamedParameter($recipient)))
|
|
|
|
|
->andWhere($qb->expr()->eq('parent', $qb->createNamedParameter($share->getId())))
|
|
|
|
|
->andWhere($qb->expr()->orX(
|
|
|
|
|
$qb->expr()->eq('item_type', $qb->createNamedParameter('file')),
|
|
|
|
|
$qb->expr()->eq('item_type', $qb->createNamedParameter('folder'))
|
|
|
|
|
))
|
|
|
|
|
->andWhere($qb->expr()->in('item_type', $qb->createNamedParameter(['file', 'folder'], IQueryBuilder::PARAM_STR_ARRAY)))
|
|
|
|
|
->executeQuery();
|
|
|
|
|
|
|
|
|
|
$data = $stmt->fetch();
|
|
|
|
|
@ -383,10 +380,7 @@ class DefaultShareProvider implements IShareProviderWithNotification, IShareProv
|
|
|
|
|
], IQueryBuilder::PARAM_INT_ARRAY)
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
->andWhere($qb->expr()->orX(
|
|
|
|
|
$qb->expr()->eq('item_type', $qb->createNamedParameter('file')),
|
|
|
|
|
$qb->expr()->eq('item_type', $qb->createNamedParameter('folder'))
|
|
|
|
|
))
|
|
|
|
|
->andWhere($qb->expr()->in('item_type', $qb->createNamedParameter(['file', 'folder'], IQueryBuilder::PARAM_STR_ARRAY)))
|
|
|
|
|
->orderBy('id');
|
|
|
|
|
|
|
|
|
|
$cursor = $qb->executeQuery();
|
|
|
|
|
@ -449,10 +443,7 @@ class DefaultShareProvider implements IShareProviderWithNotification, IShareProv
|
|
|
|
|
->where($qb->expr()->eq('share_type', $qb->createNamedParameter(IShare::TYPE_USERGROUP)))
|
|
|
|
|
->andWhere($qb->expr()->eq('share_with', $qb->createNamedParameter($recipient)))
|
|
|
|
|
->andWhere($qb->expr()->eq('parent', $qb->createNamedParameter($share->getId())))
|
|
|
|
|
->andWhere($qb->expr()->orX(
|
|
|
|
|
$qb->expr()->eq('item_type', $qb->createNamedParameter('file')),
|
|
|
|
|
$qb->expr()->eq('item_type', $qb->createNamedParameter('folder'))
|
|
|
|
|
))
|
|
|
|
|
->andWhere($qb->expr()->in('item_type', $qb->createNamedParameter(['file', 'folder'], IQueryBuilder::PARAM_STR_ARRAY)))
|
|
|
|
|
->executeQuery();
|
|
|
|
|
|
|
|
|
|
$data = $stmt->fetch();
|
|
|
|
|
@ -565,10 +556,7 @@ class DefaultShareProvider implements IShareProviderWithNotification, IShareProv
|
|
|
|
|
->where($qb->expr()->eq('share_type', $qb->createNamedParameter(IShare::TYPE_USERGROUP)))
|
|
|
|
|
->andWhere($qb->expr()->eq('share_with', $qb->createNamedParameter($recipient)))
|
|
|
|
|
->andWhere($qb->expr()->eq('parent', $qb->createNamedParameter($share->getId())))
|
|
|
|
|
->andWhere($qb->expr()->orX(
|
|
|
|
|
$qb->expr()->eq('item_type', $qb->createNamedParameter('file')),
|
|
|
|
|
$qb->expr()->eq('item_type', $qb->createNamedParameter('folder'))
|
|
|
|
|
))
|
|
|
|
|
->andWhere($qb->expr()->in('item_type', $qb->createNamedParameter(['file', 'folder'], IQueryBuilder::PARAM_STR_ARRAY)))
|
|
|
|
|
->setMaxResults(1)
|
|
|
|
|
->executeQuery();
|
|
|
|
|
|
|
|
|
|
@ -621,16 +609,9 @@ class DefaultShareProvider implements IShareProviderWithNotification, IShareProv
|
|
|
|
|
'f.parent AS f_parent', 'f.name', 'f.mimetype', 'f.mimepart', 'f.size', 'f.mtime', 'f.storage_mtime',
|
|
|
|
|
'f.encrypted', 'f.unencrypted_size', 'f.etag', 'f.checksum')
|
|
|
|
|
->from('share', 's')
|
|
|
|
|
->andWhere($qb->expr()->orX(
|
|
|
|
|
$qb->expr()->eq('item_type', $qb->createNamedParameter('file')),
|
|
|
|
|
$qb->expr()->eq('item_type', $qb->createNamedParameter('folder'))
|
|
|
|
|
));
|
|
|
|
|
->andWhere($qb->expr()->in('item_type', $qb->createNamedParameter(['file', 'folder'], IQueryBuilder::PARAM_STR_ARRAY)));
|
|
|
|
|
|
|
|
|
|
$qb->andWhere($qb->expr()->orX(
|
|
|
|
|
$qb->expr()->eq('share_type', $qb->createNamedParameter(IShare::TYPE_USER)),
|
|
|
|
|
$qb->expr()->eq('share_type', $qb->createNamedParameter(IShare::TYPE_GROUP)),
|
|
|
|
|
$qb->expr()->eq('share_type', $qb->createNamedParameter(IShare::TYPE_LINK))
|
|
|
|
|
));
|
|
|
|
|
$qb->andWhere($qb->expr()->in('share_type', $qb->createNamedParameter([IShare::TYPE_USER, IShare::TYPE_GROUP, IShare::TYPE_LINK], IQueryBuilder::PARAM_INT_ARRAY)));
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Reshares for this user are shares where they are the owner.
|
|
|
|
|
@ -693,10 +674,7 @@ class DefaultShareProvider implements IShareProviderWithNotification, IShareProv
|
|
|
|
|
$qb = $this->dbConn->getQueryBuilder();
|
|
|
|
|
$qb->select('*')
|
|
|
|
|
->from('share')
|
|
|
|
|
->andWhere($qb->expr()->orX(
|
|
|
|
|
$qb->expr()->eq('item_type', $qb->createNamedParameter('file')),
|
|
|
|
|
$qb->expr()->eq('item_type', $qb->createNamedParameter('folder'))
|
|
|
|
|
));
|
|
|
|
|
->andWhere($qb->expr()->in('item_type', $qb->createNamedParameter(['file', 'folder'], IQueryBuilder::PARAM_STR_ARRAY)));
|
|
|
|
|
|
|
|
|
|
$qb->andWhere($qb->expr()->eq('share_type', $qb->createNamedParameter($shareType)));
|
|
|
|
|
|
|
|
|
|
@ -756,10 +734,7 @@ class DefaultShareProvider implements IShareProviderWithNotification, IShareProv
|
|
|
|
|
], IQueryBuilder::PARAM_INT_ARRAY)
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
->andWhere($qb->expr()->orX(
|
|
|
|
|
$qb->expr()->eq('item_type', $qb->createNamedParameter('file')),
|
|
|
|
|
$qb->expr()->eq('item_type', $qb->createNamedParameter('folder'))
|
|
|
|
|
));
|
|
|
|
|
->andWhere($qb->expr()->in('item_type', $qb->createNamedParameter(['file', 'folder'], IQueryBuilder::PARAM_STR_ARRAY)));
|
|
|
|
|
|
|
|
|
|
$cursor = $qb->executeQuery();
|
|
|
|
|
$data = $cursor->fetch();
|
|
|
|
|
@ -795,17 +770,8 @@ class DefaultShareProvider implements IShareProviderWithNotification, IShareProv
|
|
|
|
|
$cursor = $qb->select('*')
|
|
|
|
|
->from('share')
|
|
|
|
|
->andWhere($qb->expr()->eq('file_source', $qb->createNamedParameter($path->getId())))
|
|
|
|
|
->andWhere(
|
|
|
|
|
$qb->expr()->orX(
|
|
|
|
|
$qb->expr()->eq('share_type', $qb->createNamedParameter(IShare::TYPE_USER)),
|
|
|
|
|
$qb->expr()->eq('share_type', $qb->createNamedParameter(IShare::TYPE_GROUP)),
|
|
|
|
|
$qb->expr()->eq('share_type', $qb->createNamedParameter(IShare::TYPE_LINK)),
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
->andWhere($qb->expr()->orX(
|
|
|
|
|
$qb->expr()->eq('item_type', $qb->createNamedParameter('file')),
|
|
|
|
|
$qb->expr()->eq('item_type', $qb->createNamedParameter('folder'))
|
|
|
|
|
))
|
|
|
|
|
->andWhere($qb->expr()->in('share_type', $qb->createNamedParameter([IShare::TYPE_USER, IShare::TYPE_GROUP, IShare::TYPE_LINK], IQueryBuilder::PARAM_INT_ARRAY)))
|
|
|
|
|
->andWhere($qb->expr()->in('item_type', $qb->createNamedParameter(['file', 'folder'], IQueryBuilder::PARAM_STR_ARRAY)))
|
|
|
|
|
->orderBy('id', 'ASC')
|
|
|
|
|
->executeQuery();
|
|
|
|
|
|
|
|
|
|
@ -874,10 +840,7 @@ class DefaultShareProvider implements IShareProviderWithNotification, IShareProv
|
|
|
|
|
|
|
|
|
|
$qb->where($qb->expr()->eq('share_type', $qb->createNamedParameter(IShare::TYPE_USER)))
|
|
|
|
|
->andWhere($qb->expr()->eq('share_with', $qb->createNamedParameter($userId)))
|
|
|
|
|
->andWhere($qb->expr()->orX(
|
|
|
|
|
$qb->expr()->eq('item_type', $qb->createNamedParameter('file')),
|
|
|
|
|
$qb->expr()->eq('item_type', $qb->createNamedParameter('folder'))
|
|
|
|
|
));
|
|
|
|
|
->andWhere($qb->expr()->in('item_type', $qb->createNamedParameter(['file', 'folder'], IQueryBuilder::PARAM_STR_ARRAY)));
|
|
|
|
|
|
|
|
|
|
// Filter by node if provided
|
|
|
|
|
if ($node !== null) {
|
|
|
|
|
@ -942,10 +905,7 @@ class DefaultShareProvider implements IShareProviderWithNotification, IShareProv
|
|
|
|
|
$groups,
|
|
|
|
|
IQueryBuilder::PARAM_STR_ARRAY
|
|
|
|
|
)))
|
|
|
|
|
->andWhere($qb->expr()->orX(
|
|
|
|
|
$qb->expr()->eq('item_type', $qb->createNamedParameter('file')),
|
|
|
|
|
$qb->expr()->eq('item_type', $qb->createNamedParameter('folder'))
|
|
|
|
|
));
|
|
|
|
|
->andWhere($qb->expr()->in('item_type', $qb->createNamedParameter(['file', 'folder'], IQueryBuilder::PARAM_STR_ARRAY)));
|
|
|
|
|
|
|
|
|
|
$cursor = $qb->executeQuery();
|
|
|
|
|
while ($data = $cursor->fetch()) {
|
|
|
|
|
@ -988,10 +948,7 @@ class DefaultShareProvider implements IShareProviderWithNotification, IShareProv
|
|
|
|
|
->from('share')
|
|
|
|
|
->where($qb->expr()->eq('share_type', $qb->createNamedParameter(IShare::TYPE_LINK)))
|
|
|
|
|
->andWhere($qb->expr()->eq('token', $qb->createNamedParameter($token)))
|
|
|
|
|
->andWhere($qb->expr()->orX(
|
|
|
|
|
$qb->expr()->eq('item_type', $qb->createNamedParameter('file')),
|
|
|
|
|
$qb->expr()->eq('item_type', $qb->createNamedParameter('folder'))
|
|
|
|
|
))
|
|
|
|
|
->andWhere($qb->expr()->in('item_type', $qb->createNamedParameter(['file', 'folder'], IQueryBuilder::PARAM_STR_ARRAY)))
|
|
|
|
|
->executeQuery();
|
|
|
|
|
|
|
|
|
|
$data = $cursor->fetch();
|
|
|
|
|
@ -1090,7 +1047,7 @@ class DefaultShareProvider implements IShareProviderWithNotification, IShareProv
|
|
|
|
|
->from('share')
|
|
|
|
|
->where($qb->expr()->eq('share_with', $qb->createNamedParameter($userId)))
|
|
|
|
|
->andWhere($qb->expr()->eq('share_type', $qb->createNamedParameter(IShare::TYPE_USERGROUP)))
|
|
|
|
|
->andWhere($qb->expr()->in('item_type', [$qb->createNamedParameter('file'), $qb->createNamedParameter('folder')]));
|
|
|
|
|
->andWhere($qb->expr()->in('item_type', $qb->createNamedParameter(['file', 'folder'], IQueryBuilder::PARAM_STR_ARRAY)));
|
|
|
|
|
|
|
|
|
|
// this is called with either all group shares or one group share.
|
|
|
|
|
// for all shares it's easier to just only search by share_with,
|
|
|
|
|
@ -1147,10 +1104,7 @@ class DefaultShareProvider implements IShareProviderWithNotification, IShareProv
|
|
|
|
|
*/
|
|
|
|
|
$qb->where(
|
|
|
|
|
$qb->expr()->andX(
|
|
|
|
|
$qb->expr()->orX(
|
|
|
|
|
$qb->expr()->eq('share_type', $qb->createNamedParameter(IShare::TYPE_GROUP)),
|
|
|
|
|
$qb->expr()->eq('share_type', $qb->createNamedParameter(IShare::TYPE_USERGROUP))
|
|
|
|
|
),
|
|
|
|
|
$qb->expr()->in('share_type', $qb->createNamedParameter([IShare::TYPE_GROUP, IShare::TYPE_USERGROUP], IQueryBuilder::PARAM_INT_ARRAY)),
|
|
|
|
|
$qb->expr()->eq('uid_owner', $qb->createNamedParameter($uid))
|
|
|
|
|
)
|
|
|
|
|
);
|
|
|
|
|
@ -1323,26 +1277,19 @@ class DefaultShareProvider implements IShareProviderWithNotification, IShareProv
|
|
|
|
|
|
|
|
|
|
$qb = $this->dbConn->getQueryBuilder();
|
|
|
|
|
|
|
|
|
|
$or = $qb->expr()->orX(
|
|
|
|
|
$qb->expr()->eq('share_type', $qb->createNamedParameter(IShare::TYPE_USER)),
|
|
|
|
|
$qb->expr()->eq('share_type', $qb->createNamedParameter(IShare::TYPE_GROUP)),
|
|
|
|
|
$qb->expr()->eq('share_type', $qb->createNamedParameter(IShare::TYPE_LINK))
|
|
|
|
|
);
|
|
|
|
|
$shareTypes = [IShare::TYPE_USER, IShare::TYPE_GROUP, IShare::TYPE_LINK];
|
|
|
|
|
|
|
|
|
|
if ($currentAccess) {
|
|
|
|
|
$or->add($qb->expr()->eq('share_type', $qb->createNamedParameter(IShare::TYPE_USERGROUP)));
|
|
|
|
|
$shareTypes[] = IShare::TYPE_USERGROUP;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$qb->select('id', 'parent', 'share_type', 'share_with', 'file_source', 'file_target', 'permissions')
|
|
|
|
|
->from('share')
|
|
|
|
|
->where(
|
|
|
|
|
$or
|
|
|
|
|
$qb->expr()->in('share_type', $qb->createNamedParameter($shareTypes, IQueryBuilder::PARAM_INT_ARRAY))
|
|
|
|
|
)
|
|
|
|
|
->andWhere($qb->expr()->in('file_source', $qb->createNamedParameter($ids, IQueryBuilder::PARAM_INT_ARRAY)))
|
|
|
|
|
->andWhere($qb->expr()->orX(
|
|
|
|
|
$qb->expr()->eq('item_type', $qb->createNamedParameter('file')),
|
|
|
|
|
$qb->expr()->eq('item_type', $qb->createNamedParameter('folder'))
|
|
|
|
|
));
|
|
|
|
|
->andWhere($qb->expr()->in('item_type', $qb->createNamedParameter(['file', 'folder'], IQueryBuilder::PARAM_STR_ARRAY)));
|
|
|
|
|
|
|
|
|
|
// Ensure accepted is true for user and usergroup type
|
|
|
|
|
$qb->andWhere(
|
|
|
|
|
@ -1659,13 +1606,7 @@ class DefaultShareProvider implements IShareProviderWithNotification, IShareProv
|
|
|
|
|
|
|
|
|
|
$qb->select('*')
|
|
|
|
|
->from('share')
|
|
|
|
|
->where(
|
|
|
|
|
$qb->expr()->orX(
|
|
|
|
|
$qb->expr()->eq('share_type', $qb->createNamedParameter(\OCP\Share\IShare::TYPE_USER)),
|
|
|
|
|
$qb->expr()->eq('share_type', $qb->createNamedParameter(\OCP\Share\IShare::TYPE_GROUP)),
|
|
|
|
|
$qb->expr()->eq('share_type', $qb->createNamedParameter(\OCP\Share\IShare::TYPE_LINK))
|
|
|
|
|
)
|
|
|
|
|
);
|
|
|
|
|
->where($qb->expr()->in('share_type', $qb->createNamedParameter([IShare::TYPE_USER, IShare::TYPE_GROUP, IShare::TYPE_LINK], IQueryBuilder::PARAM_INT_ARRAY)));
|
|
|
|
|
|
|
|
|
|
$cursor = $qb->executeQuery();
|
|
|
|
|
while ($data = $cursor->fetch()) {
|
|
|
|
|
|