Merge pull request #179 from nextcloud/fix-unlisted-post

Display on to:PUBLIC message
pull/242/head
Maxence Lange 2018-12-18 15:41:21 -01:00 zatwierdzone przez GitHub
commit cfc79e1e0f
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 4AEE18F83AFDEB23
2 zmienionych plików z 37 dodań i 8 usunięć

Wyświetl plik

@ -266,7 +266,7 @@ class NotesRequest extends NotesRequestBuilder {
}
$this->leftJoinCacheActors($qb, 'attributed_to');
// TODO: to: = real public, cc: = unlisted !?
$this->limitToRecipient($qb, ActivityService::TO_PUBLIC);
$this->limitToRecipient($qb, ActivityService::TO_PUBLIC, true, ['to']);
$notes = [];
$cursor = $qb->execute();

Wyświetl plik

@ -230,11 +230,12 @@ class NotesRequestBuilder extends CoreRequestBuilder {
* @param IQueryBuilder $qb
* @param string $recipient
* @param bool $asAuthor
* @param array $type
*/
protected function limitToRecipient(
IQueryBuilder &$qb, string $recipient, bool $asAuthor = false
IQueryBuilder &$qb, string $recipient, bool $asAuthor = false, array $type = []
) {
$qb->andWhere($this->exprLimitToRecipient($qb, $recipient, $asAuthor));
$qb->andWhere($this->exprLimitToRecipient($qb, $recipient, $asAuthor, $type));
}
@ -242,11 +243,12 @@ class NotesRequestBuilder extends CoreRequestBuilder {
* @param IQueryBuilder $qb
* @param string $recipient
* @param bool $asAuthor
* @param array $type
*
* @return ICompositeExpression
*/
protected function exprLimitToRecipient(
IQueryBuilder &$qb, string $recipient, bool $asAuthor = false
IQueryBuilder &$qb, string $recipient, bool $asAuthor = false, array $type = []
): ICompositeExpression {
$expr = $qb->expr();
@ -262,15 +264,42 @@ class NotesRequestBuilder extends CoreRequestBuilder {
);
}
$limit->add($expr->eq('to', $qb->createNamedParameter($recipient)));
$limit->add($this->exprValueWithinJsonFormat($qb, 'to_array', $recipient));
$limit->add($this->exprValueWithinJsonFormat($qb, 'cc', $recipient));
$limit->add($this->exprValueWithinJsonFormat($qb, 'bcc', $recipient));
if ($type === []) {
$type = ['to', 'cc', 'bcc'];
}
$this->addLimitToRecipient($qb, $limit, $type, $recipient);
return $limit;
}
/**
* @param IQueryBuilder $qb
* @param ICompositeExpression $limit
* @param array $type
* @param string $to
*/
private function addLimitToRecipient(
IQueryBuilder $qb, ICompositeExpression &$limit, array $type, string $to
) {
$expr = $qb->expr();
if (in_array('to', $type)) {
$limit->add($expr->eq('to', $qb->createNamedParameter($to)));
$limit->add($this->exprValueWithinJsonFormat($qb, 'to_array', $to));
}
if (in_array('cc', $type)) {
$limit->add($this->exprValueWithinJsonFormat($qb, 'cc', $to));
}
if (in_array('bcc', $type)) {
$limit->add($this->exprValueWithinJsonFormat($qb, 'bcc', $to));
}
}
/**
* @param IQueryBuilder $qb
* @param string $recipient