From fa82b96bf8631d8fdef9aead7ec39659be00fb9c Mon Sep 17 00:00:00 2001 From: Tymon Mikula <94898434+Kimi310@users.noreply.github.com> Date: Wed, 9 Sep 2026 11:37:17 +0000 Subject: [PATCH] Chat v2 privacy notice behavior changed to not auto agree for Eval companies (#11204) Fixes: [AB#649164](https://dynamicssmb2.visualstudio.com/1fcb79e7-ab07-432a-a3c6-6cf5a88ba4a5/_workitems/edit/649164) Description: Turning the skip the check for eval companies to false for copilot chat privacy notice essentially changing the default behavior of Eval company to the current behavior of non-Eval company. --- .../App/AI/src/Copilot/CopilotCapabilityImpl.Codeunit.al | 8 ++++++-- .../App/AI/src/Copilot/CopilotSettings.Table.al | 8 ++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/System Application/App/AI/src/Copilot/CopilotCapabilityImpl.Codeunit.al b/src/System Application/App/AI/src/Copilot/CopilotCapabilityImpl.Codeunit.al index 5949d5b2a37..2097bbd6de8 100644 --- a/src/System Application/App/AI/src/Copilot/CopilotCapabilityImpl.Codeunit.al +++ b/src/System Application/App/AI/src/Copilot/CopilotCapabilityImpl.Codeunit.al @@ -217,8 +217,10 @@ codeunit 7774 "Copilot Capability Impl" var CopilotCapabilityCU: Codeunit "Copilot Capability"; PrivacyNotice: Codeunit "Privacy Notice"; + SystemPrivacyNoticeReg: Codeunit "System Privacy Notice Reg."; RequiredPrivacyNotices: List of [Code[50]]; RequiredPrivacyNotice: Code[50]; + SkipCheckInEval: Boolean; begin CopilotSettings.ReadIsolation(IsolationLevel::ReadCommitted); CopilotSettings.SetLoadFields(Status); @@ -231,9 +233,11 @@ codeunit 7774 "Copilot Capability Impl" exit(CopilotSettings.Status = Enum::"Copilot Status"::Active); // check privacy notices - foreach RequiredPrivacyNotice in RequiredPrivacyNotices do - if (PrivacyNotice.GetPrivacyNoticeApprovalState(RequiredPrivacyNotice, true) <> Enum::"Privacy Notice Approval State"::Agreed) then + foreach RequiredPrivacyNotice in RequiredPrivacyNotices do begin + SkipCheckInEval := RequiredPrivacyNotice <> SystemPrivacyNoticeReg.GetMicrosoftCopilotID(); + if PrivacyNotice.GetPrivacyNoticeApprovalState(RequiredPrivacyNotice, SkipCheckInEval) <> Enum::"Privacy Notice Approval State"::Agreed then exit(false); + end; exit(true); end; diff --git a/src/System Application/App/AI/src/Copilot/CopilotSettings.Table.al b/src/System Application/App/AI/src/Copilot/CopilotSettings.Table.al index cba04def437..dc498d47ca5 100644 --- a/src/System Application/App/AI/src/Copilot/CopilotSettings.Table.al +++ b/src/System Application/App/AI/src/Copilot/CopilotSettings.Table.al @@ -101,17 +101,21 @@ table 7775 "Copilot Settings" var CopilotCapability: Codeunit "Copilot Capability"; PrivacyNotice: Codeunit "Privacy Notice"; + SystemPrivacyNoticeReg: Codeunit "System Privacy Notice Reg."; RequiredPrivacyNotices: List of [Code[50]]; RequiredPrivacyNotice: Code[50]; + SkipCheckInEval: Boolean; begin CopilotCapability.OnGetRequiredPrivacyNotices(Rec.Capability, Rec."App Id", RequiredPrivacyNotices); if RequiredPrivacyNotices.Count() <= 0 then exit(true); - foreach RequiredPrivacyNotice in RequiredPrivacyNotices do - if not PrivacyNotice.ConfirmPrivacyNoticeApproval(RequiredPrivacyNotice, true) then + foreach RequiredPrivacyNotice in RequiredPrivacyNotices do begin + SkipCheckInEval := RequiredPrivacyNotice <> SystemPrivacyNoticeReg.GetMicrosoftCopilotID(); + if not PrivacyNotice.ConfirmPrivacyNoticeApproval(RequiredPrivacyNotice, SkipCheckInEval) then exit(false); + end; exit(true); end;