diff --git a/application/Espo/Repositories/ActionHistoryRecord.php b/application/Espo/Repositories/ActionHistoryRecord.php index 694eab83b9..c7e78ff4de 100644 --- a/application/Espo/Repositories/ActionHistoryRecord.php +++ b/application/Espo/Repositories/ActionHistoryRecord.php @@ -34,8 +34,4 @@ use Espo\ORM\Entity; class ActionHistoryRecord extends \Espo\Core\Repositories\Database { protected $hooksDisabled = true; - - protected $processFieldsAfterSaveDisabled = true; - - protected $processFieldsAfterRemoveDisabled = true; } diff --git a/application/Espo/Repositories/ArrayValue.php b/application/Espo/Repositories/ArrayValue.php index ec0e6a057b..bd857aacc4 100644 --- a/application/Espo/Repositories/ArrayValue.php +++ b/application/Espo/Repositories/ArrayValue.php @@ -40,11 +40,7 @@ class ArrayValue extends Database { protected $hooksDisabled = true; - protected $processFieldsAfterSaveDisabled = true; - - protected $processFieldsAfterRemoveDisabled = true; - - public function storeEntityAttribute(Entity $entity, string $attribute, bool $populateMode = false) + public function storeEntityAttribute(Entity $entity, string $attribute, bool $populateMode = false): void { if (!$entity->getAttributeType($attribute) === Entity::JSON_ARRAY) { throw new Error("ArrayValue: Can't store non array attribute."); @@ -130,7 +126,7 @@ class ArrayValue extends Database } } - public function deleteEntityAttribute(Entity $entity, string $attribute) + public function deleteEntityAttribute(Entity $entity, string $attribute): void { if (!$entity->id) { throw new Error("ArrayValue: Can't delete {$attribute} w/o id given."); diff --git a/application/Espo/Repositories/AuthFailLogRecord.php b/application/Espo/Repositories/AuthFailLogRecord.php index 28c5faa0d8..07be9d89ee 100644 --- a/application/Espo/Repositories/AuthFailLogRecord.php +++ b/application/Espo/Repositories/AuthFailLogRecord.php @@ -34,8 +34,4 @@ use Espo\ORM\Entity; class AuthFailLogRecord extends \Espo\Core\Repositories\Database { protected $hooksDisabled = true; - - protected $processFieldsAfterSaveDisabled = true; - - protected $processFieldsAfterRemoveDisabled = true; } diff --git a/application/Espo/Repositories/AuthLogRecord.php b/application/Espo/Repositories/AuthLogRecord.php index 127d402572..96822b927f 100644 --- a/application/Espo/Repositories/AuthLogRecord.php +++ b/application/Espo/Repositories/AuthLogRecord.php @@ -34,8 +34,4 @@ use Espo\ORM\Entity; class AuthLogRecord extends \Espo\Core\Repositories\Database { protected $hooksDisabled = true; - - protected $processFieldsAfterSaveDisabled = true; - - protected $processFieldsAfterRemoveDisabled = true; } diff --git a/application/Espo/Repositories/AuthToken.php b/application/Espo/Repositories/AuthToken.php index 66824bcb8c..99c472be22 100644 --- a/application/Espo/Repositories/AuthToken.php +++ b/application/Espo/Repositories/AuthToken.php @@ -34,8 +34,4 @@ use Espo\ORM\Entity; class AuthToken extends \Espo\Core\Repositories\Database { protected $hooksDisabled = true; - - protected $processFieldsAfterSaveDisabled = true; - - protected $processFieldsAfterRemoveDisabled = true; } diff --git a/application/Espo/Repositories/EmailAddress.php b/application/Espo/Repositories/EmailAddress.php index 5a924b369f..65d9f0a670 100644 --- a/application/Espo/Repositories/EmailAddress.php +++ b/application/Espo/Repositories/EmailAddress.php @@ -42,9 +42,7 @@ class EmailAddress extends \Espo\Core\Repositories\Database implements use Di\ApplicationStateSetter; use Di\AclManagerSetter; - protected $processFieldsAfterSaveDisabled = true; - - protected $processFieldsAfterRemoveDisabled = true; + protected $hooksDisabled = true; public function getIdListFormAddressList(array $addressList = []): array { diff --git a/application/Espo/Repositories/Job.php b/application/Espo/Repositories/Job.php index 6641e64f82..4cb34b9e38 100644 --- a/application/Espo/Repositories/Job.php +++ b/application/Espo/Repositories/Job.php @@ -40,10 +40,6 @@ class Job extends \Espo\Core\Repositories\Database implements protected $hooksDisabled = true; - protected $processFieldsAfterSaveDisabled = true; - - protected $processFieldsAfterRemoveDisabled = true; - public function beforeSave(Entity $entity, array $options = []) { if (!$entity->has('executeTime') && $entity->isNew()) { @@ -52,6 +48,7 @@ class Job extends \Espo\Core\Repositories\Database implements if (!$entity->has('attempts') && $entity->isNew()) { $attempts = $this->config->get('jobRerunAttemptNumber', 0); + $entity->set('attempts', $attempts); } } diff --git a/application/Espo/Repositories/NextNumber.php b/application/Espo/Repositories/NextNumber.php index c74c8590ee..be703a1de3 100644 --- a/application/Espo/Repositories/NextNumber.php +++ b/application/Espo/Repositories/NextNumber.php @@ -34,8 +34,4 @@ use Espo\ORM\Entity; class NextNumber extends \Espo\Core\Repositories\Database { protected $hooksDisabled = true; - - protected $processFieldsAfterSaveDisabled = true; - - protected $processFieldsAfterRemoveDisabled = true; } diff --git a/application/Espo/Repositories/PhoneNumber.php b/application/Espo/Repositories/PhoneNumber.php index 13c14fc6f1..7d5913c061 100644 --- a/application/Espo/Repositories/PhoneNumber.php +++ b/application/Espo/Repositories/PhoneNumber.php @@ -45,9 +45,7 @@ class PhoneNumber extends Database implements use Di\ApplicationStateSetter; use Di\AclManagerSetter; - protected $processFieldsAfterSaveDisabled = true; - - protected $processFieldsAfterRemoveDisabled = true; + protected $hooksDisabled = true; const ERASED_PREFIX = 'ERASED:'; diff --git a/application/Espo/Repositories/ScheduledJob.php b/application/Espo/Repositories/ScheduledJob.php index f026314eaa..221f668d48 100644 --- a/application/Espo/Repositories/ScheduledJob.php +++ b/application/Espo/Repositories/ScheduledJob.php @@ -37,10 +37,6 @@ class ScheduledJob extends \Espo\Core\Repositories\Database { protected $hooksDisabled = true; - protected $processFieldsAfterSaveDisabled = true; - - protected $processFieldsAfterRemoveDisabled = true; - protected function afterSave(Entity $entity, array $options = []) { parent::afterSave($entity, $options); diff --git a/application/Espo/Repositories/UniqueId.php b/application/Espo/Repositories/UniqueId.php index 8f05f3e0aa..cbf97e5d0e 100644 --- a/application/Espo/Repositories/UniqueId.php +++ b/application/Espo/Repositories/UniqueId.php @@ -37,14 +37,12 @@ class UniqueId extends \Espo\Core\Repositories\Database { protected $hooksDisabled = true; - protected $processFieldsAfterSaveDisabled = true; - - protected $processFieldsAfterRemoveDisabled = true; - - public function getNew() : ?Entity + public function getNew(): ?Entity { $entity = parent::getNew(); + $entity->set('name', Util::generateMoreEntropyId()); + return $entity; } } diff --git a/application/Espo/Repositories/Webhook.php b/application/Espo/Repositories/Webhook.php index b51fa27bf9..61c294d2a8 100644 --- a/application/Espo/Repositories/Webhook.php +++ b/application/Espo/Repositories/Webhook.php @@ -37,34 +37,39 @@ class Webhook extends \Espo\Core\Repositories\Database { protected $hooksDisabled = true; - protected $processFieldsAfterSaveDisabled = true; - - protected $processFieldsAfterRemoveDisabled = true; - protected function beforeSave(Entity $entity, array $options = []) { if ($entity->isNew()) { $this->fillSecretKey($entity); } + parent::beforeSave($entity); + $this->processSettingAdditionalFields($entity); } - protected function fillSecretKey(Entity $entity) + protected function fillSecretKey(Entity $entity): void { $secretKey = Util::generateSecretKey(); + $entity->set('secretKey', $secretKey); } - protected function processSettingAdditionalFields(Entity $entity) + protected function processSettingAdditionalFields(Entity $entity): void { $event = $entity->get('event'); - if (!$event) return; + if (!$event) { + return; + } $arr = explode('.', $event); - if (count($arr) !== 2 && count($arr) !== 3) return; + + if (count($arr) !== 2 && count($arr) !== 3) { + return; + } $arr = explode('.', $event); + $entityType = $arr[0]; $type = $arr[1]; @@ -73,14 +78,18 @@ class Webhook extends \Espo\Core\Repositories\Database $field = null; - if (!$entityType) return; + if (!$entityType) { + return; + } if ($type === 'fieldUpdate') { if (count($arr) == 3) { $field = $arr[2]; } + $entity->set('field', $field); - } else { + } + else { $entity->set('field', null); } }