When modifying a table, show owners' select menu only if logged as superuser. Display...
authorsoranzo <soranzo>
Sat, 3 Jan 2004 19:15:44 +0000 (19:15 +0000)
committersoranzo <soranzo>
Sat, 3 Jan 2004 19:15:44 +0000 (19:15 +0000)
HISTORY
classes/database/Postgres.php
classes/database/Postgres71.php
classes/database/Postgres73.php
lang/english.php
lang/italian.php
lang/recoded/english.php
lang/recoded/italian.php
tblproperties.php
users.php

diff --git a/HISTORY b/HISTORY
index b2ac9287716517d78739e7cf9c817f5c12a6eb93..41d664f64c3ccf02db56e707794617e00d3422eb 100644 (file)
--- a/HISTORY
+++ b/HISTORY
@@ -12,6 +12,7 @@ Features
 * Display aggregates and operator classes
 * Integration with the PostgreSQL statistics collector.  See
   table and index performance and usage information.
+* Display user session defaults for PostgreSQL >= 7.3
 
 Bugs
 * Object browser fixed for databases with no schemas
index 498786fbb5ffa9d1fc0cce77d7277ac892cde0df..c05cd5602e1676d02bac59f2b04568ea70c3d2c4 100755 (executable)
@@ -4,7 +4,7 @@
  * A class that implements the DB interface for Postgres
  * Note: This class uses ADODB and returns RecordSets.
  *
- * $Id: Postgres.php,v 1.172 2004/01/03 07:19:29 chriskl Exp $
+ * $Id: Postgres.php,v 1.173 2004/01/03 19:15:44 soranzo Exp $
  */
 
 // @@@ THOUGHT: What about inherits? ie. use of ONLY???
