Some activity hardening
This commit is contained in:
Julius Härtl 2019-04-23 09:01:22 +02:00 коммит произвёл GitHub
Родитель f2b0123f75 223de1e54f
Коммит 05576abd27
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
3 изменённых файлов: 17 добавлений и 11 удалений

Просмотреть файл

@ -302,6 +302,8 @@ class ActivityManager {
try {
$object = $this->findObjectForEntity($objectType, $entity);
} catch (DoesNotExistException $e) {
\OC::$server->getLogger()->error('Could not create activity entry for ' . $subject . '. Entity not found.', $entity);
return null;
} catch (MultipleObjectsReturnedException $e) {
\OC::$server->getLogger()->error('Could not create activity entry for ' . $subject . '. Entity not found.', $entity);
return null;

Просмотреть файл

@ -95,16 +95,18 @@ class DeckProvider implements IProvider {
unset($subjectParams['author']);
}
$user = $this->userManager->get($author);
$params = [
'user' => [
'type' => 'user',
'id' => $author,
'name' => $user !== null ? $user->getDisplayName() : $author
],
];
$event->setAuthor($author);
if ($user !== null) {
$params = [
'user' => [
'type' => 'user',
'id' => $author,
'name' => $user !== null ? $user->getDisplayName() : $author
],
];
$event->setAuthor($author);
}
if ($event->getObjectType() === ActivityManager::DECK_OBJECT_BOARD) {
if ($event->getObjectName() === '') {
if (isset($subjectParams['board']) && $event->getObjectName() === '') {
$event->setObject($event->getObjectType(), $event->getObjectId(), $subjectParams['board']['title']);
}
$board = [
@ -116,7 +118,7 @@ class DeckProvider implements IProvider {
$params['board'] = $board;
}
if ($event->getObjectType() === ActivityManager::DECK_OBJECT_CARD) {
if (isset($subjectParams['card']) && $event->getObjectType() === ActivityManager::DECK_OBJECT_CARD) {
if ($event->getObjectName() === '') {
$event->setObject($event->getObjectType(), $event->getObjectId(), $subjectParams['card']['title']);
}

Просмотреть файл

@ -25,6 +25,7 @@ namespace OCA\Deck\Activity;
use OC\Activity\Event;
use OCA\Deck\Db\Acl;
use OCA\Deck\Db\Card;
use OCP\Activity\IEvent;
use OCP\Comments\IComment;
use OCP\Comments\ICommentsManager;
@ -212,7 +213,7 @@ class DeckProviderTest extends TestCase {
$event = new Event($richValidator);
$event->setApp('deck');
$event->setSubject(ActivityManager::SUBJECT_CARD_CREATE);
$event->setSubject(ActivityManager::SUBJECT_CARD_CREATE, ['card' => new Card()]);
$event->setAffectedUser($this->userId);
$event->setAuthor($this->userId);
$event->setObject(ActivityManager::DECK_OBJECT_CARD, 1, 'Card');
@ -260,6 +261,7 @@ class DeckProviderTest extends TestCase {
'before' => 'ABC',
'after' => 'BCD',
'diff' => true,
'card' => new Card()
]);
$event->setAffectedUser($this->userId);
$event->setAuthor($this->userId);