Move AssignmentMapper to query builder
Signed-off-by: Julius Härtl <jus@bitgrid.net>
This commit is contained in:
@@ -32,6 +32,7 @@ use OCP\AppFramework\Db\QBMapper;
|
|||||||
use OCP\IDBConnection;
|
use OCP\IDBConnection;
|
||||||
use OCP\IGroupManager;
|
use OCP\IGroupManager;
|
||||||
use OCP\IUserManager;
|
use OCP\IUserManager;
|
||||||
|
use PDO;
|
||||||
|
|
||||||
class AssignmentMapper extends QBMapper implements IPermissionMapper {
|
class AssignmentMapper extends QBMapper implements IPermissionMapper {
|
||||||
|
|
||||||
@@ -57,27 +58,27 @@ class AssignmentMapper extends QBMapper implements IPermissionMapper {
|
|||||||
* FIXME: rename this since it returns multiple entities otherwise the naming is confusing with Entity::find
|
* FIXME: rename this since it returns multiple entities otherwise the naming is confusing with Entity::find
|
||||||
*
|
*
|
||||||
* @param $cardId
|
* @param $cardId
|
||||||
* @return array|Entity
|
* @return Assignment[]
|
||||||
*/
|
*/
|
||||||
public function find($cardId) {
|
|
||||||
|
public function find($cardId): array {
|
||||||
$qb = $this->db->getQueryBuilder();
|
$qb = $this->db->getQueryBuilder();
|
||||||
$qb->select('*')
|
$qb->select('*')
|
||||||
->from('deck_assigned_users')
|
->from('deck_assigned_users')
|
||||||
->where($qb->expr()->eq('card_id', $qb->createNamedParameter($cardId)));
|
->where($qb->expr()->eq('card_id', $qb->createNamedParameter($cardId, PDO::PARAM_INT)));
|
||||||
/** @var Assignment[] $users */
|
|
||||||
$users = $this->findEntities($qb);
|
$users = $this->findEntities($qb);
|
||||||
foreach ($users as &$user) {
|
foreach ($users as $user) {
|
||||||
$this->mapParticipant($user);
|
$this->mapParticipant($user);
|
||||||
}
|
}
|
||||||
return $users;
|
return $users;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function findByUserId($uid) {
|
public function findByParticipant(string $participant, $type = Assignment::TYPE_USER): array {
|
||||||
$qb = $this->db->getQueryBuilder();
|
$qb = $this->db->getQueryBuilder();
|
||||||
$qb->select('*')
|
$qb->select('*')
|
||||||
->from('deck_assigned_users')
|
->from('deck_assigned_users')
|
||||||
->where($qb->expr()->eq('participant', $qb->createNamedParameter($uid)));
|
->where($qb->expr()->eq('participant', $qb->createNamedParameter($participant, PDO::PARAM_STR)))
|
||||||
/** @var Assignment[] $users */
|
->andWhere($qb->expr()->eq('type', $qb->createNamedParameter($type, PDO::PARAM_INT)));
|
||||||
return $this->findEntities($qb);
|
return $this->findEntities($qb);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -94,7 +95,7 @@ class AssignmentMapper extends QBMapper implements IPermissionMapper {
|
|||||||
* Check if user exists before assigning it to a card
|
* Check if user exists before assigning it to a card
|
||||||
*
|
*
|
||||||
* @param Entity $entity
|
* @param Entity $entity
|
||||||
* @return null|Entity
|
* @return null|Assignment
|
||||||
* @throws NotFoundException
|
* @throws NotFoundException
|
||||||
*/
|
*/
|
||||||
public function insert(Entity $entity): Entity {
|
public function insert(Entity $entity): Entity {
|
||||||
@@ -118,7 +119,6 @@ class AssignmentMapper extends QBMapper implements IPermissionMapper {
|
|||||||
|
|
||||||
public function isUserAssigned($cardId, $userId): bool {
|
public function isUserAssigned($cardId, $userId): bool {
|
||||||
$assignments = $this->find($cardId);
|
$assignments = $this->find($cardId);
|
||||||
/** @var Assignment $assignment */
|
|
||||||
foreach ($assignments as $assignment) {
|
foreach ($assignments as $assignment) {
|
||||||
$origin = $this->getOrigin($assignment);
|
$origin = $this->getOrigin($assignment);
|
||||||
if ($origin instanceof User && $assignment->getParticipant() === $userId) {
|
if ($origin instanceof User && $assignment->getParticipant() === $userId) {
|
||||||
@@ -144,7 +144,7 @@ class AssignmentMapper extends QBMapper implements IPermissionMapper {
|
|||||||
$origin = $this->groupManager->get($assignment->getParticipant());
|
$origin = $this->groupManager->get($assignment->getParticipant());
|
||||||
return $origin ? new Group($origin) : null;
|
return $origin ? new Group($origin) : null;
|
||||||
}
|
}
|
||||||
if ($assignment->getType() === AssignedUsers::TYPE_CIRCLE) {
|
if ($assignment->getType() === Assignment::TYPE_CIRCLE) {
|
||||||
$origin = $this->circleService->getCircle($assignment->getParticipant());
|
$origin = $this->circleService->getCircle($assignment->getParticipant());
|
||||||
return $origin ? new Circle($origin) : null;
|
return $origin ? new Circle($origin) : null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -631,7 +631,7 @@ class BoardService {
|
|||||||
$acl = $this->aclMapper->find($id);
|
$acl = $this->aclMapper->find($id);
|
||||||
$this->boardMapper->mapAcl($acl);
|
$this->boardMapper->mapAcl($acl);
|
||||||
if ($acl->getType() === Acl::PERMISSION_TYPE_USER) {
|
if ($acl->getType() === Acl::PERMISSION_TYPE_USER) {
|
||||||
$assignements = $this->assignedUsersMapper->findByUserId($acl->getParticipant());
|
$assignements = $this->assignedUsersMapper->findByParticipant($acl->getParticipant());
|
||||||
foreach ($assignements as $assignement) {
|
foreach ($assignements as $assignement) {
|
||||||
$this->assignedUsersMapper->delete($assignement);
|
$this->assignedUsersMapper->delete($assignement);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user