type fixes

This commit is contained in:
Yuri Kuznetsov
2021-11-03 13:14:22 +02:00
parent 5a6660b60d
commit b2c4c76fba
8 changed files with 58 additions and 32 deletions

View File

@@ -176,7 +176,7 @@ class FindRelatedManyType extends BaseFunction implements
if ($relationType === 'hasChildren') {
$queryBuilder->where([
$foreignLink . 'Id' => $entity->id,
$foreignLink . 'Id' => $entity->getId(),
$foreignLink . 'Type' => $entity->getEntityType(),
]);
}
@@ -184,7 +184,7 @@ class FindRelatedManyType extends BaseFunction implements
$queryBuilder
->join($foreignLink)
->where([
$foreignLink . '.id' => $entity->id,
$foreignLink . '.id' => $entity->getId(),
]);
}
@@ -203,7 +203,7 @@ class FindRelatedManyType extends BaseFunction implements
$idList = [];
foreach ($collection as $e) {
$idList[] = $e->id;
$idList[] = $e->getId();
}
return $idList;

View File

@@ -431,7 +431,7 @@ class QueueUtil
$jobIdList = [];
foreach ($toRemoveJobList as $job) {
$jobIdList[] = $job->id;
$jobIdList[] = $job->getId();
}
if (!count($jobIdList)) {

View File

@@ -100,7 +100,7 @@ class MassDelete implements MassAction
$repository->remove($entity);
$ids[] = $entity->id;
$ids[] = $entity->getId();
$count++;

View File

@@ -135,7 +135,7 @@ class MassUpdate implements MassAction
'skipStreamNotesAcl' => true,
]);
$ids[] = $entity->id;
$ids[] = $entity->getId();
$count++;

View File

@@ -29,6 +29,8 @@
namespace Espo\Services;
use Espo\Core\ORM\Entity as CoreEntity;
use Espo\ORM\{
Entity,
Collection,
@@ -295,6 +297,10 @@ class Record extends RecordService implements
*/
public function loadLinkMultipleFieldsForList(Entity $entity, array $selectAttributeList): void
{
if (!$entity instanceof CoreEntity) {
return;
}
foreach ($selectAttributeList as $attribute) {
if (!$entity->getAttributeParam($attribute, 'isLinkMultipleIdList')) {
continue;

View File

@@ -147,7 +147,7 @@ class RecordTree extends Record
}
foreach ($collection as $entity) {
$childList = $this->getTreeInternal($entity->id, $params, $maxDepth, $level + 1);
$childList = $this->getTreeInternal($entity->getId(), $params, $maxDepth, $level + 1);
$entity->set('childList', $childList ? $childList->getValueMapList() : null);
}
@@ -183,13 +183,13 @@ class RecordTree extends Record
WhereItem::fromRaw([
'type' => 'inCategory',
'attribute' => $this->categoryField,
'value' => $entity->id,
'value' => $entity->getId(),
])
)
->build();
$one = $this->entityManager
->getRepository($this->subjectEntityType)
->getRDBRepository($this->subjectEntityType)
->clone($query)
->findOne();
@@ -246,7 +246,7 @@ class RecordTree extends Record
if ($parent) {
$parentId = $parent->get('parentId');
array_unshift($arr, $parent->id);
array_unshift($arr, $parent->getId());
}
else {
$parentId = null;
@@ -347,7 +347,7 @@ class RecordTree extends Record
->withStrictAccessControl()
->buildQueryBuilder()
->where([
'parentId' => $entity->id,
'parentId' => $entity->getId(),
])
->build();
@@ -356,7 +356,7 @@ class RecordTree extends Record
->count();
if (!$count) {
$idList[] = $entity->id;
$idList[] = $entity->getId();
continue;
}
@@ -377,7 +377,7 @@ class RecordTree extends Record
}
if (!$isNotEmpty) {
$idList[] = $entity->id;
$idList[] = $entity->getId();
}
}
}

View File

@@ -47,6 +47,9 @@ use Espo\Core\Utils\Config;
use Espo\Core\Utils\Config\ConfigWriter;
use Espo\Core\Utils\Config\Access;
use Espo\Entities\Portal;
use Espo\Repositories\Portal as PortalRepository;
use stdClass;
class Settings
@@ -167,9 +170,7 @@ class Settings
if ($this->applicationState->isPortal()) {
$portal = $this->applicationState->getPortal();
$this->entityManager
->getRepository('Portal')
->loadUrlField($portal);
$this->getPortalRepository()->loadUrlField($portal);
$data->siteUrl = $portal->get('url');
}
@@ -293,4 +294,9 @@ class Settings
{
$this->fieldValidationManager->process($entity, $data);
}
private function getPortalRepository(): PortalRepository
{
return $this->entityManager->getRepository(Portal::class);
}
}

View File

