mirror of
https://github.com/nextcloud/server.git
synced 2026-06-14 19:20:35 -04:00
fix(comments): Check comment object
Signed-off-by: Joas Schilling <coding@schilljs.com>
This commit is contained in:
parent
2938337731
commit
0aceb8fd11
4 changed files with 43 additions and 9 deletions
|
|
@ -84,6 +84,10 @@ class EntityCollection extends RootCollection implements IProperties {
|
|||
public function getChild($name) {
|
||||
try {
|
||||
$comment = $this->commentsManager->get($name);
|
||||
if ($comment->getObjectType() !== $this->name
|
||||
|| $comment->getObjectId() !== $this->id) {
|
||||
throw new NotFound();
|
||||
}
|
||||
return new CommentNode(
|
||||
$this->commentsManager,
|
||||
$comment,
|
||||
|
|
@ -137,8 +141,9 @@ class EntityCollection extends RootCollection implements IProperties {
|
|||
*/
|
||||
public function childExists($name) {
|
||||
try {
|
||||
$this->commentsManager->get($name);
|
||||
return true;
|
||||
$comment = $this->commentsManager->get($name);
|
||||
return $comment->getObjectType() === $this->name
|
||||
&& $comment->getObjectId() === $this->id;
|
||||
} catch (NotFoundException $e) {
|
||||
return false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -58,14 +58,16 @@ class EntityCollectionTest extends \Test\TestCase {
|
|||
}
|
||||
|
||||
public function testGetChild(): void {
|
||||
$comment = $this->createMock(IComment::class);
|
||||
$comment->method('getObjectType')
|
||||
->willReturn('files');
|
||||
$comment->method('getObjectId')
|
||||
->willReturn('19');
|
||||
|
||||
$this->commentsManager->expects($this->once())
|
||||
->method('get')
|
||||
->with('55')
|
||||
->willReturn(
|
||||
$this->getMockBuilder(IComment::class)
|
||||
->disableOriginalConstructor()
|
||||
->getMock()
|
||||
);
|
||||
->willReturn($comment);
|
||||
|
||||
$node = $this->collection->getChild('55');
|
||||
$this->assertTrue($node instanceof \OCA\DAV\Comments\CommentNode);
|
||||
|
|
@ -117,6 +119,17 @@ class EntityCollectionTest extends \Test\TestCase {
|
|||
}
|
||||
|
||||
public function testChildExistsTrue(): void {
|
||||
$comment = $this->createMock(IComment::class);
|
||||
$comment->method('getObjectType')
|
||||
->willReturn('files');
|
||||
$comment->method('getObjectId')
|
||||
->willReturn('19');
|
||||
|
||||
$this->commentsManager->expects($this->once())
|
||||
->method('get')
|
||||
->with('44')
|
||||
->willReturn($comment);
|
||||
|
||||
$this->assertTrue($this->collection->childExists('44'));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1117,6 +1117,10 @@ class QueryBuilder implements IQueryBuilder {
|
|||
* @return $this This QueryBuilder instance.
|
||||
*/
|
||||
public function orderBy($sort, $order = null) {
|
||||
if ($order !== null && !in_array(strtoupper((string) $order), ['ASC', 'DESC'], true)) {
|
||||
$order = null;
|
||||
}
|
||||
|
||||
$this->queryBuilder->orderBy(
|
||||
$this->helper->quoteColumnName($sort),
|
||||
$order
|
||||
|
|
@ -1134,6 +1138,10 @@ class QueryBuilder implements IQueryBuilder {
|
|||
* @return $this This QueryBuilder instance.
|
||||
*/
|
||||
public function addOrderBy($sort, $order = null) {
|
||||
if ($order !== null && !in_array(strtoupper((string) $order), ['ASC', 'DESC'], true)) {
|
||||
$order = null;
|
||||
}
|
||||
|
||||
$this->queryBuilder->addOrderBy(
|
||||
$this->helper->quoteColumnName($sort),
|
||||
$order
|
||||
|
|
|
|||
|
|
@ -276,13 +276,21 @@ class ShardedQueryBuilder extends ExtendedQueryBuilder {
|
|||
}
|
||||
|
||||
public function addOrderBy($sort, $order = null) {
|
||||
$this->registerOrder((string) $sort, (string) $order ?? 'ASC');
|
||||
if ($order !== null && !in_array(strtoupper((string) $order), ['ASC', 'DESC'], true)) {
|
||||
$order = null;
|
||||
}
|
||||
|
||||
$this->registerOrder((string) $sort, (string) ($order ?? 'ASC'));
|
||||
return parent::addOrderBy($sort, $order);
|
||||
}
|
||||
|
||||
public function orderBy($sort, $order = null) {
|
||||
if ($order !== null && !in_array(strtoupper((string) $order), ['ASC', 'DESC'], true)) {
|
||||
$order = null;
|
||||
}
|
||||
|
||||
$this->sortList = [];
|
||||
$this->registerOrder((string) $sort, (string) $order ?? 'ASC');
|
||||
$this->registerOrder((string) $sort, (string) ($order ?? 'ASC'));
|
||||
return parent::orderBy($sort, $order);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue