|
53 | 53 | default: { |
54 | 54 | # default is 'present' |
55 | 55 | $sql_command = 'GRANT %s ON %s "%s%s" TO "%s"' |
| 56 | + $sql_command_public = 'GRANT %s ON %s "%s%s" TO PUBLIC' |
56 | 57 | $sql_command_unquoted = 'GRANT %s ON %s %s%s TO "%s"' |
| 58 | + $sql_command_unquoted_public = 'GRANT %s ON %s %s%s TO PUBLIC' |
57 | 59 | $unless_is = true |
58 | 60 | } |
59 | 61 | 'absent': { |
60 | 62 | $sql_command = 'REVOKE %s ON %s "%s%s" FROM "%s"' |
| 63 | + $sql_command_public = 'REVOKE %s ON %s "%s%s" FROM PUBLIC' |
61 | 64 | $sql_command_unquoted = 'REVOKE %s ON %s %s%s FROM "%s"' |
| 65 | + $sql_command_unquoted_public = 'REVOKE %s ON %s %s%s FROM PUBLIC' |
62 | 66 | $unless_is = false |
63 | 67 | } |
64 | 68 | } |
|
452 | 456 | default => undef, |
453 | 457 | } |
454 | 458 |
|
455 | | - $grant_cmd = $_enquote_object ? { |
456 | | - false => sprintf($sql_command_unquoted, $_privilege, $_object_type, $_togrant_object, $arguments, $role), |
457 | | - default => sprintf($sql_command, $_privilege, $_object_type, $_togrant_object, $arguments, $role), |
| 459 | + case $role { |
| 460 | + default: { |
| 461 | + $grant_cmd = $_enquote_object ? { |
| 462 | + false => sprintf($sql_command_unquoted, $_privilege, $_object_type, $_togrant_object, $arguments, $role), |
| 463 | + default => sprintf($sql_command, $_privilege, $_object_type, $_togrant_object, $arguments, $role), |
| 464 | + } |
| 465 | + } |
| 466 | + 'PUBLIC': { |
| 467 | + # For internal PUBLIC role, we do not want to quote it |
| 468 | + $grant_cmd = $_enquote_object ? { |
| 469 | + false => sprintf($sql_command_unquoted_public, $_privilege, $_object_type, $_togrant_object, $arguments, $role), |
| 470 | + default => sprintf($sql_command_public, $_privilege, $_object_type, $_togrant_object, $arguments, $role), |
| 471 | + } |
| 472 | + } |
458 | 473 | } |
459 | 474 |
|
460 | 475 | postgresql_psql { "grant:${name}": |
|
0 commit comments