]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Revert "Allow plugin DB_DataObject classes to not have to use the .ini file by overri...
authorZach Copley <zach@status.net>
Wed, 25 Nov 2009 21:38:59 +0000 (13:38 -0800)
committerZach Copley <zach@status.net>
Wed, 25 Nov 2009 23:54:36 +0000 (23:54 +0000)
This reverts commit a373d07ae00b878f47970f2e4a7d86c6ec3a65cf.

Conflicts:

classes/statusnet.ini
lib/schema.php
plugins/Authentication/AuthenticationPlugin.php
plugins/OpenID/OpenIDPlugin.php
plugins/UserFlag/UserFlagPlugin.php

classes/Plugin_DataObject.php [deleted file]
lib/schema.php
plugins/Authentication/AuthenticationPlugin.php
plugins/Authentication/User_username.php
plugins/OpenID/OpenIDPlugin.php
plugins/OpenID/User_openid.php
plugins/OpenID/User_openid_trustroot.php
plugins/UserFlag/UserFlagPlugin.php
plugins/UserFlag/User_flag_profile.php

diff --git a/classes/Plugin_DataObject.php b/classes/Plugin_DataObject.php
deleted file mode 100644 (file)
index d5cecf0..0000000
+++ /dev/null
@@ -1,195 +0,0 @@
-<?php
-/*
- * StatusNet - the distributed open-source microblogging tool
- * Copyright (C) 2008, 2009, StatusNet, Inc.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); }
-
-require_once INSTALLDIR.'/classes/Memcached_DataObject.php';
-
-abstract class Plugin_DataObject extends Memcached_DataObject
-{
-    function table() {
-        static $table = null;
-        if($table == null) {
-            $table = array();
-            $DB = $this->getDatabaseConnection();
-            $dbtype = $DB->phptype;
-            $tableDef = $this->tableDef();
-            foreach($tableDef->columns as $columnDef){
-                switch(strtoupper($columnDef->type)) {
-                    /*shamelessly copied from DB_DataObject_Generator*/
-                    case 'INT':
-                    case 'INT2':    // postgres
-                    case 'INT4':    // postgres
-                    case 'INT8':    // postgres
-                    case 'SERIAL4': // postgres
-                    case 'SERIAL8': // postgres
-                    case 'INTEGER':
-                    case 'TINYINT':
-                    case 'SMALLINT':
-                    case 'MEDIUMINT':
-                    case 'BIGINT':
-                        $type = DB_DATAOBJECT_INT;
-                        if ($columnDef->size == 1) {
-                            $type +=  DB_DATAOBJECT_BOOL;
-                        }
-                        break;
-                   
-                    case 'REAL':
-                    case 'DOUBLE':
-                    case 'DOUBLE PRECISION': // double precision (firebird)
-                    case 'FLOAT':
-                    case 'FLOAT4': // real (postgres)
-                    case 'FLOAT8': // double precision (postgres)
-                    case 'DECIMAL':
-                    case 'MONEY':  // mssql and maybe others
-                    case 'NUMERIC':
-                    case 'NUMBER': // oci8 
-                        $type = DB_DATAOBJECT_INT; // should really by FLOAT!!! / MONEY...
-                        break;
-                        
-                    case 'YEAR':
-                        $type = DB_DATAOBJECT_INT; 
-                        break;
-                        
-                    case 'BIT':
-                    case 'BOOL':   
-                    case 'BOOLEAN':   
-                    
-                        $type = DB_DATAOBJECT_BOOL;
-                        // postgres needs to quote '0'
-                        if ($dbtype == 'pgsql') {
-                            $type +=  DB_DATAOBJECT_STR;
-                        }
-                        break;
-                        
-                    case 'STRING':
-                    case 'CHAR':
-                    case 'VARCHAR':
-                    case 'VARCHAR2':
-                    case 'TINYTEXT':
-                    
-                    case 'ENUM':
-                    case 'SET':         // not really but oh well
-                    
-                    case 'POINT':       // mysql geometry stuff - not really string - but will do..
-                    
-                    case 'TIMESTAMPTZ': // postgres
-                    case 'BPCHAR':      // postgres
-                    case 'INTERVAL':    // postgres (eg. '12 days')
-                    
-                    case 'CIDR':        // postgres IP net spec
-                    case 'INET':        // postgres IP
-                    case 'MACADDR':     // postgress network Mac address.
-                    
-                    case 'INTEGER[]':   // postgres type
-                    case 'BOOLEAN[]':   // postgres type
-                    
-                        $type = DB_DATAOBJECT_STR;
-                        break;
-                    
-                    case 'TEXT':
-                    case 'MEDIUMTEXT':
-                    case 'LONGTEXT':
-                        
-                        $type = DB_DATAOBJECT_STR + DB_DATAOBJECT_TXT;
-                        break;
-                    
-                    
-                    case 'DATE':    
-                        $type = DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE;
-                        break;
-                        
-                    case 'TIME':    
-                        $type = DB_DATAOBJECT_STR + DB_DATAOBJECT_TIME;
-                        break;    
-                        
-                    
-                    case 'DATETIME': 
-                         
-                        $type = DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME;
-                        break;    
-                        
-                    case 'TIMESTAMP': // do other databases use this???
-                        
-                        $type = ($dbtype == 'mysql') ?
-                            DB_DATAOBJECT_MYSQLTIMESTAMP : 
-                            DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME;
-                        break;    
-                        
-                    
-                    case 'BLOB':       /// these should really be ignored!!!???
-                    case 'TINYBLOB':
-                    case 'MEDIUMBLOB':
-                    case 'LONGBLOB':
-                    
-                    case 'CLOB': // oracle character lob support
-                    
-                    case 'BYTEA':   // postgres blob support..
-                        $type = DB_DATAOBJECT_STR + DB_DATAOBJECT_BLOB;
-                        break;
-                        
-                    default:
-                        throw new Exception("Cannot handle datatype: $columnDef->type");
-                }
-                if(! $columnDef->nullable) {
-                    $type+=DB_DATAOBJECT_NOTNULL;
-                }
-                $table[$columnDef->name]=$type;
-            }
-        }
-        return $table;
-    }
-
-    function keys() {
-        static $keys = null;
-        if($keys == null) {
-            $keys = array();
-            $tableDef = $this->tableDef();
-            foreach($tableDef->columns as $columnDef){
-                if($columnDef->key != null){
-                    $keys[] = $columnDef->name;
-                }
-            }
-        }
-        return $keys;
-    }
-
-    function sequenceKey() {
-        static $sequenceKey = null;
-        if($sequenceKey == null) {
-            $sequenceKey = array(false,false);
-            $tableDef = $this->tableDef();
-            foreach($tableDef->columns as $columnDef){
-                if($columnDef->key == 'PRI' && $columnDef->auto_increment){
-                    $sequenceKey=array($columnDef->name,true);
-                }
-            }
-        }
-        return $sequenceKey;
-    }
-
-    /**
-    * Get the TableDef object that represents the table backing this class
-    * Ideally, this function would a static function, but PHP doesn't allow
-    * abstract static functions
-    * @return TableDef TableDef instance
-    */
-    abstract function tableDef();
-}
-
index 11e2b6f60ffd751309f4226a78138be9c8118db0..df7cb65f56db10c52f0a66f78ae79f48df0c4776 100644 (file)
@@ -372,26 +372,6 @@ class Schema
         return true;
     }
 