@@ -2320,7 +2320,9 @@ class Postgres extends BaseDB {
         * @return All users
         */
        function &getUsers() {
-               $sql = "SELECT usename, usesuper, usecreatedb, valuntil FROM pg_user ORDER BY usename";
+               $sql = "SELECT usename, usesuper, usecreatedb, valuntil";
+               if ($this->hasUserSessionDefaults()) $sql .= ", useconfig";
+               $sql .= " FROM pg_user ORDER BY usename";
                
                return $this->selectSet($sql);
        }
@@ -2333,7 +2335,9 @@ class Postgres extends BaseDB {
        function &getUser($username) {
                $this->clean($username);
                
-               $sql = "SELECT usename, usesuper, usecreatedb, valuntil FROM pg_user WHERE usename='{$username}'";
+               $sql = "SELECT usename, usesuper, usecreatedb, valuntil";
+               if ($this->hasUserSessionDefaults()) $sql .= ", useconfig";
+               $sql .= " FROM pg_user WHERE usename='{$username}'";
                
                return $this->selectSet($sql);
        }
@@ -3510,6 +3514,8 @@ class Postgres extends BaseDB {
        function hasDropColumn() { return false; }
        function hasSRFs() { return true; }
        function hasOpClasses() { return true; }
+       function hasUserSessionDefaults() { return false; }
+
 }
 
 ?>
index 99005a8b2843c28b3ac2409675d2d2e8a66e495e..d01a1b7f83cf74457198da8e2ce058173ca8cf31 100644 (file)
@@ -4,7 +4,7 @@
  * A class that implements the DB interface for Postgres
  * Note: This class uses ADODB and returns RecordSets.
  *
- * $Id: Postgres71.php,v 1.50 2003/12/30 03:09:29 chriskl Exp $
+ * $Id: Postgres71.php,v 1.51 2004/01/03 19:15:44 soranzo Exp $
  */
 
 // @@@ THOUGHT: What about inherits? ie. use of ONLY???
@@ -333,16 +333,6 @@ class Postgres71 extends Postgres {
        }       
                
        // Capabilities
-       function hasTables() { return true; }
-       function hasViews() { return true; }
-       function hasSequences() { return true; }
-       function hasFunctions() { return true; }
-       function hasTriggers() { return true; }
-       function hasOperators() { return true; }
-       function hasTypes() { return true; }
-       function hasAggregates() { return true; }
-       function hasRules() { return true; }
-       function hasSchemas() { return false; }
        function hasAlterTableOwner() { return true; }
        function hasFullSubqueries() { return true; }
 
index 232c11cd9108b2b465fbe61b85a1b8915889a3ed..b51dcdb23655caed3be45050a57a31c9bde22f55 100644 (file)
@@ -4,7 +4,7 @@
  * A class that implements the DB interface for Postgres
  * Note: This class uses ADODB and returns RecordSets.
  *
- * $Id: Postgres73.php,v 1.85 2003/12/30 03:09:29 chriskl Exp $
+ * $Id: Postgres73.php,v 1.86 2004/01/03 19:15:44 soranzo Exp $
  */
 
 // @@@ THOUGHT: What about inherits? ie. use of ONLY???
@@ -13,6 +13,8 @@ include_once('./classes/database/Postgres72.php');
 
 class Postgres73 extends Postgres72 {
 
+       var $uFields = array('uname' => 'usename', 'usuper' => 'usesuper', 'ucreatedb' => 'usecreatedb', 'uexpires' => 'valuntil', 'udefaults' => 'useconfig');
+
        var $nspFields = array('nspname' => 'nspname', 'nspowner' => 'nspowner');
        var $conFields = array('conname' => 'conname', 'conowner' => 'conowner');
 
@@ -1457,6 +1459,7 @@ class Postgres73 extends Postgres72 {
        function hasAlterTrigger() { return true; }
        function hasCasts() { return true; }
        function hasPrepare() { return true; }
+       function hasUserSessionDefaults() { return true; }
 
 }
 
index 17b951f64d1604e478b6ba4dab995bd5194b210c..5d9701ec20c296f8bb90487d90e8931d5e7684ac 100755 (executable)
@@ -4,7 +4,7 @@
         * English language file for phpPgAdmin.  Use this as a basis
         * for new translations.
         *
-        * $Id: english.php,v 1.127 2004/01/02 12:53:36 chriskl Exp $
+        * $Id: english.php,v 1.128 2004/01/03 19:15:45 soranzo Exp $
         */
 
        // Language and character set
        $lang['strsuper'] = 'Superuser?';
        $lang['strcreatedb'] = 'Create DB?';
        $lang['strexpires'] = 'Expires';
+       $lang['strsessiondefaults'] = 'Session Defaults';
        $lang['strnousers'] = 'No users found.';
        $lang['struserupdated'] = 'User updated.';
        $lang['struserupdatedbad'] = 'User update failed.';
index ec7cb6956aef254cf5f6e62bf50e5bc2c3f00858..593d102599dd3611d3c8531110c3e5fe0c7b5665 100644 (file)
@@ -4,7 +4,7 @@
         * Italian language file, based on the english language file for phpPgAdmin.
         * Nicola Soranzo [[email protected]]
          *
-        * $Id: italian.php,v 1.23 2003/12/31 15:44:27 soranzo Exp $
+        * $Id: italian.php,v 1.24 2004/01/03 19:15:45 soranzo Exp $
         */
 
        // Language and character set - Lingua e set di caratteri
        $lang['strsuper'] = 'Superuser?';
        $lang['strcreatedb'] = 'Può creare DB?';
        $lang['strexpires'] = 'Scadenza';
+       $lang['strsessiondefaults'] = 'Defaults della sessione';
        $lang['strnousers'] = 'Nessun utente trovato';
        $lang['struserupdated'] = 'Utente aggiornato.';
        $lang['struserupdatedbad'] = 'Aggiornamento utente fallito.';
index 47898493578e85db9518daa1855d7c1afba10951..ccdcf908ce29a74f768c2327281d8ace37370f4d 100644 (file)
@@ -4,7 +4,7 @@
         * English language file for phpPgAdmin.  Use this as a basis
         * for new translations.
         *
-        * $Id: english.php,v 1.79 2004/01/02 12:53:36 chriskl Exp $
+        * $Id: english.php,v 1.80 2004/01/03 19:15:45 soranzo Exp $
         */
 
        // Language and character set
        $lang['strsuper'] = 'Superuser?';
        $lang['strcreatedb'] = 'Create DB?';
        $lang['strexpires'] = 'Expires';
+       $lang['strsessiondefaults'] = 'Session Defaults';
        $lang['strnousers'] = 'No users found.';
        $lang['struserupdated'] = 'User updated.';
        $lang['struserupdatedbad'] = 'User update failed.';
index 33c6d42e6a5d892129d4a593d2f0eda3b1ce89be..ee602f4dc5e5dc74d2e78d822d8f5df2ef23edb9 100644 (file)
@@ -4,7 +4,7 @@
         * Italian language file, based on the english language file for phpPgAdmin.
         * Nicola Soranzo [[email protected]]
          *
-        * $Id: italian.php,v 1.18 2003/12/31 15:44:27 soranzo Exp $
+        * $Id: italian.php,v 1.19 2004/01/03 19:15:45 soranzo Exp $
         */
 
        // Language and character set - Lingua e set di caratteri
        $lang['strsuper'] = 'Superuser?';
        $lang['strcreatedb'] = 'Pu&ograve; creare DB?';
        $lang['strexpires'] = 'Scadenza';
+       $lang['strsessiondefaults'] = 'Defaults della sessione';
        $lang['strnousers'] = 'Nessun utente trovato';
        $lang['struserupdated'] = 'Utente aggiornato.';
        $lang['struserupdatedbad'] = 'Aggiornamento utente fallito.';
index 9a624f0e7f443f467f138adcbeae5db24b0cd201..5f181858ecb75138087db546b2a651b1826ee410 100644 (file)
@@ -3,7 +3,7 @@
        /**
         * List tables in a database
         *
-        * $Id: tblproperties.php,v 1.34 2003/12/31 15:44:27 soranzo Exp $
+        * $Id: tblproperties.php,v 1.35 2004/01/03 19:15:44 soranzo Exp $
         */
 
        // Include application functions
@@ -60,7 +60,7 @@
                        echo "<td class=\"data1\">";
                        echo "<input name=\"name\" size=\"32\" maxlength=\"{$data->_maxNameLen}\" value=\"", 
                                htmlspecialchars($_POST['name']), "\" /></td></tr>\n";
-                       if ($data->hasAlterTableOwner()) {
+                       if ($data->hasAlterTableOwner() && $data->isSuperUser($_SESSION['webdbUsername'])) {
                                echo "<tr><th class=\"data required\">{$lang['strowner']}</th>\n";
                                echo "<td class=\"data1\"><select name=\"owner\">";
                                while (!$users->EOF) {
index c4f19aa6b79603479e99310aca9b22465bdaa156..62bfea19871cb03100887ae8705d0a58f9078835 100644 (file)
--- a/users.php
+++ b/users.php
@@ -3,7 +3,7 @@
        /**
         * Manage users in a database cluster
         *
-        * $Id: users.php,v 1.21 2004/01/03 07:24:19 chriskl Exp $
+        * $Id: users.php,v 1.22 2004/01/03 19:15:44 soranzo Exp $
         */
 
        // Include application functions
                        $userdata->f[$data->uFields['usuper']] = $data->phpBool($userdata->f[$data->uFields['usuper']]);
                        $userdata->f[$data->uFields['ucreatedb']] = $data->phpBool($userdata->f[$data->uFields['ucreatedb']]);
                        echo "<table>\n";
-                       echo "<tr><th class=\"data\">{$lang['strusername']}</th><th class=\"data\">{$lang['strsuper']}</th><th class=\"data\">{$lang['strcreatedb']}</th><th class=\"data\">{$lang['strexpires']}</th></tr>\n";
-                       echo "<tr><td class=\"data1\">", $misc->printVal($userdata->f[$data->uFields['uname']]), "</td>\n";
-                       echo "<td class=\"data1\">", (($userdata->f[$data->uFields['usuper']]) ? $lang['stryes'] : $lang['strno']), "</td>\n";
-                       echo "<td class=\"data1\">", (($userdata->f[$data->uFields['ucreatedb']]) ? $lang['stryes'] : $lang['strno']), "</td>\n";
-                       echo "<td class=\"data1\">", $misc->printVal($userdata->f[$data->uFields['uexpires']]), "</td></tr>\n";
-                       echo "</table>\n";
+                       echo "<tr><th class=\"data\">{$lang['strusername']}</th><th class=\"data\">{$lang['strsuper']}</th><th class=\"data\">{$lang['strcreatedb']}</th><th class=\"data\">{$lang['strexpires']}</th>";
+                       if ($data->hasUserSessionDefaults()) echo "<th class=\"data\">{$lang['strsessiondefaults']}</th>";
+                       echo "</tr>\n";
+                       echo "<tr>\n\t<td class=\"data1\">", $misc->printVal($userdata->f[$data->uFields['uname']]), "</td>\n";
+                       echo "\t<td class=\"data1\">", (($userdata->f[$data->uFields['usuper']]) ? $lang['stryes'] : $lang['strno']), "</td>\n";
+                       echo "\t<td class=\"data1\">", (($userdata->f[$data->uFields['ucreatedb']]) ? $lang['stryes'] : $lang['strno']), "</td>\n";
+                       echo "\t<td class=\"data1\">", $misc->printVal($userdata->f[$data->uFields['uexpires']]), "</td>\n";
+                       if ($data->hasUserSessionDefaults()) echo "\t<td class=\"data1\">", $misc->printVal($userdata->f[$data->uFields['udefaults']]), "</td>\n";
+                       echo "</tr>\n</table>\n";
                }
                else echo "<p>{$lang['strnodata']}</p>\n";
                
                
                if ($users->recordCount() > 0) {
                        echo "<table>\n";
-                       echo "<tr><th class=\"data\">{$lang['strusername']}</th><th class=\"data\">{$lang['strsuper']}</th>";
-                       echo "<th class=\"data\">{$lang['strcreatedb']}</th><th class=\"data\">{$lang['strexpires']}</th><th colspan=\"2\" class=\"data\">{$lang['stractions']}</th></tr>\n";
+                       echo "<tr><th class=\"data\">{$lang['strusername']}</th><th class=\"data\">{$lang['strsuper']}</th><th class=\"data\">{$lang['strcreatedb']}</th><th class=\"data\">{$lang['strexpires']}</th>";
+                       if ($data->hasUserSessionDefaults()) echo "<th class=\"data\">{$lang['strsessiondefaults']}</th>";
+                       echo "<th colspan=\"2\" class=\"data\">{$lang['stractions']}</th></tr>\n";
                        $i = 0;
                        while (!$users->EOF) {
                                $users->f[$data->uFields['usuper']] = $data->phpBool($users->f[$data->uFields['usuper']]);
                                $users->f[$data->uFields['ucreatedb']] = $data->phpBool($users->f[$data->uFields['ucreatedb']]);
                                $id = (($i % 2) == 0 ? '1' : '2');
-                               echo "<tr><td class=\"data{$id}\">", $misc->printVal($users->f[$data->uFields['uname']]), "</td>\n";
-                               echo "<td class=\"data{$id}\">", ($users->f[$data->uFields['usuper']]) ? $lang['stryes'] : $lang['strno'], "</td>\n";
-                               echo "<td class=\"data{$id}\">", ($users->f[$data->uFields['ucreatedb']]) ? $lang['stryes'] : $lang['strno'], "</td>\n";
-                               echo "<td class=\"data{$id}\">", $misc->printVal($users->f[$data->uFields['uexpires']]), "</td>\n";
-                               echo "<td class=\"opbutton{$id}\"><a href=\"$PHP_SELF?action=edit&amp;username=",
+                               echo "<tr>\n\t<td class=\"data{$id}\">", $misc->printVal($users->f[$data->uFields['uname']]), "</td>\n";
+                               echo "\t<td class=\"data{$id}\">", ($users->f[$data->uFields['usuper']]) ? $lang['stryes'] : $lang['strno'], "</td>\n";
+                               echo "\t<td class=\"data{$id}\">", ($users->f[$data->uFields['ucreatedb']]) ? $lang['stryes'] : $lang['strno'], "</td>\n";
+                               echo "\t<td class=\"data{$id}\">", $misc->printVal($users->f[$data->uFields['uexpires']]), "</td>\n";
+                               if ($data->hasUserSessionDefaults()) echo "\t<td class=\"data{$id}\">", $misc->printVal($users->f[$data->uFields['udefaults']]), "</td>\n";
+                               echo "\t<td class=\"opbutton{$id}\"><a href=\"$PHP_SELF?action=edit&amp;username=",
                                        urlencode($users->f[$data->uFields['uname']]), "\">{$lang['stralter']}</a></td>\n";
-                               echo "<td class=\"opbutton{$id}\"><a href=\"$PHP_SELF?action=confirm_drop&amp;username=", 
+                               echo "\t<td class=\"opbutton{$id}\"><a href=\"$PHP_SELF?action=confirm_drop&amp;username=", 
                                        urlencode($users->f[$data->uFields['uname']]), "\">{$lang['strdrop']}</a></td>\n";
                                echo "</tr>\n";
                                $users->moveNext();