fix: Avoid undefined variable
Signed-off-by: Julius Härtl <jus@bitgrid.net>
This commit is contained in:
@@ -23,10 +23,10 @@
|
|||||||
|
|
||||||
namespace OCA\Deck\Db;
|
namespace OCA\Deck\Db;
|
||||||
|
|
||||||
use OC\Cache\CappedMemoryCache;
|
|
||||||
use OCA\Deck\Service\CirclesService;
|
use OCA\Deck\Service\CirclesService;
|
||||||
use OCP\AppFramework\Db\DoesNotExistException;
|
use OCP\AppFramework\Db\DoesNotExistException;
|
||||||
use OCP\AppFramework\Db\QBMapper;
|
use OCP\AppFramework\Db\QBMapper;
|
||||||
|
use OCP\Cache\CappedMemoryCache;
|
||||||
use OCP\DB\QueryBuilder\IQueryBuilder;
|
use OCP\DB\QueryBuilder\IQueryBuilder;
|
||||||
use OCP\IDBConnection;
|
use OCP\IDBConnection;
|
||||||
use OCP\IGroupManager;
|
use OCP\IGroupManager;
|
||||||
@@ -35,37 +35,22 @@ use Psr\Log\LoggerInterface;
|
|||||||
|
|
||||||
/** @template-extends QBMapper<Board> */
|
/** @template-extends QBMapper<Board> */
|
||||||
class BoardMapper extends QBMapper implements IPermissionMapper {
|
class BoardMapper extends QBMapper implements IPermissionMapper {
|
||||||
private $labelMapper;
|
|
||||||
private $aclMapper;
|
|
||||||
private $stackMapper;
|
|
||||||
private $userManager;
|
|
||||||
private $groupManager;
|
|
||||||
private $circlesService;
|
|
||||||
private $logger;
|
|
||||||
|
|
||||||
/** @var CappedMemoryCache<Board[]> */
|
/** @var CappedMemoryCache<Board[]> */
|
||||||
private $userBoardCache;
|
private CappedMemoryCache $userBoardCache;
|
||||||
/** @var CappedMemoryCache<Board> */
|
/** @var CappedMemoryCache<Board> */
|
||||||
private $boardCache;
|
private CappedMemoryCache $boardCache;
|
||||||
|
|
||||||
public function __construct(
|
public function __construct(
|
||||||
IDBConnection $db,
|
IDBConnection $db,
|
||||||
LabelMapper $labelMapper,
|
private LabelMapper $labelMapper,
|
||||||
AclMapper $aclMapper,
|
private AclMapper $aclMapper,
|
||||||
StackMapper $stackMapper,
|
private StackMapper $stackMapper,
|
||||||
IUserManager $userManager,
|
private IUserManager $userManager,
|
||||||
IGroupManager $groupManager,
|
private IGroupManager $groupManager,
|
||||||
CirclesService $circlesService,
|
private CirclesService $circlesService,
|
||||||
LoggerInterface $logger
|
private LoggerInterface $logger
|
||||||
) {
|
) {
|
||||||
parent::__construct($db, 'deck_boards', Board::class);
|
parent::__construct($db, 'deck_boards', Board::class);
|
||||||
$this->labelMapper = $labelMapper;
|
|
||||||
$this->aclMapper = $aclMapper;
|
|
||||||
$this->stackMapper = $stackMapper;
|
|
||||||
$this->userManager = $userManager;
|
|
||||||
$this->groupManager = $groupManager;
|
|
||||||
$this->circlesService = $circlesService;
|
|
||||||
$this->logger = $logger;
|
|
||||||
|
|
||||||
$this->userBoardCache = new CappedMemoryCache();
|
$this->userBoardCache = new CappedMemoryCache();
|
||||||
$this->boardCache = new CappedMemoryCache();
|
$this->boardCache = new CappedMemoryCache();
|
||||||
@@ -81,7 +66,8 @@ class BoardMapper extends QBMapper implements IPermissionMapper {
|
|||||||
* @throws DoesNotExistException
|
* @throws DoesNotExistException
|
||||||
*/
|
*/
|
||||||
public function find(int $id, bool $withLabels = false, bool $withAcl = false, bool $allowDeleted = false): Board {
|
public function find(int $id, bool $withLabels = false, bool $withAcl = false, bool $allowDeleted = false): Board {
|
||||||
if (!isset($this->boardCache[$id])) {
|
$cacheKey = (string)$id;
|
||||||
|
if (!isset($this->boardCache[$cacheKey])) {
|
||||||
$qb = $this->db->getQueryBuilder();
|
$qb = $this->db->getQueryBuilder();
|
||||||
$deletedWhere = $allowDeleted ? $qb->expr()->gte('deleted_at', $qb->createNamedParameter(0, IQueryBuilder::PARAM_INT)) : $qb->expr()->eq('deleted_at', $qb->createNamedParameter(0, IQueryBuilder::PARAM_INT));
|
$deletedWhere = $allowDeleted ? $qb->expr()->gte('deleted_at', $qb->createNamedParameter(0, IQueryBuilder::PARAM_INT)) : $qb->expr()->eq('deleted_at', $qb->createNamedParameter(0, IQueryBuilder::PARAM_INT));
|
||||||
$qb->select('*')
|
$qb->select('*')
|
||||||
@@ -89,22 +75,22 @@ class BoardMapper extends QBMapper implements IPermissionMapper {
|
|||||||
->where($qb->expr()->eq('id', $qb->createNamedParameter($id, IQueryBuilder::PARAM_INT)))
|
->where($qb->expr()->eq('id', $qb->createNamedParameter($id, IQueryBuilder::PARAM_INT)))
|
||||||
->andWhere($deletedWhere)
|
->andWhere($deletedWhere)
|
||||||
->orderBy('id');
|
->orderBy('id');
|
||||||
$this->boardCache[$id] = $this->findEntity($qb);
|
$this->boardCache[(string)$id] = $this->findEntity($qb);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add labels
|
// Add labels
|
||||||
if ($withLabels && $this->boardCache[$id]->getLabels() === null) {
|
if ($withLabels && $this->boardCache[$cacheKey]->getLabels() === null) {
|
||||||
$labels = $this->labelMapper->findAll($id);
|
$labels = $this->labelMapper->findAll($id);
|
||||||
$this->boardCache[$id]->setLabels($labels);
|
$this->boardCache[$cacheKey]->setLabels($labels);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add acl
|
// Add acl
|
||||||
if ($withAcl && $this->boardCache[$id]->getAcl() === null) {
|
if ($withAcl && $this->boardCache[$cacheKey]->getAcl() === null) {
|
||||||
$acl = $this->aclMapper->findAll($id);
|
$acl = $this->aclMapper->findAll($id);
|
||||||
$this->boardCache[$id]->setAcl($acl);
|
$this->boardCache[$cacheKey]->setAcl($acl);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->boardCache[$id];
|
return $this->boardCache[$cacheKey];
|
||||||
}
|
}
|
||||||
|
|
||||||
public function findBoardIds(string $userId): array {
|
public function findBoardIds(string $userId): array {
|
||||||
@@ -464,8 +450,7 @@ class BoardMapper extends QBMapper implements IPermissionMapper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function mapAcl(Acl &$acl) {
|
public function mapAcl(Acl &$acl) {
|
||||||
$groupManager = $this->groupManager;
|
$acl->resolveRelation('participant', function ($participant) use (&$acl) {
|
||||||
$acl->resolveRelation('participant', function ($participant) use (&$acl, &$userManager, &$groupManager) {
|
|
||||||
if ($acl->getType() === Acl::PERMISSION_TYPE_USER) {
|
if ($acl->getType() === Acl::PERMISSION_TYPE_USER) {
|
||||||
if ($this->userManager->userExists($acl->getParticipant())) {
|
if ($this->userManager->userExists($acl->getParticipant())) {
|
||||||
return new User($acl->getParticipant(), $this->userManager);
|
return new User($acl->getParticipant(), $this->userManager);
|
||||||
@@ -474,7 +459,7 @@ class BoardMapper extends QBMapper implements IPermissionMapper {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
if ($acl->getType() === Acl::PERMISSION_TYPE_GROUP) {
|
if ($acl->getType() === Acl::PERMISSION_TYPE_GROUP) {
|
||||||
$group = $groupManager->get($participant);
|
$group = $this->groupManager->get($participant);
|
||||||
if ($group !== null) {
|
if ($group !== null) {
|
||||||
return new Group($group);
|
return new Group($group);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -55,6 +55,13 @@ class AssignmentMapperTest extends \Test\TestCase {
|
|||||||
/** @var AssignmentService */
|
/** @var AssignmentService */
|
||||||
private $assignmentService;
|
private $assignmentService;
|
||||||
|
|
||||||
|
/** @var Board */
|
||||||
|
private $board;
|
||||||
|
/** @var Card[] */
|
||||||
|
private $cards;
|
||||||
|
/** @var Stack[] */
|
||||||
|
private $stacks;
|
||||||
|
|
||||||
public static function setUpBeforeClass(): void {
|
public static function setUpBeforeClass(): void {
|
||||||
parent::setUpBeforeClass();
|
parent::setUpBeforeClass();
|
||||||
|
|
||||||
|
|||||||
@@ -9,13 +9,9 @@ require_once __DIR__ . '/../../vendor/autoload.php';
|
|||||||
class SessionContext implements Context {
|
class SessionContext implements Context {
|
||||||
use RequestTrait;
|
use RequestTrait;
|
||||||
|
|
||||||
/** @var ServerContext */
|
private ServerContext $serverContext;
|
||||||
private $serverContext;
|
private BoardContext $boardContext;
|
||||||
|
private array $tokens = [];
|
||||||
/** @var BoardContext */
|
|
||||||
private $boardContext;
|
|
||||||
|
|
||||||
private $tokens = [];
|
|
||||||
|
|
||||||
/** @BeforeScenario */
|
/** @BeforeScenario */
|
||||||
public function gatherContexts(BeforeScenarioScope $scope) {
|
public function gatherContexts(BeforeScenarioScope $scope) {
|
||||||
@@ -40,7 +36,7 @@ class SessionContext implements Context {
|
|||||||
|
|
||||||
// store token
|
// store token
|
||||||
$user = $this->serverContext->getCurrentUser();
|
$user = $this->serverContext->getCurrentUser();
|
||||||
$this->token[$user] = $res['ocs']['data']['token'];
|
$this->tokens[$user] = $res['ocs']['data']['token'];
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -70,7 +66,7 @@ class SessionContext implements Context {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$user = $this->serverContext->getCurrentUser();
|
$user = $this->serverContext->getCurrentUser();
|
||||||
$token = $this->token[$user];
|
$token = $this->tokens[$user];
|
||||||
Assert::assertNotEmpty($token, "no token for the user found");
|
Assert::assertNotEmpty($token, "no token for the user found");
|
||||||
$this->requestContext->sendOCSRequest('POST', '/apps/deck/api/v1.0/session/close', [
|
$this->requestContext->sendOCSRequest('POST', '/apps/deck/api/v1.0/session/close', [
|
||||||
'boardId' => $board['id'],
|
'boardId' => $board['id'],
|
||||||
|
|||||||
Reference in New Issue
Block a user