@@ -32,10 +32,12 @@ namespace Espo\Services;
use Espo\Core\Exceptions\Forbidden;
use Espo\Core\Exceptions\NotFound;
use Espo\Core\Exceptions\Error;
use Espo\Core\Record\ServiceContainer as RecordServiceContainer;
use Espo\Core\ORM\Entity as CoreEntity;
use Espo\Tools\Stream\NoteAccessControl;
use Espo\Core\Record\ServiceContainer as RecordServiceContainer;
use Espo\Repositories\EmailAddress as EmailAddressRepository;
use Espo\ORM\{
Entity,
@@ -46,6 +48,8 @@ use Espo\ORM\{
use Espo\{
Entities\User,
Entities\Note as NoteEntity,
Entities\Email,
Entities\EmailAddress,
};
use Espo\Core\{
@@ -62,7 +66,7 @@ use Espo\Core\{
Utils\Acl\UserAclManagerProvider,
};
use StdClass;
use stdClass;
use DateTime;
class Stream
@@ -365,7 +369,7 @@ class Stream
$this->entityManager->getQueryExecutor()->execute($delete);
}
public function findUserStream(string $userId, array $params = []): StdClass
public function findUserStream(string $userId, array $params = []): stdClass
{
$offset = intval($params['offset']);
$maxSize = intval($params['maxSize']);
@@ -376,6 +380,7 @@ class Stream
$user = $this->user;
}
else {
/** @var User $user */
$user = $this->entityManager->getEntity('User', $userId);
if (!$user) {
@@ -878,7 +883,7 @@ class Stream
return $whereClause;
}
private function loadNoteAdditionalFields(Entity $e): void
private function loadNoteAdditionalFields(NoteEntity $e): void
{
if ($e->get('type') == 'Post' || $e->get('type') == 'EmailReceived') {
$e->loadAttachments();
@@ -910,7 +915,7 @@ class Stream
}
}
public function find(string $scope, ?string $id, array $params = []): StdClass
public function find(string $scope, ?string $id, array $params = []): stdClass
{
if ($scope === 'User') {
if (empty($id)) {
@@ -1132,6 +1137,7 @@ class Stream
->limit($params['offset'], $params['maxSize'])
->order('number', 'DESC');
/** @var iterable<NoteEntity> */
$collection = $this->entityManager
->getRDBRepository('Note')
->clone($builder->build())
@@ -1189,8 +1195,12 @@ class Stream
* When users or teams of `related` or `parent` record are changed
* the note record will be changed too.
*/
private function processNoteTeamsUsers(Entity $note, Entity $entity): void
private function processNoteTeamsUsers(NoteEntity $note, Entity $entity): void
{
if (!$entity instanceof CoreEntity) {
return;
}
$note->setAclIsProcessed();
$note->set('teamsIds', []);
@@ -1210,7 +1220,6 @@ class Stream
return;
}
/* @var $defs \Espo\ORM\Defs\EntityDefs */
$defs = $this->entityManager->getDefs()->getEntity($entity->getEntityType());
if (!$defs->hasField($ownerUserField)) {
@@ -1249,7 +1258,7 @@ class Stream
$note->set('usersIds', $userIdList);
}
public function noteEmailReceived(Entity $entity, Entity $email, $isInitial = false): void
public function noteEmailReceived(Entity $entity, Email $email, $isInitial = false): void
{
$entityType = $entity->getEntityType();
@@ -1302,9 +1311,7 @@ class Stream
$from = $email->get('from');
if ($from) {
$person = $this->entityManager
->getRepository('EmailAddress')
->getEntityByAddress($from);
$person = $this->getEmailAddressRepository()->getEntityByAddress($from);
if ($person) {
$data['personEntityType'] = $person->getEntityType();
@@ -1318,7 +1325,7 @@ class Stream
$this->entityManager->saveEntity($note);
}
public function noteEmailSent(Entity $entity, Entity $email): void
public function noteEmailSent(Entity $entity, Email $email): void
{
$entityType = $entity->getEntityType();
@@ -1363,9 +1370,7 @@ class Stream
$from = $email->get('from');
if ($from) {
$person = $this->entityManager
->getRepository('EmailAddress')
->getEntityByAddress($from);
$person = $this->getEmailAddressRepository()->getEntityByAddress($from);
}
}
@@ -2029,7 +2034,7 @@ class Stream
return $userList;
}
public function processNoteAclJob(StdClass $data): void
public function processNoteAclJob(stdClass $data): void
{
$targetType = $data->targetType;
$targetId = $data->targetId;
@@ -2054,6 +2059,10 @@ class Stream
*/
public function processNoteAcl(Entity $entity, bool $forceProcessNoteNotifications = false): void
{
if (!$entity instanceof CoreEntity) {
return;
}
$entityType = $entity->getEntityType();
if (in_array($entityType, ['Note', 'User', 'Team', 'Role', 'Portal', 'PortalRole'])) {
@@ -2233,4 +2242,9 @@ class Stream
$this->noteAccessControl->apply($note, $user);
}
private function getEmailAddressRepository(): EmailAddressRepository
{
return $this->entityManager->getRepository(EmailAddress::ENTITY_TYPE);
}
}