bcquality/microsoft/knowledge/security/protect-sensitive-data-in-temporary-tables.bad.al
Jesper Schulz-Wedde bfda67a95a
Promote security knowledge from community to Microsoft layer (#49)
* Promote security knowledge from community to Microsoft layer

Pure git-mv relocation of the SECURITY domain from the community layer to the Microsoft layer. No content changes.

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

* Address review feedback on security knowledge promotion

- do-not-grant-rights-beyond-a-users-entitlement.md: drop the See sample
  reference to a .good.al file that does not exist
- Remove the 'Contributions welcome' boilerplate line from
  compose-permission-sets, prefer-oauth2, and protect-sensitive-data
- protect-sensitive-data-in-temporary-tables: remove the pointless
  DeleteAll on the locally scoped temp buffer in the good sample and
  reword Best Practice to note local buffers are cleaned up automatically
- Drop guard-bulk-operations-with-istemporary from the promotion; it
  stays in the community layer pending a decision on whether it is security

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

* Remove Contributions welcome boilerplate from do-not-grant article for consistency

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

---------

Co-authored-by: Jesper Schulz-Wedde <jesper.schulzwedde@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-07-14 11:23:57 +02:00

27 lines
824 B
AL

codeunit 50100 "Customer Temp Processor"
{
// Global temporary buffer - survives across procedure calls, carries values
// to unrelated callers that may have no right to see them.
var
GlobalTempCustomer: Record Customer temporary;
procedure LoadCustomersForExport(FilterText: Text)
var
Customer: Record Customer;
begin
// No ReadPermission check before populating.
Customer.SetFilter("No.", FilterText);
if Customer.FindSet() then
repeat
GlobalTempCustomer := Customer;
GlobalTempCustomer.Insert();
until Customer.Next() = 0;
ExportBuffer();
// No DeleteAll. Data remains in the global for the lifetime of the codeunit.
end;
local procedure ExportBuffer()
begin
end;
}