From fff9d7a7815b81b70133e6bd97f47b8f03ebd2dd Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Fri, 23 Aug 2024 11:47:38 +0300 Subject: [PATCH] group email account is system read only field --- .../InboundEmail/IsSystemLoader.php | 27 +++++++++++++++++++ .../Resources/i18n/en_US/InboundEmail.json | 4 ++- .../layouts/InboundEmail/detail.json | 4 +++ .../metadata/entityDefs/InboundEmail.json | 7 +++++ .../metadata/recordDefs/InboundEmail.json | 3 +++ 5 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 application/Espo/Classes/FieldProcessing/InboundEmail/IsSystemLoader.php diff --git a/application/Espo/Classes/FieldProcessing/InboundEmail/IsSystemLoader.php b/application/Espo/Classes/FieldProcessing/InboundEmail/IsSystemLoader.php new file mode 100644 index 0000000000..fa440d563f --- /dev/null +++ b/application/Espo/Classes/FieldProcessing/InboundEmail/IsSystemLoader.php @@ -0,0 +1,27 @@ + + */ +class IsSystemLoader implements Loader +{ + public function __construct( + private Config $config, + ) {} + + public function process(Entity $entity, Params $params): void + { + $isSystem = $entity->getEmailAddress() === $this->config->get('outboundEmailFromAddress'); + + $entity->set('isSystem', $isSystem); + } +} diff --git a/application/Espo/Resources/i18n/en_US/InboundEmail.json b/application/Espo/Resources/i18n/en_US/InboundEmail.json index a20a9a4359..8ace0a9e70 100644 --- a/application/Espo/Resources/i18n/en_US/InboundEmail.json +++ b/application/Espo/Resources/i18n/en_US/InboundEmail.json @@ -40,9 +40,11 @@ "fromName": "From Name", "smtpIsShared": "SMTP Is Shared", "smtpIsForMassEmail": "SMTP Is for Mass Email", - "groupEmailFolder": "Group Email Folder" + "groupEmailFolder": "Group Email Folder", + "isSystem": "Is System" }, "tooltips": { + "isSystem": "Is the system email account.", "useSmtp": "The ability to send emails.", "reply": "Notify email senders that their emails has been received.\n\n Only one email will be sent to a particular recipient during some period of time to prevent looping.", "createCase": "Automatically create case from incoming emails.", diff --git a/application/Espo/Resources/layouts/InboundEmail/detail.json b/application/Espo/Resources/layouts/InboundEmail/detail.json index eba679980f..ef704eddfe 100644 --- a/application/Espo/Resources/layouts/InboundEmail/detail.json +++ b/application/Espo/Resources/layouts/InboundEmail/detail.json @@ -16,6 +16,10 @@ [ {"name":"addAllTeamUsers"}, {"name": "excludeFromReply"} + ], + [ + {"name":"isSystem"}, + false ] ], "tabBreak": true, diff --git a/application/Espo/Resources/metadata/entityDefs/InboundEmail.json b/application/Espo/Resources/metadata/entityDefs/InboundEmail.json index be6ce3a8bf..130df7fdc4 100644 --- a/application/Espo/Resources/metadata/entityDefs/InboundEmail.json +++ b/application/Espo/Resources/metadata/entityDefs/InboundEmail.json @@ -73,6 +73,13 @@ "tooltip": true, "default": true }, + "isSystem": { + "type": "bool", + "notStorable": true, + "readOnly": true, + "directAccessDisabled": true, + "tooltip": true + }, "sentFolder": { "type": "varchar", "view": "views/inbound-email/fields/folder", diff --git a/application/Espo/Resources/metadata/recordDefs/InboundEmail.json b/application/Espo/Resources/metadata/recordDefs/InboundEmail.json index 2b32c826b5..4dc70fe109 100644 --- a/application/Espo/Resources/metadata/recordDefs/InboundEmail.json +++ b/application/Espo/Resources/metadata/recordDefs/InboundEmail.json @@ -12,5 +12,8 @@ ], "updateInputFilterClassNameList": [ "Espo\\Classes\\Record\\InboundEmail\\PasswordsInputFilter" + ], + "readLoaderClassNameList": [ + "Espo\\Classes\\FieldProcessing\\InboundEmail\\IsSystemLoader" ] }