mirror of
https://github.com/postgres/postgres.git
synced 2025-06-30 21:42:05 +03:00
Fix bug in reading acls (didn't treat null acl as meaning the table owner had
full privs), also updated the regression test for this case. Modified Files: jdbc/org/postgresql/jdbc1/AbstractJdbc1DatabaseMetaData.java jdbc/org/postgresql/test/jdbc2/DatabaseMetaDataTest.java
This commit is contained in:
@ -2466,7 +2466,7 @@ public abstract class AbstractJdbc1DatabaseMetaData
|
||||
byte column[] = rs.getBytes("attname");
|
||||
String owner = rs.getString("usename");
|
||||
String acl = rs.getString("relacl");
|
||||
Hashtable permissions = parseACL(acl);
|
||||
Hashtable permissions = parseACL(acl, owner);
|
||||
String permNames[] = new String[permissions.size()];
|
||||
Enumeration e = permissions.keys();
|
||||
int i=0;
|
||||
@ -2569,7 +2569,7 @@ public abstract class AbstractJdbc1DatabaseMetaData
|
||||
byte table[] = rs.getBytes("relname");
|
||||
String owner = rs.getString("usename");
|
||||
String acl = rs.getString("relacl");
|
||||
Hashtable permissions = parseACL(acl);
|
||||
Hashtable permissions = parseACL(acl, owner);
|
||||
String permNames[] = new String[permissions.size()];
|
||||
Enumeration e = permissions.keys();
|
||||
int i=0;
|
||||
@ -2693,7 +2693,11 @@ public abstract class AbstractJdbc1DatabaseMetaData
|
||||
* a Hashtable mapping the SQL permission name to a Vector of
|
||||
* usernames who have that permission.
|
||||
*/
|
||||
protected Hashtable parseACL(String aclArray) {
|
||||
protected Hashtable parseACL(String aclArray, String owner) {
|
||||
if (aclArray == null || aclArray == "") {
|
||||
//null acl is a shortcut for owner having full privs
|
||||
aclArray = "{" + owner + "=arwdRxt}";
|
||||
}
|
||||
Vector acls = parseACLArray(aclArray);
|
||||
Hashtable privileges = new Hashtable();
|
||||
for (int i=0; i<acls.size(); i++) {
|
||||
|
Reference in New Issue
Block a user