mirror of
https://github.com/espocrm/espocrm.git
synced 2026-06-28 06:56:05 +00:00
fixes and cleanup
This commit is contained in:
@@ -36,7 +36,6 @@ use Espo\ORM\Entity;
|
||||
use Espo\Core\ORM\Entity as CoreEntity;
|
||||
|
||||
use Espo\Core\{
|
||||
Portal\AclManager,
|
||||
Acl\Table,
|
||||
Acl\ScopeData,
|
||||
Acl\AccessEntityCREDSChecker,
|
||||
@@ -50,14 +49,10 @@ class AccessChecker implements AccessEntityCREDSChecker
|
||||
|
||||
private $defaultAccessChecker;
|
||||
|
||||
private $aclManager;
|
||||
|
||||
public function __construct(
|
||||
DefaultAccessChecker $defaultAccessChecker,
|
||||
AclManager $aclManager
|
||||
DefaultAccessChecker $defaultAccessChecker
|
||||
) {
|
||||
$this->defaultAccessChecker = $defaultAccessChecker;
|
||||
$this->aclManager = $aclManager;
|
||||
}
|
||||
|
||||
public function checkEntityRead(User $user, Entity $entity, ScopeData $data): bool
|
||||
|
||||
@@ -30,7 +30,6 @@
|
||||
namespace Espo\Core\Acl\AssignmentChecker;
|
||||
|
||||
use Espo\Core\{
|
||||
Utils\ClassFinder,
|
||||
Utils\Metadata,
|
||||
InjectableFactory,
|
||||
Acl\AssignmentChecker,
|
||||
@@ -42,18 +41,14 @@ class AssignmentCheckerFactory
|
||||
{
|
||||
private $defaultClassName = DefaultAssignmentChecker::class;
|
||||
|
||||
private $classFinder;
|
||||
|
||||
private $metadata;
|
||||
|
||||
private $injectableFactory;
|
||||
|
||||
public function __construct(
|
||||
ClassFinder $classFinder,
|
||||
Metadata $metadata,
|
||||
InjectableFactory $injectableFactory
|
||||
) {
|
||||
$this->classFinder = $classFinder;
|
||||
$this->metadata = $metadata;
|
||||
$this->injectableFactory = $injectableFactory;
|
||||
}
|
||||
|
||||
@@ -33,22 +33,16 @@ use Espo\ORM\Entity;
|
||||
|
||||
use Espo\Entities\User;
|
||||
|
||||
use Espo\Core\{
|
||||
Utils\Metadata,
|
||||
Acl\AssignmentChecker,
|
||||
};
|
||||
use Espo\Core\Acl\AssignmentChecker;
|
||||
|
||||
class AssignmentCheckerManager
|
||||
{
|
||||
private $checkerCache = [];
|
||||
|
||||
private $metadata;
|
||||
|
||||
private $factory;
|
||||
|
||||
public function __construct(Metadata $metadata, AssignmentCheckerFactory $factory)
|
||||
public function __construct(AssignmentCheckerFactory $factory)
|
||||
{
|
||||
$this->metadata = $metadata;
|
||||
$this->factory = $factory;
|
||||
}
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
|
||||
namespace Espo\Core\Acl;
|
||||
|
||||
use StdClass;
|
||||
use stdClass;
|
||||
use RuntimeException;
|
||||
|
||||
/**
|
||||
@@ -37,6 +37,9 @@ use RuntimeException;
|
||||
*/
|
||||
class FieldData
|
||||
{
|
||||
/**
|
||||
* @phpstan-ignore-next-line
|
||||
*/
|
||||
private $raw;
|
||||
|
||||
private $actionData = [];
|
||||
@@ -77,7 +80,7 @@ class FieldData
|
||||
/**
|
||||
* Create from a raw table value.
|
||||
*/
|
||||
public static function fromRaw(StdClass $raw): self
|
||||
public static function fromRaw(stdClass $raw): self
|
||||
{
|
||||
$obj = new self();
|
||||
|
||||
|
||||
@@ -109,7 +109,7 @@ class ErrorOutput
|
||||
bool $toPrintBody = false
|
||||
): void {
|
||||
|
||||
$message = $exception->getMessage() ?? '';
|
||||
$message = $exception->getMessage();
|
||||
$statusCode = $exception->getCode();
|
||||
|
||||
if ($route) {
|
||||
@@ -225,7 +225,7 @@ class ErrorOutput
|
||||
{
|
||||
$requestBodyString = $this->clearPasswords($request->getBodyContents());
|
||||
|
||||
$message = $exception->getMessage() ?? '';
|
||||
$message = $exception->getMessage();
|
||||
$statusCode = $exception->getCode();
|
||||
|
||||
$routeParams = $request->getRouteParams();
|
||||
|
||||
@@ -77,7 +77,7 @@ class Daemon implements Runner
|
||||
|
||||
$processList = [];
|
||||
|
||||
while (true) {
|
||||
while (true) { /** @phpstan-ignore-line */
|
||||
$toSkip = false;
|
||||
$runningCount = 0;
|
||||
|
||||
|
||||
@@ -406,7 +406,7 @@ class Upgrade implements Command
|
||||
try {
|
||||
$data = json_decode($result);
|
||||
}
|
||||
catch (Exception $e) {
|
||||
catch (Exception $e) { /** @phpstan-ignore-line */
|
||||
echo "Could not parse info about next version.\n";
|
||||
|
||||
return null;
|
||||
|
||||
@@ -44,8 +44,6 @@ use Espo\Core\Utils\Route;
|
||||
use Espo\Core\Utils\ClientManager;
|
||||
use Espo\Core\ApplicationRunners\EntryPoint as EntryPointRunner;
|
||||
|
||||
use Espo\ORM\EntityManager;
|
||||
|
||||
use Slim\ResponseEmitter;
|
||||
use Slim\Factory\ServerRequestCreatorFactory;
|
||||
use Slim\Psr7\Response;
|
||||
@@ -61,8 +59,6 @@ class Starter
|
||||
|
||||
private $entryPointManager;
|
||||
|
||||
private $entityManager;
|
||||
|
||||
private $clientManager;
|
||||
|
||||
private $applicationUser;
|
||||
@@ -76,7 +72,6 @@ class Starter
|
||||
public function __construct(
|
||||
AuthenticationFactory $authenticationFactory,
|
||||
EntryPointManager $entryPointManager,
|
||||
EntityManager $entityManager,
|
||||
ClientManager $clientManager,
|
||||
ApplicationUser $applicationUser,
|
||||
AuthTokenManager $authTokenManager,
|
||||
@@ -85,7 +80,6 @@ class Starter
|
||||
) {
|
||||
$this->authenticationFactory = $authenticationFactory;
|
||||
$this->entryPointManager = $entryPointManager;
|
||||
$this->entityManager = $entityManager;
|
||||
$this->clientManager = $clientManager;
|
||||
$this->applicationUser = $applicationUser;
|
||||
$this->authTokenManager = $authTokenManager;
|
||||
|
||||
@@ -249,7 +249,7 @@ abstract class OAuth2Abstract implements IClient
|
||||
while (true) {
|
||||
usleep($this::LOCK_CHECK_STEP * 1000000);
|
||||
|
||||
if (!$this->isLocked()) {
|
||||
if (!$this->isLocked()) { /** @phpstan-ignore-line */
|
||||
$this->log->debug("Oauth: Waited until unlocked for client {$this->clientId}.");
|
||||
|
||||
$this->reFetch();
|
||||
|
||||
@@ -65,6 +65,9 @@ use const JSON_PRESERVE_ZERO_FRACTION;
|
||||
*/
|
||||
class Htmlizer
|
||||
{
|
||||
/**
|
||||
* @phpstan-ignore-next-line
|
||||
*/
|
||||
private $fileManager;
|
||||
|
||||
private $dateTime;
|
||||
|
||||
@@ -55,7 +55,10 @@ class TemplateRenderer
|
||||
|
||||
private $applicationState;
|
||||
|
||||
private $template;
|
||||
/**
|
||||
* @var ?string
|
||||
*/
|
||||
private $template = null;
|
||||
|
||||
public function __construct(HtmlizerFactory $htmlizerFactory, ApplicationState $applicationState)
|
||||
{
|
||||
@@ -118,6 +121,13 @@ class TemplateRenderer
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function setTemplate(string $template): self
|
||||
{
|
||||
$this->template = $template;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function render(): string
|
||||
{
|
||||
if (!$this->template) {
|
||||
|
||||
@@ -32,7 +32,6 @@ namespace Espo\Core\Job;
|
||||
use Espo\Core\{
|
||||
Utils\Config,
|
||||
Utils\File\Manager as FileManager,
|
||||
ORM\EntityManager,
|
||||
Utils\Log,
|
||||
};
|
||||
|
||||
@@ -55,8 +54,6 @@ class JobManager
|
||||
|
||||
private $fileManager;
|
||||
|
||||
private $entityManager;
|
||||
|
||||
private $jobRunner;
|
||||
|
||||
private $log;
|
||||
@@ -72,7 +69,6 @@ class JobManager
|
||||
public function __construct(
|
||||
Config $config,
|
||||
FileManager $fileManager,
|
||||
EntityManager $entityManager,
|
||||
JobRunner $jobRunner,
|
||||
Log $log,
|
||||
ScheduleProcessor $scheduleProcessor,
|
||||
@@ -82,7 +78,6 @@ class JobManager
|
||||
) {
|
||||
$this->config = $config;
|
||||
$this->fileManager = $fileManager;
|
||||
$this->entityManager = $entityManager;
|
||||
$this->jobRunner = $jobRunner;
|
||||
$this->log = $log;
|
||||
$this->scheduleProcessor = $scheduleProcessor;
|
||||
|
||||
@@ -63,7 +63,7 @@ class EventFactory
|
||||
->withName($event->summary ?? null)
|
||||
->withLocation($event->location ?? null)
|
||||
->withDescription($event->description ?? null)
|
||||
->withTimezone($ical->calendarTimeZone() ?? null)
|
||||
->withTimezone($ical->calendarTimeZone() ?? null) /** @phpstan-ignore-line */
|
||||
->withOrganizer($event->organizer ?? null)
|
||||
->withAttendees($event->attendee ?? null);
|
||||
|
||||
|
||||
@@ -37,7 +37,6 @@ use Espo\Core\{
|
||||
MassAction\Result,
|
||||
MassAction\Data,
|
||||
MassAction\MassAction,
|
||||
Acl,
|
||||
ORM\EntityManager,
|
||||
Exceptions\Forbidden,
|
||||
};
|
||||
@@ -50,8 +49,6 @@ class MassUnfollow implements MassAction
|
||||
{
|
||||
private $queryBuilder;
|
||||
|
||||
private $acl;
|
||||
|
||||
private $streamService;
|
||||
|
||||
private $entityManager;
|
||||
@@ -60,13 +57,11 @@ class MassUnfollow implements MassAction
|
||||
|
||||
public function __construct(
|
||||
QueryBuilder $queryBuilder,
|
||||
Acl $acl,
|
||||
StreamService $streamService,
|
||||
EntityManager $entityManager,
|
||||
User $user
|
||||
) {
|
||||
$this->queryBuilder = $queryBuilder;
|
||||
$this->acl = $acl;
|
||||
$this->streamService = $streamService;
|
||||
$this->entityManager = $entityManager;
|
||||
$this->user = $user;
|
||||
|
||||
@@ -34,7 +34,6 @@ use Espo\Entities\User;
|
||||
use Espo\ORM\Entity;
|
||||
|
||||
use Espo\Core\{
|
||||
Utils\Config,
|
||||
Portal\AclManager as PortalAclManager,
|
||||
Portal\Acl\AccessChecker\ScopeChecker,
|
||||
Portal\Acl\AccessChecker\ScopeCheckerData,
|
||||
@@ -59,17 +58,13 @@ class DefaultAccessChecker implements
|
||||
{
|
||||
private $aclManager;
|
||||
|
||||
private $config;
|
||||
|
||||
private $scopeChecker;
|
||||
|
||||
public function __construct(
|
||||
PortalAclManager $aclManager,
|
||||
Config $config,
|
||||
ScopeChecker $scopeChecker
|
||||
) {
|
||||
$this->aclManager = $aclManager;
|
||||
$this->config = $config;
|
||||
$this->scopeChecker = $scopeChecker;
|
||||
}
|
||||
|
||||
|
||||
@@ -45,8 +45,6 @@ use Espo\Core\{
|
||||
|
||||
class Application extends BaseApplication
|
||||
{
|
||||
private $portal;
|
||||
|
||||
public function __construct(?string $portalId)
|
||||
{
|
||||
date_default_timezone_set('UTC');
|
||||
@@ -93,8 +91,6 @@ class Application extends BaseApplication
|
||||
throw new Forbidden("Portal {$portalId} is not active.");
|
||||
}
|
||||
|
||||
$this->portal = $portal;
|
||||
|
||||
$this->container->setPortal($portal);
|
||||
}
|
||||
|
||||
|
||||
@@ -107,7 +107,6 @@ class Event extends Database implements
|
||||
$this->preserveDuration &&
|
||||
$entity->isAttributeChanged('dateStart') &&
|
||||
$entity->get('dateStart') &&
|
||||
$entity->isAttributeChanged('dateStart') &&
|
||||
!$entity->isAttributeChanged('dateEnd')
|
||||
) {
|
||||
$dateEndPrevious = $entity->getFetched('dateEnd');
|
||||
|
||||
@@ -29,23 +29,17 @@
|
||||
|
||||
namespace Espo\Core\Select\AccessControl;
|
||||
|
||||
use Espo\{
|
||||
Core\Acl,
|
||||
Entities\User,
|
||||
};
|
||||
use Espo\Core\Acl;
|
||||
|
||||
class DefaultFilterResolver implements FilterResolver
|
||||
{
|
||||
private $entityType;
|
||||
|
||||
private $user;
|
||||
|
||||
private $acl;
|
||||
|
||||
public function __construct(string $entityType, User $user, Acl $acl)
|
||||
public function __construct(string $entityType, Acl $acl)
|
||||
{
|
||||
$this->entityType = $entityType;
|
||||
$this->user = $user;
|
||||
$this->acl = $acl;
|
||||
}
|
||||
|
||||
|
||||
@@ -29,23 +29,17 @@
|
||||
|
||||
namespace Espo\Core\Select\AccessControl;
|
||||
|
||||
use Espo\{
|
||||
Core\Portal\Acl,
|
||||
Entities\User,
|
||||
};
|
||||
use Espo\Core\Portal\Acl;
|
||||
|
||||
class DefaultPortalFilterResolver implements FilterResolver
|
||||
{
|
||||
private $entityType;
|
||||
|
||||
private $user;
|
||||
|
||||
private $acl;
|
||||
|
||||
public function __construct(string $entityType, User $user, Acl $acl)
|
||||
public function __construct(string $entityType, Acl $acl)
|
||||
{
|
||||
$this->entityType = $entityType;
|
||||
$this->user = $user;
|
||||
$this->acl = $acl;
|
||||
}
|
||||
|
||||
|
||||
@@ -38,15 +38,12 @@ use Espo\{
|
||||
|
||||
class OnlyOwn implements Filter
|
||||
{
|
||||
private $entityType;
|
||||
|
||||
private $user;
|
||||
|
||||
private $fieldHelper;
|
||||
|
||||
public function __construct(string $entityType, User $user, FieldHelper $fieldHelper)
|
||||
public function __construct(User $user, FieldHelper $fieldHelper)
|
||||
{
|
||||
$this->entityType = $entityType;
|
||||
$this->user = $user;
|
||||
$this->fieldHelper = $fieldHelper;
|
||||
}
|
||||
|
||||
@@ -38,15 +38,12 @@ use Espo\{
|
||||
|
||||
class OnlyTeam implements Filter
|
||||
{
|
||||
private $entityType;
|
||||
|
||||
private $user;
|
||||
|
||||
private $fieldHelper;
|
||||
|
||||
public function __construct(string $entityType, User $user, FieldHelper $fieldHelper)
|
||||
public function __construct(User $user, FieldHelper $fieldHelper)
|
||||
{
|
||||
$this->entityType = $entityType;
|
||||
$this->user = $user;
|
||||
$this->fieldHelper = $fieldHelper;
|
||||
}
|
||||
|
||||
@@ -38,15 +38,12 @@ use Espo\{
|
||||
|
||||
class PortalOnlyAccount implements Filter
|
||||
{
|
||||
private $entityType;
|
||||
|
||||
private $user;
|
||||
|
||||
private $fieldHelper;
|
||||
|
||||
public function __construct(string $entityType, User $user, FieldHelper $fieldHelper)
|
||||
public function __construct(User $user, FieldHelper $fieldHelper)
|
||||
{
|
||||
$this->entityType = $entityType;
|
||||
$this->user = $user;
|
||||
$this->fieldHelper = $fieldHelper;
|
||||
}
|
||||
|
||||
@@ -38,15 +38,12 @@ use Espo\{
|
||||
|
||||
class PortalOnlyContact implements Filter
|
||||
{
|
||||
private $entityType;
|
||||
|
||||
private $user;
|
||||
|
||||
private $fieldHelper;
|
||||
|
||||
public function __construct(string $entityType, User $user, FieldHelper $fieldHelper)
|
||||
public function __construct(User $user, FieldHelper $fieldHelper)
|
||||
{
|
||||
$this->entityType = $entityType;
|
||||
$this->user = $user;
|
||||
$this->fieldHelper = $fieldHelper;
|
||||
}
|
||||
|
||||
@@ -38,15 +38,12 @@ use Espo\{
|
||||
|
||||
class PortalOnlyOwn implements Filter
|
||||
{
|
||||
private $entityType;
|
||||
|
||||
private $user;
|
||||
|
||||
private $fieldHelper;
|
||||
|
||||
public function __construct(string $entityType, User $user, FieldHelper $fieldHelper)
|
||||
public function __construct(User $user, FieldHelper $fieldHelper)
|
||||
{
|
||||
$this->entityType = $entityType;
|
||||
$this->user = $user;
|
||||
$this->fieldHelper = $fieldHelper;
|
||||
}
|
||||
@@ -55,7 +52,7 @@ class PortalOnlyOwn implements Filter
|
||||
{
|
||||
if ($this->fieldHelper->hasCreatedByField()) {
|
||||
$queryBuilder->where([
|
||||
'createdById' => $this->user->id,
|
||||
'createdById' => $this->user->getId(),
|
||||
]);
|
||||
|
||||
return;
|
||||
|
||||
@@ -29,7 +29,6 @@
|
||||
|
||||
namespace Espo\Core\Select\Applier\Appliers;
|
||||
|
||||
use Espo\Core\Utils\Config;
|
||||
use Espo\Core\Select\Text\MetadataProvider;
|
||||
use Espo\Core\Select\Text\FilterParams;
|
||||
use Espo\Core\Select\Text\FullTextSearchData;
|
||||
@@ -64,8 +63,6 @@ class TextFilter
|
||||
|
||||
private $user;
|
||||
|
||||
private $config;
|
||||
|
||||
private $metadataProvider;
|
||||
|
||||
private $fullTextSearchDataComposerFactory;
|
||||
@@ -75,14 +72,12 @@ class TextFilter
|
||||
public function __construct(
|
||||
string $entityType,
|
||||
User $user,
|
||||
Config $config,
|
||||
MetadataProvider $metadataProvider,
|
||||
FullTextSearchDataComposerFactory $fullTextSearchDataComposerFactory,
|
||||
FilterFactory $filterFactory
|
||||
) {
|
||||
$this->entityType = $entityType;
|
||||
$this->user = $user;
|
||||
$this->config = $config;
|
||||
$this->metadataProvider = $metadataProvider;
|
||||
$this->fullTextSearchDataComposerFactory = $fullTextSearchDataComposerFactory;
|
||||
$this->filterFactory = $filterFactory;
|
||||
|
||||
@@ -61,6 +61,6 @@ class UserTimeZoneProvider
|
||||
return $this->config->get('timeZone');
|
||||
}
|
||||
|
||||
return $preferences->get('timeZone') ?? 'UTC';
|
||||
return $preferences->get('timeZone');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -95,7 +95,7 @@ class AdminNotificationManager
|
||||
}
|
||||
|
||||
if ($this->config->get('adminNotificationsNewExtensionVersion')) {
|
||||
$extensionsNeedingUpgrade = $this->getExtensionsNeedingUpgrade() ?? [];
|
||||
$extensionsNeedingUpgrade = $this->getExtensionsNeedingUpgrade();
|
||||
|
||||
foreach ($extensionsNeedingUpgrade as $extensionName => $extensionDetails) {
|
||||
$label = 'new' . Util::toCamelCase($extensionName, ' ', true) . 'VersionIsAvailable';
|
||||
|
||||
@@ -123,7 +123,7 @@ class NamespaceLoader
|
||||
{
|
||||
$namespaces = $this->getNamespaces();
|
||||
|
||||
return array_keys($namespaces[$type]) ?? [];
|
||||
return array_keys($namespaces[$type]);
|
||||
}
|
||||
|
||||
private function addNamespace(string $type, string $name, $path): void
|
||||
|
||||
@@ -33,8 +33,6 @@ use RuntimeException;
|
||||
|
||||
class Crypt
|
||||
{
|
||||
private $config;
|
||||
|
||||
private $key = null;
|
||||
|
||||
private $cryptKey = null;
|
||||
@@ -43,8 +41,6 @@ class Crypt
|
||||
|
||||
public function __construct(Config $config)
|
||||
{
|
||||
$this->config = $config;
|
||||
|
||||
$this->cryptKey = $config->get('cryptKey', '');
|
||||
}
|
||||
|
||||
|
||||
@@ -33,7 +33,6 @@ use Espo\Core\{
|
||||
Exceptions\Error,
|
||||
Utils\Util,
|
||||
Utils\File\Manager as FileManager,
|
||||
Utils\Metadata,
|
||||
Utils\Config,
|
||||
Utils\DataCache,
|
||||
Utils\Resource\Reader as ResourceReader,
|
||||
@@ -66,8 +65,6 @@ class Language
|
||||
|
||||
private $fileManager;
|
||||
|
||||
private $metadata;
|
||||
|
||||
private $resourceReader;
|
||||
|
||||
private $dataCache;
|
||||
@@ -75,7 +72,6 @@ class Language
|
||||
public function __construct(
|
||||
?string $language,
|
||||
FileManager $fileManager,
|
||||
Metadata $metadata,
|
||||
ResourceReader $resourceReader,
|
||||
DataCache $dataCache,
|
||||
bool $useCache = false,
|
||||
@@ -84,7 +80,6 @@ class Language
|
||||
$this->currentLanguage = $language ?? $this->defaultLanguage;
|
||||
|
||||
$this->fileManager = $fileManager;
|
||||
$this->metadata = $metadata;
|
||||
$this->resourceReader = $resourceReader;
|
||||
$this->dataCache = $dataCache;
|
||||
|
||||
|
||||
@@ -40,20 +40,16 @@ class TemplateFileManager
|
||||
{
|
||||
private $config;
|
||||
|
||||
private $metadata;
|
||||
|
||||
private $fileManager;
|
||||
|
||||
private $fileReader;
|
||||
|
||||
public function __construct(
|
||||
Config $config,
|
||||
Metadata $metadata,
|
||||
FileManager $fileManager,
|
||||
FileReader $fileReader
|
||||
) {
|
||||
$this->config = $config;
|
||||
$this->metadata = $metadata;
|
||||
$this->fileManager = $fileManager;
|
||||
$this->fileReader = $fileReader;
|
||||
}
|
||||
|
||||
@@ -60,13 +60,10 @@ class ServerStarter
|
||||
|
||||
private $config;
|
||||
|
||||
private $metadata;
|
||||
|
||||
public function __construct(Subscriber $subscriber, Config $config, Metadata $metadata)
|
||||
{
|
||||
$this->subscriber = $subscriber;
|
||||
$this->config = $config;
|
||||
$this->metadata = $metadata;
|
||||
|
||||
$this->categoriesData = $metadata->get(['app', 'webSocket', 'categories'], []);
|
||||
|
||||
|
||||
@@ -80,7 +80,7 @@ class ApiKey
|
||||
return;
|
||||
}
|
||||
|
||||
if ($entity->isApi() && $entity->get('authMethod') === 'Hmac') {
|
||||
if ($entity->get('authMethod') === 'Hmac') {
|
||||
$this->apiKey->removeSecretKeyForUserId($entity->getId());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,18 +34,11 @@ use Espo\Entities\User;
|
||||
use Espo\ORM\Entity;
|
||||
|
||||
use Espo\Core\{
|
||||
Portal\Acl\DefaultOwnershipChecker,
|
||||
Portal\Acl\OwnershipAccountChecker,
|
||||
};
|
||||
|
||||
class OwnershipChecker implements OwnershipAccountChecker
|
||||
{
|
||||
private $defaultOwnershipChecker;
|
||||
|
||||
public function __construct(DefaultOwnershipChecker $defaultOwnershipChecker) {
|
||||
$this->defaultOwnershipChecker = $defaultOwnershipChecker;
|
||||
}
|
||||
|
||||
public function checkAccount(User $user, Entity $entity): bool
|
||||
{
|
||||
$accountIdList = $user->getLinkMultipleIdList('accounts');
|
||||
|
||||
@@ -37,7 +37,6 @@ use Espo\Core\Exceptions\{
|
||||
use Espo\Core\{
|
||||
Api\Request,
|
||||
Acl,
|
||||
Utils\Config,
|
||||
Record\SearchParamsFetcher,
|
||||
};
|
||||
|
||||
@@ -45,7 +44,7 @@ use Espo\Modules\Crm\Services\Activities as Service;
|
||||
|
||||
use Espo\Entities\User;
|
||||
|
||||
use StdClass;
|
||||
use stdClass;
|
||||
|
||||
class Activities
|
||||
{
|
||||
@@ -55,8 +54,6 @@ class Activities
|
||||
|
||||
private $acl;
|
||||
|
||||
private $config;
|
||||
|
||||
private $searchParamsFetcher;
|
||||
|
||||
private $service;
|
||||
@@ -64,13 +61,11 @@ class Activities
|
||||
public function __construct(
|
||||
User $user,
|
||||
Acl $acl,
|
||||
Config $config,
|
||||
SearchParamsFetcher $searchParamsFetcher,
|
||||
Service $service
|
||||
) {
|
||||
$this->user = $user;
|
||||
$this->acl = $acl;
|
||||
$this->config = $config;
|
||||
$this->searchParamsFetcher = $searchParamsFetcher;
|
||||
$this->service = $service;
|
||||
}
|
||||
@@ -257,7 +252,7 @@ class Activities
|
||||
]);
|
||||
}
|
||||
|
||||
public function getActionEntityTypeList(Request $request): StdClass
|
||||
public function getActionEntityTypeList(Request $request): stdClass
|
||||
{
|
||||
$params = $request->getRouteParams();
|
||||
|
||||
|
||||
@@ -66,7 +66,7 @@ class Contact extends Record
|
||||
]);
|
||||
}
|
||||
else {
|
||||
if ($entity->get('accountId')) {
|
||||
if ($entity->get('accountId')) { /** @phpstan-ignore-line */
|
||||
$email->set([
|
||||
'parentType' => 'Account',
|
||||
'parentId' => $entity->get('accountId')
|
||||
|
||||
@@ -392,17 +392,13 @@ class Processor
|
||||
|
||||
$target = $this->entityManager->getEntity($queueItem->get('targetType'), $queueItem->get('targetId'));
|
||||
|
||||
if (!$target || !$target->getId() || !$target->get('emailAddress')) {
|
||||
$queueItem->set('status', 'Failed');
|
||||
|
||||
$this->entityManager->saveEntity($queueItem);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
$emailAddress = $target->get('emailAddress');
|
||||
|
||||
if (!$emailAddress) {
|
||||
if (
|
||||
!$target ||
|
||||
!$target->getId() ||
|
||||
!$emailAddress
|
||||
) {
|
||||
$queueItem->set('status', 'Failed');
|
||||
|
||||
$this->entityManager->saveEntity($queueItem);
|
||||
|
||||
Reference in New Issue
Block a user