-    /**
-     * Ensures that the table that backs a given
-     * Plugin_DataObject class exists.
-     *
-     * If the table does not yet exist, it will
-     * create the table. If it does exist, it will
-     * alter the table to match the column definitions.
-     *
-     * @param Plugin_DataObject $dataObjectClass
-     *
-     * @return boolean success flag
-     */
-
-    public function ensureDataObject($dataObjectClass)
-    {
-        $obj = new $dataObjectClass();
-        $tableDef = $obj->tableDef();
-        return $this->ensureTable($tableDef->name,$tableDef->columns);
-    }
-
     /**
      * Ensures that a table exists with the given
      * name and the given column definitions.
index cd1de11491979539c2adfecd81acd18dbe1d6b58..a76848b04e09f5bb4fe4a0473b840a971e9de35c 100644 (file)
@@ -2,7 +2,7 @@
 /**
  * StatusNet, the distributed open-source microblogging tool
  *
- * Superclass for plugins that do authentication
+ * Superclass for plugins that do authentication and/or authorization
  *
  * PHP version 5
  *
@@ -204,7 +204,16 @@ abstract class AuthenticationPlugin extends Plugin
 
     function onCheckSchema() {
         $schema = Schema::get();
-        $schema->ensureDataObject('User_username');
+        $schema->ensureTable('user_username',
+                             array(new ColumnDef('provider_name', 'varchar',
+                                                 '255', false, 'PRI'),
+                                   new ColumnDef('username', 'varchar',
+                                                 '255', false, 'PRI'),
+                                   new ColumnDef('user_id', 'integer',
+                                                 null, false),
+                                   new ColumnDef('created', 'datetime',
+                                                 null, false),
+                                   new ColumnDef('modified', 'timestamp')));
         return true;
     }
 
index 6826f268175984415775563d5a90b878e92afc2b..f30f60d839a6462bd706d49c1548188e827ba9ae 100644 (file)
@@ -2,9 +2,9 @@
 /**
  * Table Definition for user_username
  */
