fix for bug #1963050, we emit 'No Access' now in cases where we dont have permissions...
authorRobert Treat <robert@robert-treats-macbook.local>
Sat, 9 Jan 2010 22:15:31 +0000 (17:15 -0500)
committerRobert Treat <robert@robert-treats-macbook.local>
Sat, 9 Jan 2010 22:15:31 +0000 (17:15 -0500)
classes/Misc.php
classes/database/Postgres.php
lang/english.php
lang/recoded/english.php

index 35d7525486b99fd641341ee8c3823683e517531d..a037db6c381b192e882c75ca9c06e6c58a4eeaf9 100644 (file)
                                        $out = $params['function']($str, $params);
                                        break;
                                case 'prettysize':
-                                       $mult = 1;
-                                       $limit = 10 * 1024;
-
-                                       if ($str < $limit * $mult)
-                                               $out = $str.' '.$lang['strbytes'];
+                                       if ($str == -1) 
+                                               $out = $lang['strnoaccess'];
                                        else
                                        {
-                                               $mult *= 1024;
+                                               $limit = 10 * 1024;
+                                               $mult = 1;
                                                if ($str < $limit * $mult)
-                                                       $out = floor(($str + $mult / 2) / $mult).' '.$lang['strkb'];
+                                                       $out = $str.' '.$lang['strbytes'];
                                                else
                                                {
                                                        $mult *= 1024;
                                                        if ($str < $limit * $mult)
-                                                               $out = floor(($str + $mult / 2) / $mult).' '.$lang['strmb'];
+                                                               $out = floor(($str + $mult / 2) / $mult).' '.$lang['strkb'];
                                                        else
                                                        {
                                                                $mult *= 1024;
                                                                if ($str < $limit * $mult)
-                                                                       $out = floor(($str + $mult / 2) / $mult).' '.$lang['strgb'];
+                                                                       $out = floor(($str + $mult / 2) / $mult).' '.$lang['strmb'];
                                                                else
                                                                {
                                                                        $mult *= 1024;
                                                                        if ($str < $limit * $mult)
-                                                                               $out = floor(($str + $mult / 2) / $mult).' '.$lang['strtb'];
+                                                                               $out = floor(($str + $mult / 2) / $mult).' '.$lang['strgb'];
+                                                                       else
+                                                                       {
+                                                                               $mult *= 1024;
+                                                                               if ($str < $limit * $mult)
+                                                                                       $out = floor(($str + $mult / 2) / $mult).' '.$lang['strtb'];
+                                                                       }
                                                                }
                                                        }
                                                }
index c6484211a9a17180c5868a7599b7430229f44073..fb524824567e573f43a5e87bd04a0d99ccd4fb9c 100755 (executable)
@@ -476,7 +476,10 @@ class Postgres extends ADODB_base {
                        SELECT pdb.datname AS datname, pr.rolname AS datowner, pg_encoding_to_char(encoding) AS datencoding,
                                (SELECT description FROM pg_catalog.pg_shdescription pd WHERE pdb.oid=pd.objoid) AS datcomment,
                                (SELECT spcname FROM pg_catalog.pg_tablespace pt WHERE pt.oid=pdb.dattablespace) AS tablespace,
-                               pg_catalog.pg_database_size(pdb.oid) as dbsize, pdb.datcollate, pdb.datctype
+                               CASE WHEN pg_catalog.has_database_privilege(current_user, pdb.oid, 'CONNECT') 
+                                       THEN pg_catalog.pg_database_size(pdb.oid) 
+                                       ELSE -1 -- set this magic value, which we will convert to no access later  
+                               END as dbsize, pdb.datcollate, pdb.datctype
                        FROM pg_catalog.pg_database pdb
                                LEFT JOIN pg_catalog.pg_roles pr ON (pdb.datdba = pr.oid)
                        WHERE true
index d1834e4fcf76c706c49347038f1526c7b7b93181..cceb8bd3aa6a780fbd85a20e53505d7b6cf4fab3 100644 (file)
        $lang['strnodatabaseselected'] = 'Please, select a database.';
 
        // Database sizes
+       $lang['strnoaccess'] = 'No Access'; 
        $lang['strsize'] = 'Size';
        $lang['strbytes'] = 'bytes';
        $lang['strkb'] = 'kB';
index c231e2de039b95bc3b251fe5d5a6e43449e03780..eeb70025bd945b8103cfcc577fda9feb87f77eb4 100644 (file)
        $lang['strnodatabaseselected'] = 'Please, select a database.';
 
        // Database sizes
+       $lang['strnoaccess'] = 'No Access'; 
        $lang['strsize'] = 'Size';
        $lang['strbytes'] = 'bytes';
        $lang['strkb'] = 'kB';
        $lang['strinsertrow'] = 'Insert row';
        $lang['strrowinserted'] = 'Row inserted.';
        $lang['strrowinsertedbad'] = 'Row insert failed.';
-       $lang['strnofkref'] = 'There is no matching value for this foreign key in %s.';
+       $lang['strnofkref'] = 'There is no matching value in the foreign key %s.';
        $lang['strrowduplicate'] = 'Row insert failed, attempted to do duplicate insert.';
        $lang['streditrow'] = 'Edit row';
        $lang['strrowupdated'] = 'Row updated.';