Skip to content

Commit 8b9e964

Browse files
committed
Replace AclObjectKind with ObjectType
AclObjectKind was basically just another enumeration for object types, and we already have a preferred one for that. It's only used in aclcheck_error. By using ObjectType instead, we can also give some more precise error messages, for example "index" instead of "relation". Reviewed-by: Michael Paquier <michael.paquier@gmail.com>
1 parent 2c6f37e commit 8b9e964

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

65 files changed

+742
-550
lines changed

contrib/dblink/dblink.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2504,7 +2504,7 @@ get_rel_from_relname(text *relname_text, LOCKMODE lockmode, AclMode aclmode)
25042504
aclresult = pg_class_aclcheck(RelationGetRelid(rel), GetUserId(),
25052505
aclmode);
25062506
if (aclresult != ACLCHECK_OK)
2507-
aclcheck_error(aclresult, ACL_KIND_CLASS,
2507+
aclcheck_error(aclresult, get_relkind_objtype(rel->rd_rel->relkind),
25082508
RelationGetRelationName(rel));
25092509

25102510
return rel;
@@ -2789,7 +2789,7 @@ get_connect_string(const char *servername)
27892789
/* Check permissions, user must have usage on the server. */
27902790
aclresult = pg_foreign_server_aclcheck(serverid, userid, ACL_USAGE);
27912791
if (aclresult != ACLCHECK_OK)
2792-
aclcheck_error(aclresult, ACL_KIND_FOREIGN_SERVER, foreign_server->servername);
2792+
aclcheck_error(aclresult, OBJECT_FOREIGN_SERVER, foreign_server->servername);
27932793

27942794
foreach(cell, fdw->options)
27952795
{

contrib/file_fdw/output/file_fdw.source

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -393,7 +393,7 @@ SELECT * FROM agg_text ORDER BY a;
393393

394394
SET ROLE regress_no_priv_user;
395395
SELECT * FROM agg_text ORDER BY a; -- ERROR
396-
ERROR: permission denied for relation agg_text
396+
ERROR: permission denied for foreign table agg_text
397397
SET ROLE regress_file_fdw_user;
398398
\t on
399399
EXPLAIN (VERBOSE, COSTS FALSE) SELECT * FROM agg_text WHERE a > 0;

contrib/pg_prewarm/pg_prewarm.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ pg_prewarm(PG_FUNCTION_ARGS)
107107
rel = relation_open(relOid, AccessShareLock);
108108
aclresult = pg_class_aclcheck(relOid, GetUserId(), ACL_SELECT);
109109
if (aclresult != ACLCHECK_OK)
110-
aclcheck_error(aclresult, ACL_KIND_CLASS, get_rel_name(relOid));
110+
aclcheck_error(aclresult, get_relkind_objtype(rel->rd_rel->relkind), get_rel_name(relOid));
111111

112112
/* Check that the fork exists. */
113113
RelationOpenSmgr(rel);

contrib/pgrowlocks/pgrowlocks.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ pgrowlocks(PG_FUNCTION_ARGS)
121121
aclresult = is_member_of_role(GetUserId(), DEFAULT_ROLE_STAT_SCAN_TABLES) ? ACLCHECK_OK : ACLCHECK_NO_PRIV;
122122

123123
if (aclresult != ACLCHECK_OK)
124-
aclcheck_error(aclresult, ACL_KIND_CLASS,
124+
aclcheck_error(aclresult, get_relkind_objtype(rel->rd_rel->relkind),
125125
RelationGetRelationName(rel));
126126

127127
scan = heap_beginscan(rel, GetActiveSnapshot(), 0, NULL);

contrib/test_decoding/expected/permissions.out

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot', 'test_d
3838
(1 row)
3939

4040
INSERT INTO lr_test VALUES('lr_superuser_init');
41-
ERROR: permission denied for relation lr_test
41+
ERROR: permission denied for table lr_test
4242
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
4343
data
4444
------
@@ -56,7 +56,7 @@ SET ROLE regress_lr_normal;
5656
SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot', 'test_decoding');
5757
ERROR: must be superuser or replication role to use replication slots
5858
INSERT INTO lr_test VALUES('lr_superuser_init');
59-
ERROR: permission denied for relation lr_test
59+
ERROR: permission denied for table lr_test
6060
SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
6161
ERROR: must be superuser or replication role to use replication slots
6262
SELECT pg_drop_replication_slot('regression_slot');

src/backend/access/brin/brin.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -894,7 +894,7 @@ brin_summarize_range(PG_FUNCTION_ARGS)
894894

895895
/* User must own the index (comparable to privileges needed for VACUUM) */
896896
if (!pg_class_ownercheck(indexoid, GetUserId()))
897-
aclcheck_error(ACLCHECK_NOT_OWNER, ACL_KIND_CLASS,
897+
aclcheck_error(ACLCHECK_NOT_OWNER, OBJECT_INDEX,
898898
RelationGetRelationName(indexRel));
899899

900900
/*
@@ -965,7 +965,7 @@ brin_desummarize_range(PG_FUNCTION_ARGS)
965965

966966
/* User must own the index (comparable to privileges needed for VACUUM) */
967967
if (!pg_class_ownercheck(indexoid, GetUserId()))
968-
aclcheck_error(ACLCHECK_NOT_OWNER, ACL_KIND_CLASS,
968+
aclcheck_error(ACLCHECK_NOT_OWNER, OBJECT_INDEX,
969969
RelationGetRelationName(indexRel));
970970

971971
/*

src/backend/access/gin/ginfast.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1035,7 +1035,7 @@ gin_clean_pending_list(PG_FUNCTION_ARGS)
10351035

10361036
/* User must own the index (comparable to privileges needed for VACUUM) */
10371037
if (!pg_class_ownercheck(indexoid, GetUserId()))
1038-
aclcheck_error(ACLCHECK_NOT_OWNER, ACL_KIND_CLASS,
1038+
aclcheck_error(ACLCHECK_NOT_OWNER, OBJECT_INDEX,
10391039
RelationGetRelationName(indexRel));
10401040

10411041
memset(&stats, 0, sizeof(stats));

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy