summaryrefslogtreecommitdiff
path: root/classes
diff options
context:
space:
mode:
authorGuillaume (ioguix) de Rorthais2009-10-26 01:22:46 +0000
committerGuillaume (ioguix) de Rorthais2009-10-26 01:22:46 +0000
commitee9b7827d16c3b006dc48e206122bf7d8c01fcdd (patch)
tree9017835a1a4654d2fa9f28a3549a5fc7ab2b707d /classes
parent71018e3c0668e50bc8dabdf3bb6338865d31e1f5 (diff)
Fix bug in privilege when setting ALL on a column
Diffstat (limited to 'classes')
-rwxr-xr-xclasses/database/Postgres.php28
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;