-require_once INSTALLDIR.'/classes/Plugin_DataObject.php';
+require_once INSTALLDIR.'/classes/Memcached_DataObject.php';
 
-class User_username extends Plugin_DataObject
+class User_username extends Memcached_DataObject
 {
     ###START_AUTOCODE
     /* the code below is auto generated do not remove the above tag */
@@ -43,22 +43,4 @@ class User_username extends Plugin_DataObject
             return false;
         }
     }
-
-    /**
-    * Get the TableDef object that represents the table backing this class
-    * @return TableDef TableDef instance
-    */
-    function tableDef()
-    {
-        return new TableDef($this->__table,
-                             array(new ColumnDef('provider_name', 'varchar',
-                                                 '255', false, 'PRI'),
-                                   new ColumnDef('username', 'varchar',
-                                                 '255', false, 'PRI'),
-                                   new ColumnDef('user_id', 'integer',
-                                                 null, false),
-                                   new ColumnDef('created', 'datetime',
-                                                 null, false),
-                                   new ColumnDef('modified', 'timestamp')));
-    }
 }
index 6dd8a3f5a3bbc174ba4f8d5bbc1db3457831ac65..9b0a4cd455785e55260da029d3136b0ffa0c09a2 100644 (file)
@@ -281,8 +281,24 @@ class OpenIDPlugin extends Plugin
 
     function onCheckSchema() {
         $schema = Schema::get();
-        $schema->ensureDataObject('User_openid');
-        $schema->ensureDataObject('User_openid_trustroot');
+        $schema->ensureTable('user_openid',
+                             array(new ColumnDef('canonical', 'varchar',
+                                                 '255', false, 'PRI'),
+                                   new ColumnDef('display', 'varchar',
+                                                 '255', false),
+                                   new ColumnDef('user_id', 'integer',
+                                                 null, false, 'MUL'),
+                                   new ColumnDef('created', 'datetime',
+                                                 null, false),
+                                   new ColumnDef('modified', 'timestamp')));
+        $schema->ensureTable('user_openid_trustroot',
+                             array(new ColumnDef('trustroot', 'varchar',
+                                                 '255', false, 'PRI'),
+                                   new ColumnDef('user_id', 'integer',
+                                                 null, false, 'PRI'),
+                                   new ColumnDef('created', 'datetime',
+                                                 null, false),
+                                   new ColumnDef('modified', 'timestamp')));
         return true;
     }
 
index c3624118e7b6991ae4b684a68614854ab8c9e1ee..338e0f6e92c441990e30f2a9af672e06dddc645e 100644 (file)
@@ -2,9 +2,9 @@
 /**
  * Table Definition for user_openid
  */
-require_once INSTALLDIR.'/classes/Plugin_DataObject.php';
+require_once INSTALLDIR.'/classes/Memcached_DataObject.php';
 
-class User_openid extends Plugin_DataObject
+class User_openid extends Memcached_DataObject
 {
     ###START_AUTOCODE
     /* the code below is auto generated do not remove the above tag */
@@ -33,22 +33,4 @@ class User_openid extends Plugin_DataObject
 
         return ($cnt > 0);
     }
