Merge pull request #2502 from nextcloud/enh/assignment

This commit is contained in:
Julius Härtl
2020-11-10 15:56:45 +01:00
committed by GitHub
26 changed files with 132 additions and 133 deletions

View File

@@ -28,7 +28,7 @@ namespace OCA\Deck\Activity;
use InvalidArgumentException;
use OCA\Deck\Db\Acl;
use OCA\Deck\Db\AclMapper;
use OCA\Deck\Db\AssignedUsers;
use OCA\Deck\Db\Assignment;
use OCA\Deck\Db\Attachment;
use OCA\Deck\Db\AttachmentMapper;
use OCA\Deck\Db\Board;
@@ -471,7 +471,7 @@ class ActivityManager {
break;
case Attachment::class:
case Label::class:
case AssignedUsers::class:
case Assignment::class:
$objectId = $entity->getCardId();
break;
case IComment::class:

View File

@@ -33,7 +33,7 @@ use OCA\Deck\Collaboration\Resources\ResourceProviderCard;
use OCA\Deck\Dashboard\DeckWidget;
use OCA\Deck\Db\Acl;
use OCA\Deck\Db\AclMapper;
use OCA\Deck\Db\AssignedUsersMapper;
use OCA\Deck\Db\AssignmentMapper;
use OCA\Deck\Db\BoardMapper;
use OCA\Deck\Db\CardMapper;
use OCA\Deck\Listeners\BeforeTemplateRenderedListener;
@@ -132,7 +132,7 @@ class Application20 extends App implements IBootstrap {
$aclMapper->delete($acl);
}
// delete existing user assignments
$assignmentMapper = $container->query(AssignedUsersMapper::class);
$assignmentMapper = $container->query(AssignmentMapper::class);
$assignments = $assignmentMapper->findByUserId($user->getUID());
foreach ($assignments as $assignment) {
$assignmentMapper->delete($assignment);

View File

@@ -30,7 +30,7 @@ use OCA\Deck\Collaboration\Resources\ResourceProvider;
use OCA\Deck\Collaboration\Resources\ResourceProviderCard;
use OCA\Deck\Db\Acl;
use OCA\Deck\Db\AclMapper;
use OCA\Deck\Db\AssignedUsersMapper;
use OCA\Deck\Db\AssignmentMapper;
use OCA\Deck\Db\BoardMapper;
use OCA\Deck\Db\CardMapper;
use OCA\Deck\Middleware\DefaultBoardMiddleware;
@@ -113,7 +113,7 @@ class ApplicationLegacy extends App {
$aclMapper->delete($acl);
}
// delete existing user assignments
$assignmentMapper = $container->query(AssignedUsersMapper::class);
$assignmentMapper = $container->query(AssignmentMapper::class);
$assignments = $assignmentMapper->findByUserId($user->getUID());
foreach ($assignments as $assignment) {
$assignmentMapper->delete($assignment);

View File

@@ -23,7 +23,7 @@
namespace OCA\Deck\Command;
use OCA\Deck\Db\AssignedUsersMapper;
use OCA\Deck\Db\AssignmentMapper;
use OCA\Deck\Db\BoardMapper;
use OCA\Deck\Db\CardMapper;
use OCA\Deck\Db\StackMapper;
@@ -48,7 +48,7 @@ class UserExport extends Command {
BoardService $boardService,
StackMapper $stackMapper,
CardMapper $cardMapper,
AssignedUsersMapper $assignedUsersMapper,
AssignmentMapper $assignedUsersMapper,
IUserManager $userManager,
IGroupManager $groupManager) {
parent::__construct();
@@ -99,7 +99,7 @@ class UserExport extends Command {
$cards = $this->cardMapper->findAllByStack($stack->getId());
foreach ($cards as $card) {
$fullCard = $this->cardMapper->find($card->getId());
$assignedUsers = $this->assignedUsersMapper->find($card->getId());
$assignedUsers = $this->assignedUsersMapper->findAll($card->getId());
$fullCard->setAssignedUsers($assignedUsers);
$data[$board->getId()]['stacks'][$stack->getId()]['cards'][] = (array)$fullCard->jsonSerialize();
}

View File

@@ -35,19 +35,19 @@ class AclMapper extends DeckMapper implements IPermissionMapper {
return $this->findEntities($sql, [$boardId], $limit, $offset);
}
public function isOwner($userId, $aclId) {
public function isOwner($userId, $aclId): bool {
$sql = 'SELECT owner FROM `*PREFIX*deck_boards` WHERE `id` IN (SELECT board_id FROM `*PREFIX*deck_board_acl` WHERE id = ?)';
$stmt = $this->execute($sql, [$aclId]);
$row = $stmt->fetch();
return ($row['owner'] === $userId);
}
public function findBoardId($aclId) {
public function findBoardId($aclId): ?int {
$entity = $this->find($aclId);
return $entity->getBoardId();
}
public function findByParticipant($type, $participant) {
public function findByParticipant($type, $participant): array {
$sql = 'SELECT * from *PREFIX*deck_board_acl WHERE type = ? AND participant = ?';
return $this->findEntities($sql, [$type, $participant]);
}

View File

@@ -25,7 +25,7 @@ namespace OCA\Deck\Db;
use JsonSerializable;
class AssignedUsers extends RelationalEntity implements JsonSerializable {
class Assignment extends RelationalEntity implements JsonSerializable {
public $id;
protected $participant;
protected $cardId;

View File

@@ -32,8 +32,9 @@ use OCP\AppFramework\Db\QBMapper;
use OCP\IDBConnection;
use OCP\IGroupManager;
use OCP\IUserManager;
use PDO;
class AssignedUsersMapper extends QBMapper implements IPermissionMapper {
class AssignmentMapper extends QBMapper implements IPermissionMapper {
/** @var CardMapper */
private $cardMapper;
@@ -45,7 +46,8 @@ class AssignedUsersMapper extends QBMapper implements IPermissionMapper {
private $circleService;
public function __construct(IDBConnection $db, CardMapper $cardMapper, IUserManager $userManager, IGroupManager $groupManager, CirclesService $circleService) {
parent::__construct($db, 'deck_assigned_users', AssignedUsers::class);
parent::__construct($db, 'deck_assigned_users', Assignment::class);
$this->cardMapper = $cardMapper;
$this->userManager = $userManager;
$this->groupManager = $groupManager;
@@ -53,39 +55,35 @@ class AssignedUsersMapper extends QBMapper implements IPermissionMapper {
}
/**
* FIXME: rename this since it returns multiple entities otherwise the naming is confusing with Entity::find
*
* @param $cardId
* @return array|Entity
* @return Assignment[]
*/
public function find($cardId) {
public function findAll(int $cardId): array {
$qb = $this->db->getQueryBuilder();
$qb->select('*')
->from('deck_assigned_users')
->where($qb->expr()->eq('card_id', $qb->createNamedParameter($cardId)));
/** @var AssignedUsers[] $users */
->where($qb->expr()->eq('card_id', $qb->createNamedParameter($cardId, PDO::PARAM_INT)));
$users = $this->findEntities($qb);
foreach ($users as &$user) {
foreach ($users as $user) {
$this->mapParticipant($user);
}
return $users;
}
public function findByUserId($uid) {
public function findByParticipant(string $participant, $type = Assignment::TYPE_USER): array {
$qb = $this->db->getQueryBuilder();
$qb->select('*')
->from('deck_assigned_users')
->where($qb->expr()->eq('participant', $qb->createNamedParameter($uid)));
/** @var AssignedUsers[] $users */
->where($qb->expr()->eq('participant', $qb->createNamedParameter($participant, PDO::PARAM_STR)))
->andWhere($qb->expr()->eq('type', $qb->createNamedParameter($type, PDO::PARAM_INT)));
return $this->findEntities($qb);
}
public function isOwner($userId, $cardId) {
public function isOwner($userId, $cardId): bool {
return $this->cardMapper->isOwner($userId, $cardId);
}
public function findBoardId($cardId) {
public function findBoardId($cardId): ?int {
return $this->cardMapper->findBoardId($cardId);
}
@@ -93,20 +91,22 @@ class AssignedUsersMapper extends QBMapper implements IPermissionMapper {
* Check if user exists before assigning it to a card
*
* @param Entity $entity
* @return null|Entity
* @return null|Assignment
* @throws NotFoundException
*/
public function insert(Entity $entity): Entity {
$origin = $this->getOrigin($entity);
if ($origin === null) {
throw new NotFoundException('No origin found for assignment');
}
/** @var AssignedUsers $assignment */
/** @var Assignment $assignment */
$assignment = parent::insert($entity);
$this->mapParticipant($assignment);
return $assignment;
}
public function mapParticipant(AssignedUsers $assignment): void {
public function mapParticipant(Assignment $assignment): void {
$self = $this;
$assignment->resolveRelation('participant', function () use (&$self, &$assignment) {
return $self->getOrigin($assignment);
@@ -114,8 +114,7 @@ class AssignedUsersMapper extends QBMapper implements IPermissionMapper {
}
public function isUserAssigned($cardId, $userId): bool {
$assignments = $this->find($cardId);
/** @var AssignedUsers $assignment */
$assignments = $this->findAll($cardId);
foreach ($assignments as $assignment) {
$origin = $this->getOrigin($assignment);
if ($origin instanceof User && $assignment->getParticipant() === $userId) {
@@ -132,16 +131,16 @@ class AssignedUsersMapper extends QBMapper implements IPermissionMapper {
return false;
}
private function getOrigin(AssignedUsers $assignment) {
if ($assignment->getType() === AssignedUsers::TYPE_USER) {
private function getOrigin(Assignment $assignment) {
if ($assignment->getType() === Assignment::TYPE_USER) {
$origin = $this->userManager->get($assignment->getParticipant());
return $origin ? new User($origin) : null;
}
if ($assignment->getType() === AssignedUsers::TYPE_GROUP) {
if ($assignment->getType() === Assignment::TYPE_GROUP) {
$origin = $this->groupManager->get($assignment->getParticipant());
return $origin ? new Group($origin) : null;
}
if ($assignment->getType() === AssignedUsers::TYPE_CIRCLE) {
if ($assignment->getType() === Assignment::TYPE_CIRCLE) {
$origin = $this->circleService->getCircle($assignment->getParticipant());
return $origin ? new Circle($origin) : null;
}

View File

@@ -156,7 +156,7 @@ class AttachmentMapper extends DeckMapper implements IPermissionMapper {
* @param $id int|string unique entity identifier
* @return boolean
*/
public function isOwner($userId, $id) {
public function isOwner($userId, $id): bool {
try {
$attachment = $this->find($id);
return $this->cardMapper->isOwner($userId, $attachment->getCardId());
@@ -172,7 +172,7 @@ class AttachmentMapper extends DeckMapper implements IPermissionMapper {
* @param $id int|string unique entity identifier
* @return int|null id of Board
*/
public function findBoardId($id) {
public function findBoardId($id): ?int {
try {
$attachment = $this->find($id);
} catch (\Exception $e) {

View File

@@ -220,12 +220,12 @@ class BoardMapper extends DeckMapper implements IPermissionMapper {
return parent::delete($entity);
}
public function isOwner($userId, $boardId) {
public function isOwner($userId, $boardId): bool {
$board = $this->find($boardId);
return ($board->getOwner() === $userId);
}
public function findBoardId($id) {
public function findBoardId($id): ?int {
return $id;
}

View File

@@ -308,7 +308,7 @@ class CardMapper extends QBMapper implements IPermissionMapper {
$qb->execute();
}
public function isOwner($userId, $cardId) {
public function isOwner($userId, $cardId): bool {
$sql = 'SELECT owner FROM `*PREFIX*deck_boards` WHERE `id` IN (SELECT board_id FROM `*PREFIX*deck_stacks` WHERE id IN (SELECT stack_id FROM `*PREFIX*deck_cards` WHERE id = ?))';
$stmt = $this->db->prepare($sql);
$stmt->bindParam(1, $cardId, \PDO::PARAM_INT);
@@ -317,7 +317,7 @@ class CardMapper extends QBMapper implements IPermissionMapper {
return ($row['owner'] === $userId);
}
public function findBoardId($cardId) {
public function findBoardId($cardId): ?int {
$sql = 'SELECT id FROM `*PREFIX*deck_boards` WHERE `id` IN (SELECT board_id FROM `*PREFIX*deck_stacks` WHERE id IN (SELECT stack_id FROM `*PREFIX*deck_cards` WHERE id = ?))';
$stmt = $this->db->prepare($sql);
$stmt->bindParam(1, $cardId, \PDO::PARAM_INT);

View File

@@ -33,7 +33,7 @@ interface IPermissionMapper {
* @param $id int|string unique entity identifier
* @return boolean
*/
public function isOwner($userId, $id);
public function isOwner($userId, $id): bool;
/**
* Query boardId for Entity of given $id
@@ -41,5 +41,5 @@ interface IPermissionMapper {
* @param $id int|string unique entity identifier
* @return int|null id of Board
*/
public function findBoardId($id);
public function findBoardId($id): ?int;
}

View File

@@ -92,14 +92,14 @@ class LabelMapper extends DeckMapper implements IPermissionMapper {
$stmt->execute();
}
public function isOwner($userId, $labelId) {
public function isOwner($userId, $labelId): bool {
$sql = 'SELECT owner FROM `*PREFIX*deck_boards` WHERE `id` IN (SELECT board_id FROM `*PREFIX*deck_labels` WHERE id = ?)';
$stmt = $this->execute($sql, [$labelId]);
$row = $stmt->fetch();
return ($row['owner'] === $userId);
}
public function findBoardId($labelId) {
public function findBoardId($labelId): ?int {
$entity = $this->find($labelId);
return $entity->getBoardId();
}

View File

@@ -67,14 +67,14 @@ class StackMapper extends DeckMapper implements IPermissionMapper {
return parent::delete($entity);
}
public function isOwner($userId, $stackId) {
public function isOwner($userId, $stackId): bool {
$sql = 'SELECT owner FROM `*PREFIX*deck_boards` WHERE `id` IN (SELECT board_id FROM `*PREFIX*deck_stacks` WHERE id = ?)';
$stmt = $this->execute($sql, [$stackId]);
$row = $stmt->fetch();
return ($row['owner'] === $userId);
}
public function findBoardId($stackId) {
public function findBoardId($stackId): ?int {
$entity = $this->find($stackId);
return $entity->getBoardId();
}

View File

@@ -26,7 +26,7 @@ namespace OCA\Deck\Notification;
use DateTime;
use OCA\Deck\AppInfo\Application;
use OCA\Deck\Db\Acl;
use OCA\Deck\Db\AssignedUsersMapper;
use OCA\Deck\Db\AssignmentMapper;
use OCA\Deck\Db\Board;
use OCA\Deck\Db\BoardMapper;
use OCA\Deck\Db\CardMapper;
@@ -44,8 +44,8 @@ class NotificationHelper {
protected $cardMapper;
/** @var BoardMapper */
protected $boardMapper;
/** @var AssignedUsersMapper */
protected $assignedUsersMapper;
/** @var AssignmentMapper */
protected $assignmentMapper;
/** @var PermissionService */
protected $permissionService;
/** @var IConfig */
@@ -62,7 +62,7 @@ class NotificationHelper {
public function __construct(
CardMapper $cardMapper,
BoardMapper $boardMapper,
AssignedUsersMapper $assignedUsersMapper,
AssignmentMapper $assignmentMapper,
PermissionService $permissionService,
IConfig $config,
IManager $notificationManager,
@@ -71,7 +71,7 @@ class NotificationHelper {
) {
$this->cardMapper = $cardMapper;
$this->boardMapper = $boardMapper;
$this->assignedUsersMapper = $assignedUsersMapper;
$this->assignmentMapper = $assignmentMapper;
$this->permissionService = $permissionService;
$this->config = $config;
$this->notificationManager = $notificationManager;
@@ -107,7 +107,7 @@ class NotificationHelper {
if ($user->getUID() === $board->getOwner() && count($board->getAcl()) === 0) {
// Notify if all or assigned is configured for unshared boards
$shouldNotify = true;
} elseif ($notificationSetting === ConfigService::SETTING_BOARD_NOTIFICATION_DUE_ASSIGNED && $this->assignedUsersMapper->isUserAssigned($card->getId(), $user->getUID())) {
} elseif ($notificationSetting === ConfigService::SETTING_BOARD_NOTIFICATION_DUE_ASSIGNED && $this->assignmentMapper->isUserAssigned($card->getId(), $user->getUID())) {
// Notify if the user is assigned and has the assigned setting selected
$shouldNotify = true;
}

View File

@@ -27,8 +27,8 @@ use OCA\Deck\Activity\ActivityManager;
use OCA\Deck\BadRequestException;
use OCA\Deck\Db\Acl;
use OCA\Deck\Db\AclMapper;
use OCA\Deck\Db\AssignedUsers;
use OCA\Deck\Db\AssignedUsersMapper;
use OCA\Deck\Db\Assignment;
use OCA\Deck\Db\AssignmentMapper;
use OCA\Deck\Db\CardMapper;
use OCA\Deck\Db\ChangeHelper;
use OCA\Deck\Event\FTSEvent;
@@ -51,7 +51,7 @@ class AssignmentService {
*/
private $cardMapper;
/**
* @var AssignedUsersMapper
* @var AssignmentMapper
*/
private $assignedUsersMapper;
/**
@@ -78,7 +78,7 @@ class AssignmentService {
public function __construct(
PermissionService $permissionService,
CardMapper $cardMapper,
AssignedUsersMapper $assignedUsersMapper,
AssignmentMapper $assignedUsersMapper,
AclMapper $aclMapper,
NotificationHelper $notificationHelper,
ActivityManager $activityManager,
@@ -106,7 +106,7 @@ class AssignmentService {
* @throws MultipleObjectsReturnedException
* @throws DoesNotExistException
*/
public function assignUser($cardId, $userId, int $type = AssignedUsers::TYPE_USER) {
public function assignUser($cardId, $userId, int $type = Assignment::TYPE_USER) {
if (is_numeric($cardId) === false) {
throw new BadRequestException('card id must be a number');
}
@@ -115,12 +115,12 @@ class AssignmentService {
throw new BadRequestException('user id must be provided');
}
if ($type !== AssignedUsers::TYPE_USER && $type !== AssignedUsers::TYPE_GROUP) {
if ($type !== Assignment::TYPE_USER && $type !== Assignment::TYPE_GROUP) {
throw new BadRequestException('Invalid type provided for assignemnt');
}
$this->permissionService->checkPermission($this->cardMapper, $cardId, Acl::PERMISSION_EDIT);
$assignments = $this->assignedUsersMapper->find($cardId);
$assignments = $this->assignedUsersMapper->findAll($cardId);
foreach ($assignments as $assignment) {
if ($assignment->getParticipant() === $userId && $assignment->getType() === $type) {
throw new BadRequestException('The user is already assigned to the card');
@@ -143,7 +143,7 @@ class AssignmentService {
$this->notificationHelper->sendCardAssigned($card, $userId);
}
$assignment = new AssignedUsers();
$assignment = new Assignment();
$assignment->setCardId($cardId);
$assignment->setParticipant($userId);
$assignment->setType($type);
@@ -179,7 +179,7 @@ class AssignmentService {
throw new BadRequestException('user must be provided');
}
$assignments = $this->assignedUsersMapper->find($cardId);
$assignments = $this->assignedUsersMapper->findAll($cardId);
foreach ($assignments as $assignment) {
if ($assignment->getParticipant() === $userId && $assignment->getType() === $type) {
$assignment = $this->assignedUsersMapper->delete($assignment);

View File

@@ -29,7 +29,7 @@ use OCA\Deck\Activity\ChangeSet;
use OCA\Deck\AppInfo\Application;
use OCA\Deck\Db\Acl;
use OCA\Deck\Db\AclMapper;
use OCA\Deck\Db\AssignedUsersMapper;
use OCA\Deck\Db\AssignmentMapper;
use OCA\Deck\Db\ChangeHelper;
use OCA\Deck\Db\IPermissionMapper;
use OCA\Deck\Db\Label;
@@ -80,7 +80,7 @@ class BoardService {
AclMapper $aclMapper,
PermissionService $permissionService,
NotificationHelper $notificationHelper,
AssignedUsersMapper $assignedUsersMapper,
AssignmentMapper $assignedUsersMapper,
IUserManager $userManager,
IGroupManager $groupManager,
ActivityManager $activityManager,
@@ -631,7 +631,7 @@ class BoardService {
$acl = $this->aclMapper->find($id);
$this->boardMapper->mapAcl($acl);
if ($acl->getType() === Acl::PERMISSION_TYPE_USER) {
$assignements = $this->assignedUsersMapper->findByUserId($acl->getParticipant());
$assignements = $this->assignedUsersMapper->findByParticipant($acl->getParticipant());
foreach ($assignements as $assignement) {
$this->assignedUsersMapper->delete($assignement);
}

View File

@@ -28,7 +28,7 @@ namespace OCA\Deck\Service;
use OCA\Deck\Activity\ActivityManager;
use OCA\Deck\Activity\ChangeSet;
use OCA\Deck\Db\AssignedUsersMapper;
use OCA\Deck\Db\AssignmentMapper;
use OCA\Deck\Db\Card;
use OCA\Deck\Db\CardMapper;
use OCA\Deck\Db\Acl;
@@ -69,7 +69,7 @@ class CardService {
PermissionService $permissionService,
BoardService $boardService,
NotificationHelper $notificationHelper,
AssignedUsersMapper $assignedUsersMapper,
AssignmentMapper $assignedUsersMapper,
AttachmentService $attachmentService,
ActivityManager $activityManager,
ICommentsManager $commentsManager,
@@ -98,7 +98,7 @@ class CardService {
public function enrich($card) {
$cardId = $card->getId();
$this->cardMapper->mapOwner($card);
$card->setAssignedUsers($this->assignedUsersMapper->find($cardId));
$card->setAssignedUsers($this->assignedUsersMapper->findAll($cardId));
$card->setLabels($this->labelMapper->findAssignedLabelsForCard($cardId));
$card->setAttachmentCount($this->attachmentService->count($cardId));
$user = $this->userManager->get($this->currentUser);
@@ -136,7 +136,7 @@ class CardService {
$this->permissionService->checkPermission($this->cardMapper, $cardId, Acl::PERMISSION_READ);
$card = $this->cardMapper->find($cardId);
$assignedUsers = $this->assignedUsersMapper->find($card->getId());
$assignedUsers = $this->assignedUsersMapper->findAll($card->getId());
$attachments = $this->attachmentService->findAll($cardId, true);
$card->setAssignedUsers($assignedUsers);
$card->setAttachments($attachments);
@@ -590,7 +590,7 @@ class CardService {
*/
public function findAllWithDue($userId) {
$cards = $this->cardMapper->findAllWithDue($userId);
return $cards;
}
@@ -602,7 +602,7 @@ class CardService {
*/
public function findAssignedCards($userId) {
$cards = $this->cardMapper->findAssignedCards($userId);
return $cards;
}
}

View File

@@ -27,7 +27,7 @@ declare(strict_types=1);
namespace OCA\Deck\Service;
use OCA\Deck\Db\AssignedUsersMapper;
use OCA\Deck\Db\AssignmentMapper;
use OCA\Deck\Db\Card;
use OCA\Deck\Db\CardMapper;
use OCP\Comments\ICommentsManager;
@@ -45,7 +45,7 @@ class OverviewService {
private $labelMapper;
/** @var CardMapper */
private $cardMapper;
/** @var AssignedUsersMapper */
/** @var AssignmentMapper */
private $assignedUsersMapper;
/** @var IUserManager */
private $userManager;
@@ -60,7 +60,7 @@ class OverviewService {
BoardMapper $boardMapper,
LabelMapper $labelMapper,
CardMapper $cardMapper,
AssignedUsersMapper $assignedUsersMapper,
AssignmentMapper $assignedUsersMapper,
IUserManager $userManager,
IGroupManager $groupManager,
ICommentsManager $commentsManager,
@@ -80,7 +80,7 @@ class OverviewService {
$cardId = $card->getId();
$this->cardMapper->mapOwner($card);
$card->setAssignedUsers($this->assignedUsersMapper->find($cardId));
$card->setAssignedUsers($this->assignedUsersMapper->findAll($cardId));
$card->setLabels($this->labelMapper->findAssignedLabelsForCard($cardId));
$card->setAttachmentCount($this->attachmentService->count($cardId));

View File

@@ -28,7 +28,7 @@ use OCA\Deck\Activity\ActivityManager;
use OCA\Deck\Activity\ChangeSet;
use OCA\Deck\BadRequestException;
use OCA\Deck\Db\Acl;
use OCA\Deck\Db\AssignedUsersMapper;
use OCA\Deck\Db\AssignmentMapper;
use OCA\Deck\Db\BoardMapper;
use OCA\Deck\Db\CardMapper;
use OCA\Deck\Db\ChangeHelper;
@@ -62,7 +62,7 @@ class StackService {
PermissionService $permissionService,
BoardService $boardService,
CardService $cardService,
AssignedUsersMapper $assignedUsersMapper,
AssignmentMapper $assignedUsersMapper,
AttachmentService $attachmentService,
ActivityManager $activityManager,
EventDispatcherInterface $eventDispatcher,
@@ -118,7 +118,7 @@ class StackService {
$stack = $this->stackMapper->find($stackId);
$cards = $this->cardMapper->findAll($stackId);
foreach ($cards as $cardIndex => $card) {
$assignedUsers = $this->assignedUsersMapper->find($card->getId());
$assignedUsers = $this->assignedUsersMapper->findAll($card->getId());
$card->setAssignedUsers($assignedUsers);
$card->setAttachmentCount($this->attachmentService->count($card->getId()));
}

View File

@@ -31,9 +31,9 @@ use OCA\Deck\Service\CardService;
/**
* @group DB
* @coversDefaultClass OCA\Deck\Db\AssignedUsersMapper
* @coversDefaultClass \OCA\Deck\Db\AssignmentMapper
*/
class AssignedUsersMapperTest extends \Test\TestCase {
class AssignmentMapperTest extends \Test\TestCase {
private const TEST_USER1 = 'test-share-user1';
private const TEST_USER3 = 'test-share-user3';
private const TEST_USER2 = 'test-share-user2';
@@ -46,7 +46,7 @@ class AssignedUsersMapperTest extends \Test\TestCase {
protected $cardService;
/** @var StackService */
protected $stackService;
/** @var AssignedUsersMapper */
/** @var AssignmentMapper */
protected $assignedUsersMapper;
/** @var AssignmentService */
private $assignmentService;
@@ -85,7 +85,7 @@ class AssignedUsersMapperTest extends \Test\TestCase {
$this->stackService = \OC::$server->query(StackService::class);
$this->cardService = \OC::$server->query(CardService::class);
$this->assignmentService = \OC::$server->query(AssignmentService::class);
$this->assignedUsersMapper = \OC::$server->query(AssignedUsersMapper::class);
$this->assignedUsersMapper = \OC::$server->query(AssignmentMapper::class);
$this->createBoardWithExampleData();
}
@@ -107,14 +107,14 @@ class AssignedUsersMapperTest extends \Test\TestCase {
}
/**
* @covers ::find
* @covers ::findAll
*/
public function testFind() {
$uids = [];
$this->assignmentService->assignUser($this->cards[0]->getId(), self::TEST_USER1);
$this->assignmentService->assignUser($this->cards[0]->getId(), self::TEST_USER2);
$assignedUsers = $this->assignedUsersMapper->find($this->cards[0]->getId());
$assignedUsers = $this->assignedUsersMapper->findAll($this->cards[0]->getId());
foreach ($assignedUsers as $user) {
$uids[$user->getParticipant()] = $user;
}
@@ -146,13 +146,13 @@ class AssignedUsersMapperTest extends \Test\TestCase {
* @covers ::insert
*/
public function testInsert() {
$assignment = new AssignedUsers();
$assignment = new Assignment();
$assignment->setCardId($this->cards[1]->getId());
$assignment->setParticipant(self::TEST_USER4);
$assignment->setType(AssignedUsers::TYPE_USER);
$assignment->setType(Assignment::TYPE_USER);
$this->assignedUsersMapper->insert($assignment);
$actual = $this->assignedUsersMapper->find($this->cards[1]->getId());
$actual = $this->assignedUsersMapper->findAll($this->cards[1]->getId());
$this->assertEquals(1, count($actual));
$this->assertEquals($this->cards[1]->getId(), $actual[0]->getCardId());
$this->assertEquals(self::TEST_USER4, $actual[0]->getParticipant());
@@ -162,10 +162,10 @@ class AssignedUsersMapperTest extends \Test\TestCase {
* @covers ::insert
*/
public function testInsertInvalidUser() {
$assignment = new AssignedUsers();
$assignment = new Assignment();
$assignment->setCardId($this->cards[1]->getId());
$assignment->setParticipant('invalid-username');
$assignment->setType(AssignedUsers::TYPE_USER);
$assignment->setType(Assignment::TYPE_USER);
$this->expectException(NotFoundException::class);
$this->assignedUsersMapper->insert($assignment);
}
@@ -174,26 +174,26 @@ class AssignedUsersMapperTest extends \Test\TestCase {
* @covers ::mapParticipant
*/
public function testMapParticipant() {
$assignment = new AssignedUsers();
$assignment = new Assignment();
$assignment->setCardId($this->cards[1]->getId());
$assignment->setParticipant(self::TEST_USER4);
$assignment->setType(AssignedUsers::TYPE_USER);
$assignment->setType(Assignment::TYPE_USER);
$this->assignedUsersMapper->mapParticipant($assignment);
$this->assertInstanceOf(User::class, $assignment->resolveParticipant());
$assignment = new AssignedUsers();
$assignment = new Assignment();
$assignment->setCardId($this->cards[1]->getId());
$assignment->setParticipant('invalid-username');
$assignment->setType(AssignedUsers::TYPE_USER);
$assignment->setType(Assignment::TYPE_USER);
$this->assignedUsersMapper->mapParticipant($assignment);
$this->assertEquals('invalid-username', $assignment->resolveParticipant());
}
public function testIsUserAssigned() {
$assignment = new AssignedUsers();
$assignment = new Assignment();
$assignment->setCardId($this->cards[1]->getId());
$assignment->setParticipant(self::TEST_USER4);
$assignment->setType(AssignedUsers::TYPE_USER);
$assignment->setType(Assignment::TYPE_USER);
$this->assertFalse($this->assignedUsersMapper->isUserAssigned($this->cards[1]->getId(), self::TEST_USER4));
$assignment = $this->assignedUsersMapper->insert($assignment);
@@ -205,10 +205,10 @@ class AssignedUsersMapperTest extends \Test\TestCase {
}
public function testIsUserAssignedGroup() {
$assignment = new AssignedUsers();
$assignment = new Assignment();
$assignment->setCardId($this->cards[1]->getId());
$assignment->setParticipant('group');
$assignment->setType(AssignedUsers::TYPE_GROUP);
$assignment->setType(Assignment::TYPE_GROUP);
$this->assertFalse($this->assignedUsersMapper->isUserAssigned($this->cards[1]->getId(), self::TEST_USER1));
$this->assertFalse($this->assignedUsersMapper->isUserAssigned($this->cards[1]->getId(), self::TEST_USER2));
$this->assertFalse($this->assignedUsersMapper->isUserAssigned($this->cards[1]->getId(), self::TEST_USER3));

View File

@@ -24,7 +24,7 @@
namespace OCA\Deck\Activity;
use OCA\Deck\Db\AclMapper;
use OCA\Deck\Db\AssignedUsers;
use OCA\Deck\Db\Assignment;
use OCA\Deck\Db\Attachment;
use OCA\Deck\Db\AttachmentMapper;
use OCA\Deck\Db\Board;
@@ -210,7 +210,7 @@ class ActivityManagerTest extends TestCase {
$label = new Label();
$label->setCardId(3);
$label->setBoardId(1);
$assignedUser = new AssignedUsers();
$assignedUser = new Assignment();
$assignedUser->setCardId(3);
return [

View File

@@ -23,7 +23,7 @@
namespace OCA\Deck\Command;
use OCA\Deck\Db\AssignedUsersMapper;
use OCA\Deck\Db\AssignmentMapper;
use OCA\Deck\Db\Board;
use OCA\Deck\Db\BoardMapper;
use OCA\Deck\Db\Card;
@@ -53,7 +53,7 @@ class UserExportTest extends \Test\TestCase {
$this->boardService= $this->createMock(BoardService::class);
$this->stackMapper= $this->createMock(StackMapper::class);
$this->cardMapper= $this->createMock(CardMapper::class);
$this->assignedUserMapper= $this->createMock(AssignedUsersMapper::class);
$this->assignedUserMapper= $this->createMock(AssignmentMapper::class);
$this->userManager = $this->createMock(IUserManager::class);
$this->groupManager = $this->createMock(IGroupManager::class);
$this->userExport = new UserExport($this->boardMapper, $this->boardService, $this->stackMapper, $this->cardMapper, $this->assignedUserMapper, $this->userManager, $this->groupManager);

View File

@@ -26,8 +26,8 @@ namespace OCA\Deck\Service;
use OCA\Deck\Activity\ActivityManager;
use OCA\Deck\BadRequestException;
use OCA\Deck\Db\AclMapper;
use OCA\Deck\Db\AssignedUsers;
use OCA\Deck\Db\AssignedUsersMapper;
use OCA\Deck\Db\Assignment;
use OCA\Deck\Db\AssignmentMapper;
use OCA\Deck\Db\CardMapper;
use OCA\Deck\Db\ChangeHelper;
use OCA\Deck\NotFoundException;
@@ -49,7 +49,7 @@ class AssignmentServiceTest extends TestCase {
*/
private $cardMapper;
/**
* @var MockObject|AssignedUsersMapper
* @var MockObject|AssignmentMapper
*/
private $assignedUsersMapper;
/**
@@ -83,7 +83,7 @@ class AssignmentServiceTest extends TestCase {
$this->permissionService = $this->createMock(PermissionService::class);
$this->cardMapper = $this->createMock(CardMapper::class);
$this->notificationHelper = $this->createMock(NotificationHelper::class);
$this->assignedUsersMapper = $this->createMock(AssignedUsersMapper::class);
$this->assignedUsersMapper = $this->createMock(AssignmentMapper::class);
$this->activityManager = $this->createMock(ActivityManager::class);
$this->eventDispatcher = $this->createMock(IEventDispatcher::class);
$this->changeHelper = $this->createMock(ChangeHelper::class);
@@ -115,13 +115,13 @@ class AssignmentServiceTest extends TestCase {
public function testAssignUser() {
$assignments = [];
$this->assignedUsersMapper->expects($this->once())
->method('find')
->method('findAll')
->with(123)
->willReturn($assignments);
$assignment = new AssignedUsers();
$assignment = new Assignment();
$assignment->setCardId(123);
$assignment->setParticipant('admin');
$assignment->setType(AssignedUsers::TYPE_USER);
$assignment->setType(Assignment::TYPE_USER);
$this->cardMapper->expects($this->once())
->method('findBoardId')
->willReturn(1);
@@ -145,13 +145,13 @@ class AssignmentServiceTest extends TestCase {
$this->expectExceptionMessage('The user is not part of the board');
$assignments = [];
$this->assignedUsersMapper->expects($this->once())
->method('find')
->method('findAll')
->with(123)
->willReturn($assignments);
$assignment = new AssignedUsers();
$assignment = new Assignment();
$assignment->setCardId(123);
$assignment->setParticipant('admin');
$assignment->setType(AssignedUsers::TYPE_USER);
$assignment->setType(Assignment::TYPE_USER);
$this->cardMapper->expects($this->once())
->method('findBoardId')
->willReturn(1);
@@ -168,15 +168,15 @@ class AssignmentServiceTest extends TestCase {
public function testAssignUserExisting() {
$this->expectException(BadRequestException::class);
$this->expectExceptionMessage('The user is already assigned to the card');
$assignment = new AssignedUsers();
$assignment = new Assignment();
$assignment->setCardId(123);
$assignment->setParticipant('admin');
$assignment->setType(AssignedUsers::TYPE_USER);
$assignment->setType(Assignment::TYPE_USER);
$assignments = [
$assignment
];
$this->assignedUsersMapper->expects($this->once())
->method('find')
->method('findAll')
->with(123)
->willReturn($assignments);
$actual = $this->assignmentService->assignUser(123, 'admin');
@@ -184,15 +184,15 @@ class AssignmentServiceTest extends TestCase {
}
public function testUnassignUserExisting() {
$assignment = new AssignedUsers();
$assignment = new Assignment();
$assignment->setCardId(123);
$assignment->setParticipant('admin');
$assignment->setType(AssignedUsers::TYPE_USER);
$assignment->setType(Assignment::TYPE_USER);
$assignments = [
$assignment
];
$this->assignedUsersMapper->expects($this->once())
->method('find')
->method('findAll')
->with(123)
->willReturn($assignments);
$this->assignedUsersMapper->expects($this->once())
@@ -205,15 +205,15 @@ class AssignmentServiceTest extends TestCase {
public function testUnassignUserNotExisting() {
$this->expectException(NotFoundException::class);
$assignment = new AssignedUsers();
$assignment = new Assignment();
$assignment->setCardId(123);
$assignment->setParticipant('admin');
$assignment->setType(AssignedUsers::TYPE_USER);
$assignment->setType(Assignment::TYPE_USER);
$assignments = [
$assignment
];
$this->assignedUsersMapper->expects($this->once())
->method('find')
->method('findAll')
->with(123)
->willReturn($assignments);
$this->expectException(NotFoundException::class);

View File

@@ -27,8 +27,8 @@ use OC\L10N\L10N;
use OCA\Deck\Activity\ActivityManager;
use OCA\Deck\Db\Acl;
use OCA\Deck\Db\AclMapper;
use OCA\Deck\Db\AssignedUsers;
use OCA\Deck\Db\AssignedUsersMapper;
use OCA\Deck\Db\Assignment;
use OCA\Deck\Db\AssignmentMapper;
use OCA\Deck\Db\Board;
use OCA\Deck\Db\BoardMapper;
use OCA\Deck\Db\ChangeHelper;
@@ -61,7 +61,7 @@ class BoardServiceTest extends TestCase {
private $permissionService;
/** @var NotificationHelper */
private $notificationHelper;
/** @var AssignedUsersMapper */
/** @var AssignmentMapper */
private $assignedUsersMapper;
/** @var IUserManager */
private $userManager;
@@ -85,7 +85,7 @@ class BoardServiceTest extends TestCase {
$this->labelMapper = $this->createMock(LabelMapper::class);
$this->permissionService = $this->createMock(PermissionService::class);
$this->notificationHelper = $this->createMock(NotificationHelper::class);
$this->assignedUsersMapper = $this->createMock(AssignedUsersMapper::class);
$this->assignedUsersMapper = $this->createMock(AssignmentMapper::class);
$this->userManager = $this->createMock(IUserManager::class);
$this->groupManager = $this->createMock(IGroupManager::class);
$this->activityManager = $this->createMock(ActivityManager::class);
@@ -390,7 +390,7 @@ class BoardServiceTest extends TestCase {
->method('find')
->with(123)
->willReturn($acl);
$assignment = new AssignedUsers();
$assignment = new Assignment();
$assignment->setParticipant('admin');
$this->assignedUsersMapper->expects($this->once())
->method('findByUserId')

View File

@@ -24,7 +24,7 @@
namespace OCA\Deck\Service;
use OCA\Deck\Activity\ActivityManager;
use OCA\Deck\Db\AssignedUsersMapper;
use OCA\Deck\Db\AssignmentMapper;
use OCA\Deck\Db\Card;
use OCA\Deck\Db\CardMapper;
use OCA\Deck\Db\ChangeHelper;
@@ -54,7 +54,7 @@ class CardServiceTest extends TestCase {
private $permissionService;
/** @var NotificationHelper */
private $notificationHelper;
/** @var AssignedUsersMapper|MockObject */
/** @var AssignmentMapper|MockObject */
private $assignedUsersMapper;
/** @var BoardService|MockObject */
private $boardService;
@@ -83,7 +83,7 @@ class CardServiceTest extends TestCase {
$this->permissionService = $this->createMock(PermissionService::class);
$this->boardService = $this->createMock(BoardService::class);
$this->notificationHelper = $this->createMock(NotificationHelper::class);
$this->assignedUsersMapper = $this->createMock(AssignedUsersMapper::class);
$this->assignedUsersMapper = $this->createMock(AssignmentMapper::class);
$this->attachmentService = $this->createMock(AttachmentService::class);
$this->activityManager = $this->createMock(ActivityManager::class);
$this->commentsManager = $this->createMock(ICommentsManager::class);

View File

@@ -24,7 +24,7 @@
namespace OCA\Deck\Service;
use OCA\Deck\Activity\ActivityManager;
use OCA\Deck\Db\AssignedUsersMapper;
use OCA\Deck\Db\AssignmentMapper;
use OCA\Deck\Db\Card;
use OCA\Deck\Db\CardMapper;
use OCA\Deck\Db\BoardMapper;
@@ -56,7 +56,7 @@ class StackServiceTest extends TestCase {
private $labelMapper;
/** @var \PHPUnit\Framework\MockObject\MockObject|PermissionService */
private $permissionService;
/** @var AssignedUsersMapper|\PHPUnit\Framework\MockObject\MockObject */
/** @var AssignmentMapper|\PHPUnit\Framework\MockObject\MockObject */
private $assignedUsersMapper;
/** @var AttachmentService|\PHPUnit\Framework\MockObject\MockObject */
private $attachmentService;
@@ -79,7 +79,7 @@ class StackServiceTest extends TestCase {
$this->permissionService = $this->createMock(PermissionService::class);
$this->boardService = $this->createMock(BoardService::class);
$this->cardService = $this->createMock(CardService::class);
$this->assignedUsersMapper = $this->createMock(AssignedUsersMapper::class);
$this->assignedUsersMapper = $this->createMock(AssignmentMapper::class);
$this->attachmentService = $this->createMock(AttachmentService::class);
$this->labelMapper = $this->createMock(LabelMapper::class);
$this->activityManager = $this->createMock(ActivityManager::class);