Merge pull request #21623 from owncloud/stricter_defaultprovider
[Share 2.0] Default share provider should only query for supported types
This commit is contained in:
commit
3f64d37f2a
|
@ -36,6 +36,9 @@ use OCP\Files\Node;
|
|||
*/
|
||||
class DefaultShareProvider implements IShareProvider {
|
||||
|
||||
// Special share type for user modified group shares
|
||||
const SHARE_TYPE_USERGROUP = 2;
|
||||
|
||||
/** @var IDBConnection */
|
||||
private $dbConn;
|
||||
|
||||
|
@ -185,8 +188,18 @@ class DefaultShareProvider implements IShareProvider {
|
|||
$qb = $this->dbConn->getQueryBuilder();
|
||||
$qb->select('*')
|
||||
->from('share')
|
||||
->where($qb->expr()->eq('parent', $qb->createParameter('parent')))
|
||||
->setParameter(':parent', $parent->getId())
|
||||
->where($qb->expr()->eq('parent', $qb->createNamedParameter($parent->getId())))
|
||||
->andWhere(
|
||||
$qb->expr()->in(
|
||||
'share_type',
|
||||
[
|
||||
$qb->expr()->literal(\OCP\Share::SHARE_TYPE_USER),
|
||||
$qb->expr()->literal(\OCP\Share::SHARE_TYPE_GROUP),
|
||||
$qb->expr()->literal(\OCP\Share::SHARE_TYPE_LINK),
|
||||
$qb->expr()->literal(self::SHARE_TYPE_USERGROUP),
|
||||
]
|
||||
)
|
||||
)
|
||||
->orderBy('id');
|
||||
|
||||
$cursor = $qb->execute();
|
||||
|
@ -210,8 +223,7 @@ class DefaultShareProvider implements IShareProvider {
|
|||
|
||||
$qb = $this->dbConn->getQueryBuilder();
|
||||
$qb->delete('share')
|
||||
->where($qb->expr()->eq('id', $qb->createParameter('id')))
|
||||
->setParameter(':id', $share->getId());
|
||||
->where($qb->expr()->eq('id', $qb->createNamedParameter($share->getId())));
|
||||
|
||||
try {
|
||||
$qb->execute();
|
||||
|
@ -244,8 +256,18 @@ class DefaultShareProvider implements IShareProvider {
|
|||
|
||||
$qb->select('*')
|
||||
->from('share')
|
||||
->where($qb->expr()->eq('id', $qb->createParameter('id')))
|
||||
->setParameter(':id', $id);
|
||||
->where($qb->expr()->eq('id', $qb->createNamedParameter($id)))
|
||||
->andWhere(
|
||||
$qb->expr()->in(
|
||||
'share_type',
|
||||
[
|
||||
$qb->expr()->literal(\OCP\Share::SHARE_TYPE_USER),
|
||||
$qb->expr()->literal(\OCP\Share::SHARE_TYPE_GROUP),
|
||||
$qb->expr()->literal(\OCP\Share::SHARE_TYPE_LINK),
|
||||
$qb->expr()->literal(self::SHARE_TYPE_USERGROUP),
|
||||
]
|
||||
)
|
||||
);
|
||||
|
||||
$cursor = $qb->execute();
|
||||
$data = $cursor->fetch();
|
||||
|
|
|
@ -374,9 +374,6 @@ class DefaultShareProviderTest extends \Test\TestCase {
|
|||
$qb->expects($this->once())
|
||||
->method('where')
|
||||
->will($this->returnSelf());
|
||||
$qb->expects($this->once())
|
||||
->method('setParameter')
|
||||
->will($this->returnSelf());
|
||||
$qb->expects($this->once())
|
||||
->method('execute')
|
||||
->will($this->throwException(new \Exception));
|
||||
|
|
Loading…
Reference in New Issue