Deny deleting subscribers who are WP user

[MAILPOET-3138]
This commit is contained in:
Jan Lysý
2020-10-12 14:46:27 +02:00
committed by Veljko V
parent 709d73715a
commit c24d28fbfd
2 changed files with 7 additions and 5 deletions

View File

@ -460,8 +460,8 @@ class Subscribers extends APIEndpoint {
public function delete($data = []) {
$subscriber = $this->getSubscriber($data);
if ($subscriber instanceof SubscriberEntity) {
$this->subscribersRepository->bulkDelete([$subscriber->getId()]);
return $this->successResponse(null, ['count' => 1]);
$count = $this->subscribersRepository->bulkDelete([$subscriber->getId()]);
return $this->successResponse(null, ['count' => $count]);
} else {
return $this->errorResponse([
APIError::NOT_FOUND => WPFunctions::get()->__('This subscriber does not exist.', 'mailpoet'),

View File

@ -100,7 +100,8 @@ class SubscribersRepository extends Repository {
return 0;
}
$this->entityManager->transactional(function (EntityManager $entityManager) use ($ids) {
$count = 0;
$this->entityManager->transactional(function (EntityManager $entityManager) use ($ids, &$count) {
// Delete subscriber segments
$this->bulkRemoveFromAllSegments($ids);
@ -112,13 +113,14 @@ class SubscribersRepository extends Repository {
", ['ids' => $ids], ['ids' => Connection::PARAM_INT_ARRAY]);
$queryBuilder = $entityManager->createQueryBuilder();
$queryBuilder->delete(SubscriberEntity::class, 's')
$count = $queryBuilder->delete(SubscriberEntity::class, 's')
->where('s.id IN (:ids)')
->andWhere('s.wpUserId IS NULL')
->setParameter('ids', $ids)
->getQuery()->execute();
});
return count($ids);
return $count;
}
/**