diff options
author | Guillaume (ioguix) de Rorthais | 2009-10-26 01:22:46 +0000 |
---|---|---|
committer | Guillaume (ioguix) de Rorthais | 2009-10-26 01:22:46 +0000 |
commit | ee9b7827d16c3b006dc48e206122bf7d8c01fcdd (patch) | |
tree | 9017835a1a4654d2fa9f28a3549a5fc7ab2b707d /classes | |
parent | 71018e3c0668e50bc8dabdf3bb6338865d31e1f5 (diff) |
Fix bug in privilege when setting ALL on a column
Diffstat (limited to 'classes')
-rwxr-xr-x | classes/database/Postgres.php | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/classes/database/Postgres.php b/classes/database/Postgres.php index 46a8e5d4..463105ef 100755 --- a/classes/database/Postgres.php +++ b/classes/database/Postgres.php @@ -6717,48 +6717,50 @@ class Postgres extends ADODB_base { $sql .= ' GRANT OPTION FOR'; } - if (in_array('ALL PRIVILEGES', $privileges)) - $sql .= ' ALL PRIVILEGES ON'; + if (in_array('ALL PRIVILEGES', $privileges)) { + $sql .= ' ALL PRIVILEGES'; + } else { - if ($type='column') { + if ($type == 'column') { $this->fieldClean($object); - $sql .= ' ' . join(" (\"{$object}\"), ", $privileges) . " (\"{$object}\") ON"; - $object = $table; + $sql .= ' ' . join(" (\"{$object}\"), ", $privileges); } else { - $sql .= ' ' . join(', ', $privileges) . ' ON'; + $sql .= ' ' . join(', ', $privileges); } } - + switch ($type) { case 'column': + $sql .= " (\"{$object}\")"; + $object = $table; case 'table': case 'view': case 'sequence': $this->fieldClean($object); - $sql .= " \"{$f_schema}\".\"{$object}\""; + $sql .= " ON \"{$f_schema}\".\"{$object}\""; break; case 'database': $this->fieldClean($object); - $sql .= " DATABASE \"{$object}\""; + $sql .= " ON DATABASE \"{$object}\""; break; case 'function': // Function comes in with $object as function OID $fn = $this->getFunction($object); $this->fieldClean($fn->fields['proname']); - $sql .= " FUNCTION \"{$f_schema}\".\"{$fn->fields['proname']}\"({$fn->fields['proarguments']})"; + $sql .= " ON FUNCTION \"{$f_schema}\".\"{$fn->fields['proname']}\"({$fn->fields['proarguments']})"; break; case 'language': $this->fieldClean($object); - $sql .= " LANGUAGE \"{$object}\""; + $sql .= " ON LANGUAGE \"{$object}\""; break; case 'schema': $this->fieldClean($object); - $sql .= " SCHEMA \"{$object}\""; + $sql .= " ON SCHEMA \"{$object}\""; break; case 'tablespace': $this->fieldClean($object); - $sql .= " TABLESPACE \"{$object}\""; + $sql .= " ON TABLESPACE \"{$object}\""; break; default: return -1; |