Catch any error during circle detail fetching

Signed-off-by: Julius Härtl <jus@bitgrid.net>
This commit is contained in:
Julius Härtl
2021-05-03 08:07:58 +02:00
parent 17cf314738
commit ff7bf7d0cc
2 changed files with 13 additions and 6 deletions

View File

@@ -28,6 +28,7 @@ use OCP\IDBConnection;
use OCP\ILogger; use OCP\ILogger;
use OCP\IUserManager; use OCP\IUserManager;
use OCP\IGroupManager; use OCP\IGroupManager;
use Psr\Log\LoggerInterface;
class BoardMapper extends DeckMapper implements IPermissionMapper { class BoardMapper extends DeckMapper implements IPermissionMapper {
private $labelMapper; private $labelMapper;
@@ -35,6 +36,7 @@ class BoardMapper extends DeckMapper implements IPermissionMapper {
private $stackMapper; private $stackMapper;
private $userManager; private $userManager;
private $groupManager; private $groupManager;
private $logger;
private $circlesEnabled; private $circlesEnabled;
@@ -44,7 +46,8 @@ class BoardMapper extends DeckMapper implements IPermissionMapper {
AclMapper $aclMapper, AclMapper $aclMapper,
StackMapper $stackMapper, StackMapper $stackMapper,
IUserManager $userManager, IUserManager $userManager,
IGroupManager $groupManager IGroupManager $groupManager,
LoggerInterface $logger
) { ) {
parent::__construct($db, 'deck_boards', Board::class); parent::__construct($db, 'deck_boards', Board::class);
$this->labelMapper = $labelMapper; $this->labelMapper = $labelMapper;
@@ -52,6 +55,7 @@ class BoardMapper extends DeckMapper implements IPermissionMapper {
$this->stackMapper = $stackMapper; $this->stackMapper = $stackMapper;
$this->userManager = $userManager; $this->userManager = $userManager;
$this->groupManager = $groupManager; $this->groupManager = $groupManager;
$this->logger = $logger;
$this->circlesEnabled = \OC::$server->getAppManager()->isEnabledForUser('circles'); $this->circlesEnabled = \OC::$server->getAppManager()->isEnabledForUser('circles');
} }
@@ -238,7 +242,7 @@ class BoardMapper extends DeckMapper implements IPermissionMapper {
if ($user !== null) { if ($user !== null) {
return new User($user); return new User($user);
} }
\OC::$server->getLogger()->debug('User ' . $acl->getId() . ' not found when mapping acl ' . $acl->getParticipant()); $this->logger->debug('User ' . $acl->getId() . ' not found when mapping acl ' . $acl->getParticipant());
return null; return null;
} }
if ($acl->getType() === Acl::PERMISSION_TYPE_GROUP) { if ($acl->getType() === Acl::PERMISSION_TYPE_GROUP) {
@@ -246,7 +250,7 @@ class BoardMapper extends DeckMapper implements IPermissionMapper {
if ($group !== null) { if ($group !== null) {
return new Group($group); return new Group($group);
} }
\OC::$server->getLogger()->debug('Group ' . $acl->getId() . ' not found when mapping acl ' . $acl->getParticipant()); $this->logger->debug('Group ' . $acl->getId() . ' not found when mapping acl ' . $acl->getParticipant());
return null; return null;
} }
if ($acl->getType() === Acl::PERMISSION_TYPE_CIRCLE) { if ($acl->getType() === Acl::PERMISSION_TYPE_CIRCLE) {
@@ -258,11 +262,12 @@ class BoardMapper extends DeckMapper implements IPermissionMapper {
if ($circle) { if ($circle) {
return new Circle($circle); return new Circle($circle);
} }
} catch (\Exception $e) { } catch (\Throwable $e) {
$this->logger->error('Failed to get circle details when building ACL', ['exception' => $e]);
} }
return null; return null;
} }
\OC::$server->getLogger()->log(ILogger::WARN, 'Unknown permission type for mapping acl ' . $acl->getId()); $this->logger->warning('Unknown permission type for mapping acl ' . $acl->getId());
return null; return null;
}); });
} }

View File

@@ -26,6 +26,7 @@ namespace OCA\Deck\Db;
use OCP\IDBConnection; use OCP\IDBConnection;
use OCP\IGroupManager; use OCP\IGroupManager;
use OCP\IUserManager; use OCP\IUserManager;
use Psr\Log\LoggerInterface;
use Test\AppFramework\Db\MapperTestUtility; use Test\AppFramework\Db\MapperTestUtility;
/** /**
@@ -61,7 +62,8 @@ class BoardMapperTest extends MapperTestUtility {
\OC::$server->query(AclMapper::class), \OC::$server->query(AclMapper::class),
\OC::$server->query(StackMapper::class), \OC::$server->query(StackMapper::class),
$this->userManager, $this->userManager,
$this->groupManager $this->groupManager,
$this->createMock(LoggerInterface::class)
); );
$this->aclMapper = \OC::$server->query(AclMapper::class); $this->aclMapper = \OC::$server->query(AclMapper::class);
$this->labelMapper = \OC::$server->query(LabelMapper::class); $this->labelMapper = \OC::$server->query(LabelMapper::class);