$emailsIds * * @return array */ public function setCategory(array $emailsIds, Category $newCategory): array { $emails = $this->emailRepository->findBy(['id' => $emailsIds]); $affected = []; foreach ($emails as $email) { if (!$this->canEdit($email)) { continue; } $email->setCategory($newCategory); $affected[] = $email; } if ($affected) { $this->saveEntities($emails); } return $affected; } private function canEdit(Email $email): bool { return $this->corePermissions->hasEntityAccess('email:emails:editown', 'email:emails:editother', $email->getCreatedBy()); } /** * @param array $emails */ private function saveEntities(array $emails): void { $this->emailModel->saveEntities($emails); } }