-
-    /**
-    * Get the TableDef object that represents the table backing this class
-    * @return TableDef TableDef instance
-    */
-    function tableDef()
-    {
-        return new TableDef($this->__table,
-                             array(new ColumnDef('canonical', 'varchar',
-                                                 '255', false, 'PRI'),
-                                   new ColumnDef('display', 'varchar',
-                                                 '255', false),
-                                   new ColumnDef('user_id', 'integer',
-                                                 null, false, 'MUL'),
-                                   new ColumnDef('created', 'datetime',
-                                                 null, false),
-                                   new ColumnDef('modified', 'timestamp')));
-    }
 }
index b208dddfdc6464f8605ce9e85f65440377fa70e2..4654b72df70da17de3db7a633f43c2241c67c9bc 100644 (file)
@@ -2,9 +2,9 @@
 /**
  * Table Definition for user_openid_trustroot
  */
-require_once INSTALLDIR.'/classes/Plugin_DataObject.php';
+require_once INSTALLDIR.'/classes/Memcached_DataObject.php';
 
-class User_openid_trustroot extends Plugin_DataObject
+class User_openid_trustroot extends Memcached_DataObject
 {
     ###START_AUTOCODE
     /* the code below is auto generated do not remove the above tag */
@@ -26,20 +26,4 @@ class User_openid_trustroot extends Plugin_DataObject
     {
         return Memcached_DataObject::pkeyGet('User_openid_trustroot', $kv);
     }
-
-    /**
-    * Get the TableDef object that represents the table backing this class
-    * @return TableDef TableDef instance
-    */
-    function tableDef()
-    {
-        return new TableDef($this->__table,
-                             array(new ColumnDef('trustroot', 'varchar',
-                                                 '255', false, 'PRI'),
-                                   new ColumnDef('user_id', 'integer',
-                                                 null, false, 'PRI'),
-                                   new ColumnDef('created', 'datetime',
-                                                 null, false),
-                                   new ColumnDef('modified', 'timestamp')));
-    }
 }
index 97b999a2f8fac1df2c60d1415c08449f5bae1431..1f1f199577cf85f6ca114822002775e96862c5a0 100644 (file)
@@ -48,7 +48,16 @@ class UserFlagPlugin extends Plugin
         $schema = Schema::get();
 
         // For storing user-submitted flags on profiles
-        $schema->ensureDataObject('User_flag_profile');
+
+        $schema->ensureTable('user_flag_profile',
+                             array(new ColumnDef('profile_id', 'integer', null,
+                                                 false, 'PRI'),
+                                   new ColumnDef('user_id', 'integer', null,
+                                                 false, 'PRI'),
+                                   new ColumnDef('created', 'datetime', null,
+                                                 false, 'MUL'),
+                                   new ColumnDef('cleared', 'datetime', null,
+                                                 true, 'MUL')));
 
         return true;
     }
index 2fb27912d284f1f87674aa18939dbe2a30597f26..30bd4ae68de75aee12a7b5271ba653a909a54a08 100644 (file)
@@ -21,9 +21,9 @@ if (!defined('STATUSNET')) {
     exit(1);
 }
 
-require_once INSTALLDIR.'/classes/Plugin_DataObject.php';
+require_once INSTALLDIR . '/classes/Memcached_DataObject.php';
 
-class User_flag_profile extends Plugin_DataObject
+class User_flag_profile extends Memcached_DataObject
 {
     ###START_AUTOCODE
     /* the code below is auto generated do not remove the above tag */
@@ -65,21 +65,4 @@ class User_flag_profile extends Plugin_DataObject
 
         return !empty($ufp);
     }
-
-    /**
-    * Get the TableDef object that represents the table backing this class
-    * @return TableDef TableDef instance
-    */
-    function tableDef()
-    {
-        return new TableDef($this->__table,
-                             array(new ColumnDef('profile_id', 'integer', null,
-                                                 false, 'PRI'),
-                                   new ColumnDef('user_id', 'integer', null,
-                                                 false, 'PRI'),
-                                   new ColumnDef('created', 'datetime', null,
-                                                 false, 'MUL'),
-                                   new ColumnDef('cleared', 'datetime', null,
-                                                 true, 'MUL')));
-    }
 }