Finally really fix that permissions issue in Principal.

This commit is contained in:
Andrew McMillan 2012-01-12 10:26:53 +13:00
parent 6915ef3d49
commit 90a34a78ec

View File

@ -532,23 +532,19 @@ class Principal {
$sql_params = array(); $sql_params = array();
foreach( self::updateableFields() AS $k ) { foreach( self::updateableFields() AS $k ) {
if ( !isset($field_values->{$k}) && !isset($this->{$k}) ) continue; if ( !isset($field_values->{$k}) && !isset($this->{$k}) ) continue;
$param_name = ':'.$k;
$sql_params[$param_name] = (isset($field_values->{$k}) ? $field_values->{$k} : $this->{$k});
if ( $k == 'default_privileges' ) {
$sql_params[$param_name] = sprintf('%024s',decbin($sql_params[$param_name]));
$param_name = 'cast('.$param_name.' as text)::BIT(24)';
}
if ( $inserting ) { if ( $inserting ) {
if ($k == 'default_privileges') $param_names[] = $param_name;
$param_names[] = 'cast(:'.$k.' as text)::BIT(24)';
else
$param_names[] = ':'.$k;
$insert_fields[] = $k; $insert_fields[] = $k;
} }
else { else {
if ($k == 'default_privileges') { $update_list[] = $k.'='.$param_name;
$update_list[] = $k.'=cast(:'.$k.' as text)::BIT(24)';
}
else {
$update_list[] = $k.'=:'.$k;
}
} }
$sql_params[':'.$k] = (isset($field_values->{$k}) ? $field_values->{$k} : $this->{$k});
} }
if ( $inserting && isset(self::$db_mandatory_fields) ) { if ( $inserting && isset(self::$db_mandatory_fields) ) {