diff options
author | Peter Eisentraut <peter_e@gmx.net> | 2002-02-18 23:11:58 +0000 |
---|---|---|
committer | Peter Eisentraut <peter_e@gmx.net> | 2002-02-18 23:11:58 +0000 |
commit | 8adf56f77aa0cc8cf4af7a19f0d235fc56fbabc7 (patch) | |
tree | cab3054a1a1fba1fe1722bb75a1fc3c06eda964d /src/backend/utils/adt/acl.c | |
parent | 5e035031265aef8608fd32a31897240a3aff3d8d (diff) | |
download | postgresql-8adf56f77aa0cc8cf4af7a19f0d235fc56fbabc7.tar.gz postgresql-8adf56f77aa0cc8cf4af7a19f0d235fc56fbabc7.zip |
Privileges on functions and procedural languages
Diffstat (limited to 'src/backend/utils/adt/acl.c')
-rw-r--r-- | src/backend/utils/adt/acl.c | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/src/backend/utils/adt/acl.c b/src/backend/utils/adt/acl.c index a868c6c1c05..ef6ebba7fa7 100644 --- a/src/backend/utils/adt/acl.c +++ b/src/backend/utils/adt/acl.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/adt/acl.c,v 1.66 2001/11/16 23:30:35 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/acl.c,v 1.67 2002/02/18 23:11:22 petere Exp $ * *------------------------------------------------------------------------- */ @@ -373,7 +373,7 @@ aclitemgt(const AclItem *a1, const AclItem *a2) * newly-created tables (or any table with a NULL acl entry in pg_class) */ Acl * -acldefault(const char *relname, AclId ownerid) +acldefault(AclId ownerid) { Acl *acl; AclItem *aip; @@ -381,16 +381,18 @@ acldefault(const char *relname, AclId ownerid) #define ACL_WORLD_DEFAULT (ACL_NO) #define ACL_OWNER_DEFAULT (ACL_INSERT|ACL_SELECT|ACL_UPDATE|ACL_DELETE|ACL_RULE|ACL_REFERENCES|ACL_TRIGGER) - acl = makeacl(2); + acl = makeacl(ownerid ? 2 : 1); aip = ACL_DAT(acl); aip[0].ai_idtype = ACL_IDTYPE_WORLD; aip[0].ai_id = ACL_ID_WORLD; - aip[0].ai_mode = (IsSystemRelationName(relname) && - !IsToastRelationName(relname)) ? ACL_SELECT - : ACL_WORLD_DEFAULT; - aip[1].ai_idtype = ACL_IDTYPE_UID; - aip[1].ai_id = ownerid; - aip[1].ai_mode = ACL_OWNER_DEFAULT; + aip[0].ai_mode = ACL_WORLD_DEFAULT; + /* FIXME: The owner's default should vary with the object type. */ + if (ownerid) + { + aip[1].ai_idtype = ACL_IDTYPE_UID; + aip[1].ai_id = ownerid; + aip[1].ai_mode = ACL_OWNER_DEFAULT; + } return acl; } |