Add proper error handling when user/group cannot be found

Signed-off-by: Julius Härtl <jus@bitgrid.net>
This commit is contained in:
Julius Härtl
2017-05-04 11:26:45 +02:00
parent a6b6842e2b
commit 860cbab1d3
3 changed files with 15 additions and 5 deletions

View File

@@ -176,7 +176,7 @@ class BoardMapper extends DeckMapper implements IPermissionMapper {
return new User($user);
} else {
\OC::$server->getLogger()->debug('User ' . $acl->getId() . ' not found when mapping acl ' . $acl->getParticipant());
return $participant;
return null;
}
}
if($acl->getType() === Acl::PERMISSION_TYPE_GROUP) {
@@ -185,7 +185,7 @@ class BoardMapper extends DeckMapper implements IPermissionMapper {
return new Group($group);
} else {
\OC::$server->getLogger()->debug('Group ' . $acl->getId() . ' not found when mapping acl ' . $acl->getParticipant());
return $participant;
return null;
}
}
throw new \Exception('Unknown permission type for mapping Acl');
@@ -198,7 +198,11 @@ class BoardMapper extends DeckMapper implements IPermissionMapper {
public function mapOwner(Board &$board) {
$userManager = $this->userManager;
$board->resolveRelation('owner', function($owner) use (&$userManager) {
return new User($userManager->get($owner));
$user = $userManager->get($owner);
if($user !== null) {
return new User($user);
}
return null;
});
}

View File

@@ -31,6 +31,7 @@ use OCP\IUserManager;
class CardMapper extends DeckMapper implements IPermissionMapper {
private $labelMapper;
private $userManager;
public function __construct(IDBConnection $db, LabelMapper $labelMapper, IUserManager $userManager) {
parent::__construct($db, 'deck_cards', '\OCA\Deck\Db\Card');
@@ -131,7 +132,11 @@ class CardMapper extends DeckMapper implements IPermissionMapper {
public function mapOwner(Card &$card) {
$userManager = $this->userManager;
$card->resolveRelation('owner', function($owner) use (&$userManager) {
return new User($userManager->get($owner));
$user = $userManager->get($owner);
if($user !== null) {
return new User($user);
}
return null;
});
}

View File

@@ -25,7 +25,8 @@ namespace OCA\Deck\Db;
class RelationalObject implements \JsonSerializable {
private $primaryKey;
protected $primaryKey;
protected $object;
/**
* RelationalObject constructor.