type fixes

This commit is contained in:
Yuri Kuznetsov
2022-03-12 19:44:25 +02:00
parent ceb436971d
commit b53378a1d3
35 changed files with 123 additions and 64 deletions
@@ -38,6 +38,9 @@ use Espo\Core\{
Acl\Traits\DefaultAccessCheckerDependency,
};
/**
* @implements AccessEntityCREDChecker<\Espo\Entities\AuthToken>
*/
class AccessChecker implements AccessEntityCREDChecker
{
use DefaultAccessCheckerDependency;
@@ -42,6 +42,9 @@ use Espo\Core\{
Acl\Traits\DefaultAccessCheckerDependency,
};
/**
* @implements AccessEntityCREDSChecker<\Espo\Entities\Email>
*/
class AccessChecker implements AccessEntityCREDSChecker
{
use DefaultAccessCheckerDependency;
@@ -39,6 +39,10 @@ use Espo\Core\{
Acl\AccessEntityDeleteChecker,
};
/**
* @implements AccessEntityReadChecker<\Espo\Entities\Import>
* @implements AccessEntityDeleteChecker<\Espo\Entities\Import>
*/
class AccessChecker implements AccessEntityReadChecker, AccessEntityDeleteChecker
{
public function check(User $user, ScopeData $data): bool
@@ -46,6 +46,9 @@ use Espo\Core\{
use DateTime;
use Exception;
/**
* @implements AccessEntityCREDChecker<\Espo\Entities\Note>
*/
class AccessChecker implements AccessEntityCREDChecker
{
use DefaultAccessCheckerDependency;
@@ -40,6 +40,9 @@ use Espo\Core\{
AclManager,
};
/**
* @implements AccessEntityCREDChecker<\Espo\Entities\Portal>
*/
class AccessChecker implements AccessEntityCREDChecker
{
use DefaultAccessCheckerDependency;
@@ -40,6 +40,9 @@ use Espo\Core\{
Acl\Traits\DefaultAccessCheckerDependency,
};
/**
* @implements AccessEntityCREDChecker<\Espo\Entities\ScheduledJob>
*/
class AccessChecker implements AccessEntityCREDChecker
{
use DefaultAccessCheckerDependency;
@@ -40,6 +40,9 @@ use Espo\Core\{
Acl\Traits\DefaultAccessCheckerDependency,
};
/**
* @implements AccessEntityCREDChecker<\Espo\Entities\Webhook>
*/
class AccessChecker implements AccessEntityCREDChecker
{
use DefaultAccessCheckerDependency;
@@ -43,6 +43,9 @@ use Espo\Core\{
Portal\Acl\Traits\DefaultAccessCheckerDependency,
};
/**
* @implements AccessEntityCREDSChecker<\Espo\Entities\Email>
*/
class AccessChecker implements AccessEntityCREDSChecker
{
use DefaultAccessCheckerDependency;
@@ -46,6 +46,9 @@ use Espo\Core\{
use DateTime;
use Exception;
/**
* @implements AccessEntityCREDChecker<\Espo\Entities\Note>
*/
class AccessChecker implements AccessEntityCREDChecker
{
use DefaultAccessCheckerDependency;
@@ -40,20 +40,11 @@ use Espo\Core\{
*/
class TemplateEntityTypeList
{
/**
* @var Acl
*/
protected $acl;
private $acl;
/**
* @var SelectBuilderFactory
*/
protected $selectBuilderFactory;
private $selectBuilderFactory;
/**
* @var EntityManager
*/
protected $entityManager;
private $entityManager;
public function __construct(Acl $acl, SelectBuilderFactory $selectBuilderFactory, EntityManager $entityManager)
{
@@ -62,6 +53,9 @@ class TemplateEntityTypeList
$this->entityManager = $entityManager;
}
/**
* @return string[]
*/
public function get(): array
{
if (!$this->acl->checkScope('Template')) {
@@ -55,7 +55,7 @@ class Email implements AssignmentNotificator
{
private const DAYS_THRESHOLD = 2;
private $streamService = null;
private ?StreamService $streamService = null;
private $user;
+1 -1
View File
@@ -43,7 +43,7 @@ class Exports implements Cleanup
private $entityManager;
private $cleanupPeriod = '2 days';
private string $cleanupPeriod = '2 days';
public function __construct(Config $config, EntityManager $entityManager)
{
@@ -41,7 +41,7 @@ class MassActions implements Cleanup
private $entityManager;
private $cleanupPeriod = '14 days';
private string $cleanupPeriod = '14 days';
public function __construct(Config $config, EntityManager $entityManager)
{
@@ -41,7 +41,7 @@ class Reminders implements Cleanup
private $entityManager;
private $cleanupRemindersPeriod = '15 days';
private string $cleanupRemindersPeriod = '15 days';
public function __construct(Config $config, EntityManager $entityManager)
{
@@ -37,7 +37,7 @@ use DateTime;
class WebhookQueue implements Cleanup
{
private $cleanupWebhookQueuePeriod = '10 days';
private string $cleanupWebhookQueuePeriod = '10 days';
private $config;
@@ -33,32 +33,32 @@ use Espo\Core\Utils\Metadata;
class DefaultSidePanelType
{
protected $metadata;
private $metadata;
public function __construct(Metadata $metadata)
{
$this->metadata = $metadata;
}
/**
* @return \stdClass[]
*/
public function get(string $scope): array
{
$list = [];
if (
$this->metadata->get(['entityDefs', $scope, 'fields', 'assignedUser', 'type']) === 'link'
&&
$this->metadata->get(['entityDefs', $scope, 'fields', 'assignedUser', 'type']) === 'link' &&
$this->metadata->get(['entityDefs', $scope, 'links', 'assignedUser', 'entity']) === 'User'
||
$this->metadata->get(['entityDefs', $scope, 'fields', 'assignedUsers', 'type']) === 'linkMultiple'
&&
$this->metadata->get(['entityDefs', $scope, 'fields', 'assignedUsers', 'type']) === 'linkMultiple' &&
$this->metadata->get(['entityDefs', $scope, 'links', 'assignedUsers', 'entity']) === 'User'
) {
$list[] = (object) ['name' => ':assignedUser'];
}
if (
$this->metadata->get(['entityDefs', $scope, 'fields', 'teams', 'type']) === 'linkMultiple'
&&
$this->metadata->get(['entityDefs', $scope, 'fields', 'teams', 'type']) === 'linkMultiple' &&
$this->metadata->get(['entityDefs', $scope, 'links', 'teams', 'entity']) === 'Team'
) {
$list[] = (object) ['name' => 'teams'];
@@ -40,6 +40,9 @@ use Espo\ORM\{
Entity,
};
/**
* @implements WhereBuilder<CoreEntity>
*/
class Company implements WhereBuilder
{
public function build(Entity $entity): ?WhereItem
@@ -88,6 +91,9 @@ class Company implements WhereBuilder
return $orBuilder->build();
}
/**
* @return string[]
*/
private function getEmailAddressList(CoreEntity $entity): array
{
if ($entity->get('emailAddressData')) {
@@ -43,6 +43,9 @@ use Espo\ORM\{
Entity,
};
/**
* @implements WhereBuilder<CoreEntity>
*/
class Person implements WhereBuilder
{
public function build(Entity $entity): ?WhereItem
@@ -97,6 +100,9 @@ class Person implements WhereBuilder
return $orBuilder->build();
}
/**
* @return string[]
*/
private function getEmailAddressList(CoreEntity $entity): array
{
if ($entity->get('emailAddressData')) {
@@ -51,13 +51,13 @@ class AttachmentMultiple implements FieldDuplicator
{
$valueMap = (object) [];
/** @var \Espo\ORM\Collection&iterable<Attachment> $attachmentList */
/** @var \Espo\ORM\Collection<Attachment> $attachmentList */
$attachmentList = $this->entityManager
->getRDBRepository($entity->getEntityType())
->getRelation($entity, $field)
->find();
if (!count($attachmentList)) {
if (is_countable($attachmentList) && !count($attachmentList)) {
return $valueMap;
}
@@ -48,12 +48,18 @@ use ICal\Event;
use Throwable;
/**
* @implements Loader<\Espo\Entities\Email>
*/
class IcsDataLoader implements Loader
{
private $entityManager;
private $log;
/**
* @var array<string,string>
*/
private $entityTypeLinkMap = [
'User' => 'users',
'Contact' => 'contacts',
@@ -42,12 +42,18 @@ use Espo\Core\{
use Espo\Entities\Email;
use Espo\Entities\User;
/**
* @implements Loader<\Espo\Entities\Email>
*/
class StringDataLoader implements Loader
{
private $entityManager;
private $user;
/**
* @var array<string,string>
*/
private $fromEmailAddressNameCache = [];
public function __construct(EntityManager $entityManager, User $user)
@@ -39,6 +39,9 @@ use Espo\Core\{
use Espo\Entities\User;
/**
* @implements Loader<\Espo\Entities\Email>
*/
class UserColumnsLoader implements Loader
{
private $entityManager;
@@ -38,6 +38,9 @@ use Espo\Core\{
use Espo\Entities\Note;
/**
* @implements Loader<\Espo\Entities\Note>
*/
class AttachmentsLoader implements Loader
{
public function process(Entity $entity, Params $params): void
@@ -40,6 +40,9 @@ use Espo\Core\{
ORM\EntityManager,
};
/**
* @implements Loader<\Espo\Entities\Portal>
*/
class UrlLoader implements Loader
{
private $entityManager;
@@ -42,6 +42,9 @@ use Espo\Core\{
use DateTime;
use Exception;
/**
* @implements Loader<\Espo\Entities\User>
*/
class LastAccessLoader implements Loader
{
private $entityManager;
@@ -38,6 +38,9 @@ class IntType
return $this->isNotEmpty($entity, $field);
}
/**
* @param mixed $validationValue
*/
public function checkMax(Entity $entity, string $field, $validationValue): bool
{
if (!$this->isNotEmpty($entity, $field)) {
@@ -51,6 +54,9 @@ class IntType
return true;
}
/**
* @param mixed $validationValue
*/
public function checkMin(Entity $entity, string $field, $validationValue): bool
{
if (!$this->isNotEmpty($entity, $field)) {
@@ -76,7 +76,7 @@ class CheckNewVersion implements JobDataLess
return;
}
protected function getRunTime()
protected function getRunTime(): string
{
$hour = rand(0, 4);
$minute = rand(0, 59);
@@ -99,7 +99,7 @@ class CheckNewVersion implements JobDataLess
* For backward compatibility.
* @deprecated
*/
protected function getEntityManager()
protected function getEntityManager() /** @phpstan-ignore-line */
{
return $this->entityManager;
}
+10 -9
View File
@@ -53,23 +53,23 @@ use Throwable;
class Cleanup implements JobDataLess
{
private $cleanupJobPeriod = '10 days';
private string $cleanupJobPeriod = '10 days';
private $cleanupActionHistoryPeriod = '15 days';
private string $cleanupActionHistoryPeriod = '15 days';
private $cleanupAuthTokenPeriod = '1 month';
private string $cleanupAuthTokenPeriod = '1 month';
private $cleanupAuthLogPeriod = '2 months';
private string $cleanupAuthLogPeriod = '2 months';
private $cleanupNotificationsPeriod = '2 months';
private string $cleanupNotificationsPeriod = '2 months';
private $cleanupAttachmentsPeriod = '15 days';
private string $cleanupAttachmentsPeriod = '15 days';
private $cleanupAttachmentsFromPeriod = '3 months';
private string $cleanupAttachmentsFromPeriod = '3 months';
private $cleanupBackupPeriod = '2 month';
private string $cleanupBackupPeriod = '2 month';
private $cleanupDeletedRecordsPeriod = '3 months';
private string $cleanupDeletedRecordsPeriod = '3 months';
private $config;
@@ -134,6 +134,7 @@ class Cleanup implements JobDataLess
foreach ($items as $name => $item) {
try {
/** @var class-string */
$className = $item['className'];
$injectableFactory->create($className)->process();
@@ -44,9 +44,9 @@ use Espo\{
class EmailAddressEquals implements ItemConverter
{
protected $emailAddressHelper;
private $emailAddressHelper;
protected $randomStringGenerator;
private $randomStringGenerator;
public function __construct(
EmailAddressHelper $emailAddressHelper,
@@ -45,20 +45,11 @@ use Espo\{
class InFolder implements ItemConverter
{
/**
* @var User
*/
protected $user;
private User $user;
/**
* @var EntityManager
*/
protected $entityManager;
private EntityManager $entityManager;
/**
* @var JoinHelper
*/
protected $joinHelper;
private JoinHelper $joinHelper;
public function __construct(User $user, EntityManager $entityManager, JoinHelper $joinHelper)
{
@@ -173,7 +164,7 @@ class InFolder implements ItemConverter
{
return WhereClause::fromRaw([
'status' => 'Draft',
'createdById' => $this->user->id,
'createdById' => $this->user->getId(),
]);
}
@@ -187,11 +178,14 @@ class InFolder implements ItemConverter
]);
}
protected function joinEmailUser(QueryBuilder $queryBuilder)
protected function joinEmailUser(QueryBuilder $queryBuilder): void
{
$this->joinHelper->joinEmailUser($queryBuilder, $this->user->id);
$this->joinHelper->joinEmailUser($queryBuilder, $this->user->getId());
}
/**
* @return string[]
*/
protected function getEmailAddressIdList(): array
{
$emailAddressList = $this->entityManager
@@ -44,9 +44,9 @@ use Espo\{
class IsImportantIsFalse implements ItemConverter
{
protected $user;
private $user;
protected $joinHelper;
private $joinHelper;
public function __construct(User $user, JoinHelper $joinHelper)
{
@@ -44,9 +44,9 @@ use Espo\{
class IsImportantIsTrue implements ItemConverter
{
protected $user;
private $user;
protected $joinHelper;
private $joinHelper;
public function __construct(User $user, JoinHelper $joinHelper)
{
@@ -44,9 +44,9 @@ use Espo\{
class IsNotReadIsFalse implements ItemConverter
{
protected $user;
private $user;
protected $joinHelper;
private $joinHelper;
public function __construct(User $user, JoinHelper $joinHelper)
{
@@ -44,9 +44,9 @@ use Espo\{
class IsNotReadIsTrue implements ItemConverter
{
protected $user;
private $user;
protected $joinHelper;
private $joinHelper;
public function __construct(User $user, JoinHelper $joinHelper)
{
@@ -44,9 +44,9 @@ use Espo\{
class ToEquals implements ItemConverter
{
protected $emailAddressHelper;
private $emailAddressHelper;
protected $randomStringGenerator;
private $randomStringGenerator;
public function __construct(
EmailAddressHelper $emailAddressHelper,