Harden log export CSV and fix profile loader boundary

Load SCIM profile emails via Identities in the export
layer, drop the cross-table join, sanitize formula-leading
cells, and fall back to validated userName when profile email
is missing. Drop redundant gid array casts in LoadByIDs.

Signed-off-by: Cursor Agent <cursoragent@cursor.com>

Co-authored-by: Bryan FRIMIN <bryan@frimin.fr>
This commit is contained in:
Cursor Agent
2026-07-29 22:04:35 +00:00
parent 45a7a428bf
commit c5b1f210d5
5 changed files with 83 additions and 11 deletions

View File

@@ -32,3 +32,21 @@ func TestUniqueNonEmptyStrings(t *testing.T) {
got := uniqueNonEmptyStrings([]string{"a", "A", "", "b", "a"})
assert.Equal(t, []string{"a", "b"}, got)
}
func TestCsvSafeCell(t *testing.T) {
t.Parallel()
assert.Equal(t, "plain", csvSafeCell("plain"))
assert.Equal(t, "'=1+1", csvSafeCell("=1+1"))
assert.Equal(t, "'+cmd", csvSafeCell("+cmd"))
assert.Equal(t, "'-2", csvSafeCell("-2"))
assert.Equal(t, "'@sum", csvSafeCell("@sum"))
}
func TestScimEmailFromUserName(t *testing.T) {
t.Parallel()
assert.Equal(t, "user@example.com", scimEmailFromUserName("user@example.com"))
assert.Equal(t, "", scimEmailFromUserName("not-an-email"))
assert.Equal(t, "", scimEmailFromUserName(""))
}