* Consolidates privileges for a given role name into the provided list. * Ignores unknown roles silently. */
| 354 | * Ignores unknown roles silently. |
| 355 | */ |
| 356 | static void |
| 357 | ConsolidatePrivilegesForRole(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) / |
no test coverage detected