Fix a bug where non-super user roles cannot check ownership on objects
authorGuillaume (ioguix) de Rorthais <ioguix@free.fr>
Tue, 30 Nov 2010 15:10:04 +0000 (16:10 +0100)
committerGuillaume (ioguix) de Rorthais <ioguix@free.fr>
Tue, 30 Nov 2010 15:10:04 +0000 (16:10 +0100)
We were joining on pg_authid which is not accessible to non super-user roles

classes/database/Postgres.php

index 80167f64d9bd19775a726be87a0797aa7950e6ac..9f1e916fcd226b8a4bd7b183a4eda019b9204634 100755 (executable)
@@ -864,7 +864,7 @@ class Postgres extends ADODB_base {
                        SELECT pn.nspname, pu.rolname AS nspowner,
                                pg_catalog.obj_description(pn.oid, 'pg_namespace') AS nspcomment
                        FROM pg_catalog.pg_namespace pn
-                               LEFT JOIN pg_catalog.pg_authid pu ON (pn.nspowner = pu.oid)
+                               LEFT JOIN pg_catalog.pg_roles pu ON (pn.nspowner = pu.oid)
                        {$where}
                        ORDER BY nspname";
 
@@ -881,8 +881,8 @@ class Postgres extends ADODB_base {
                $sql = "
                        SELECT nspname, nspowner, r.rolname AS ownername, nspacl,
                                pg_catalog.obj_description(pn.oid, 'pg_namespace') as nspcomment
-            FROM pg_catalog.pg_namespace pn
-               LEFT JOIN pg_authid as r ON pn.nspowner = r.oid
+                       FROM pg_catalog.pg_namespace pn
+                               LEFT JOIN pg_roles as r ON pn.nspowner = r.oid
                        WHERE nspname='{$schema}'";
                return $this->selectSet($sql);
        }