MCPcopy Create free account
hub / github.com/documentdb/documentdb / WriteSingleUserDocument

Function WriteSingleUserDocument

pg_documentdb/src/commands/users.c:1370–1409  ·  view source on GitHub ↗

* WriteSingleUserDocument creates and writes a BSON document for a single user * to the provided array writer. */

Source from the content-addressed store, hash-verified

1368 * to the provided array writer.
1369 */
1370static void
1371WriteSingleUserDocument(UserRoleHashEntry *userEntry, bool showPrivileges,
1372 pgbson_array_writer *userArrayWriter)
1373{
1374 pgbson_writer userWriter;
1375 PgbsonWriterInit(&userWriter);
1376
1377 PgbsonWriterAppendUtf8(&userWriter, "_id", 3, psprintf(
1378 "admin.%s",
1379 userEntry->user));
1380 PgbsonWriterAppendUtf8(&userWriter, "userId", 6,
1381 psprintf("admin.%s", userEntry->user));
1382 PgbsonWriterAppendUtf8(&userWriter, "user", 4, userEntry->user);
1383 PgbsonWriterAppendUtf8(&userWriter, "db", 2, "admin");
1384
1385 pgbson_array_writer roleArrayWriter;
1386 PgbsonWriterStartArray(&userWriter, "roles", 5,
1387 &roleArrayWriter);
1388 WriteMultipleRoles(userEntry->roles, &roleArrayWriter);
1389 PgbsonWriterEndArray(&userWriter, &roleArrayWriter);
1390
1391 if (EnableUsersInfoPrivileges && showPrivileges && userEntry->roles != NULL)
1392 {
1393 pgbson_array_writer privilegesArrayWriter;
1394 PgbsonWriterStartArray(&userWriter, "inheritedPrivileges", 19,
1395 &privilegesArrayWriter);
1396 WriteMultipleRolePrivileges(userEntry->roles, &privilegesArrayWriter);
1397 PgbsonWriterEndArray(&userWriter, &privilegesArrayWriter);
1398 }
1399
1400 if (userEntry->isExternal)
1401 {
1402 PgbsonWriterAppendDocument(&userWriter, "customData", 10,
1403 GetUserInfoFromExternalIdentityProvider(
1404 userEntry->user));
1405 }
1406
1407 PgbsonArrayWriterWriteDocument(userArrayWriter, PgbsonWriterGetPgbson(
1408 &userWriter));
1409}
1410
1411
1412/*

Callers 1

Calls 10

PgbsonWriterInitFunction · 0.85
PgbsonWriterAppendUtf8Function · 0.85
PgbsonWriterStartArrayFunction · 0.85
WriteMultipleRolesFunction · 0.85
PgbsonWriterEndArrayFunction · 0.85
PgbsonWriterGetPgbsonFunction · 0.85

Tested by

no test coverage detected