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

Function ConsolidatePrivilegesForRole

pg_documentdb/src/utils/role_utils.c:356–474  ·  view source on GitHub ↗

* Consolidates privileges for a given role name into the provided list. * Ignores unknown roles silently. */

Source from the content-addressed store, hash-verified

354 * Ignores unknown roles silently.
355 */
356static void
357ConsolidatePrivilegesForRole(const char *roleName, List **consolidatedPrivileges)
358{
359 if (roleName == NULL || consolidatedPrivileges == NULL)
360 {
361 return;
362 }
363
364 size_t sourcePrivilegeCount;
365
366 if (strcmp(roleName, ApiReadOnlyRole) == 0)
367 {
368 sourcePrivilegeCount = sizeof(readOnlyPrivileges) / sizeof(readOnlyPrivileges[0]);
369 ConsolidatePrivileges(consolidatedPrivileges, readOnlyPrivileges,
370 sourcePrivilegeCount);
371 }
372 else if (strcmp(roleName, ApiReadWriteRole) == 0)
373 {
374 sourcePrivilegeCount = sizeof(readWritePrivileges) /
375 sizeof(readWritePrivileges[0]);
376 ConsolidatePrivileges(consolidatedPrivileges, readWritePrivileges,
377 sourcePrivilegeCount);
378 }
379 else if (strcmp(roleName, ApiAdminRoleV2) == 0)
380 {
381 sourcePrivilegeCount = sizeof(readWritePrivileges) /
382 sizeof(readWritePrivileges[0]);
383 ConsolidatePrivileges(consolidatedPrivileges, readWritePrivileges,
384 sourcePrivilegeCount);
385
386 sourcePrivilegeCount = sizeof(clusterManagerPrivileges) /
387 sizeof(clusterManagerPrivileges[0]);
388 ConsolidatePrivileges(consolidatedPrivileges, clusterManagerPrivileges,
389 sourcePrivilegeCount);
390
391 sourcePrivilegeCount = sizeof(clusterMonitorPrivileges) /
392 sizeof(clusterMonitorPrivileges[0]);
393 ConsolidatePrivileges(consolidatedPrivileges, clusterMonitorPrivileges,
394 sourcePrivilegeCount);
395
396 sourcePrivilegeCount = sizeof(hostManagerPrivileges) /
397 sizeof(hostManagerPrivileges[0]);
398 ConsolidatePrivileges(consolidatedPrivileges, hostManagerPrivileges,
399 sourcePrivilegeCount);
400
401 sourcePrivilegeCount = sizeof(dropDatabasePrivileges) /
402 sizeof(dropDatabasePrivileges[0]);
403 ConsolidatePrivileges(consolidatedPrivileges, dropDatabasePrivileges,
404 sourcePrivilegeCount);
405 }
406 else if (strcmp(roleName, ApiClusterAdminRole) == 0)
407 {
408 sourcePrivilegeCount = sizeof(clusterManagerPrivileges) /
409 sizeof(clusterManagerPrivileges[0]);
410 ConsolidatePrivileges(consolidatedPrivileges, clusterManagerPrivileges,
411 sourcePrivilegeCount);
412
413 sourcePrivilegeCount = sizeof(clusterMonitorPrivileges) /

Callers 2

WritePrivilegesFunction · 0.85

Calls 1

ConsolidatePrivilegesFunction · 0.85

Tested by

no test coverage detected