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;