Correct security and privacy guidance

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 9c2eebc4-dcd5-4b85-8113-90772d818900
This commit is contained in:
Jesper Schulz-Wedde 2026-07-14 10:45:42 +02:00
parent 7a678d1aff
commit ec8f891954
34 changed files with 189 additions and 150 deletions

View file

@ -1,22 +1,35 @@
codeunit 50216 "Privacy Sample Consent Good"
{
var
ExternalSyncNoticeIdLbl: Label 'CONTOSO-EXTERNAL-SYNC', Locked = true;
ExternalSyncNameLbl: Label 'Contoso External Sync', Locked = true;
PrivacyTermsUrlLbl: Label 'https://contoso.example/privacy', Locked = true;
internal procedure RegisterPrivacyNotice()
var
PrivacyNotice: Codeunit "Privacy Notice";
begin
PrivacyNotice.CreatePrivacyNotice(
ExternalSyncNoticeIdLbl, ExternalSyncNameLbl, PrivacyTermsUrlLbl);
end;
procedure SendDataToExternalService(Customer: Record Customer)
var
PrivacyNotice: Codeunit "Privacy Notice";
PrivacyNoticeRegistrations: Codeunit "Privacy Notice Registrations";
HttpClient: HttpClient;
Content: HttpContent;
Payload: JsonObject;
PayloadText: Text;
Response: HttpResponseMessage;
PrivacyConsentRequiredErr: Label 'Privacy notice consent is required for this integration.';
begin
if PrivacyNotice.GetPrivacyNoticeApprovalState(
PrivacyNoticeRegistrations.GetExchangePrivacyNoticeId())
<> "Privacy Notice Approval State"::Agreed
then
if not PrivacyNotice.ConfirmPrivacyNoticeApproval(ExternalSyncNoticeIdLbl) then
Error(PrivacyConsentRequiredErr);
Content.WriteFrom(StrSubstNo('{"email":"%1","name":"%2"}',
Customer."E-Mail", Customer.Name));
Payload.Add('email', Customer."E-Mail");
Payload.Add('name', Customer.Name);
Payload.WriteTo(PayloadText);
Content.WriteFrom(PayloadText);
HttpClient.Post('https://api.externalservice.com/sync', Content, Response);
end;
}