]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - classes/Oauth_application.php
function delete in dataobjects now don't break strict syntax
[quix0rs-gnu-social.git] / classes / Oauth_application.php
index 748b6422006b4175311a7fade7f7d5aed3ca4f8f..b29fdfe41b1fb059cb79ae409010950a44be1650 100644 (file)
@@ -4,7 +4,7 @@
  */
 require_once INSTALLDIR.'/classes/Memcached_DataObject.php';
 
-class Oauth_application extends Memcached_DataObject
+class Oauth_application extends Managed_DataObject
 {
     ###START_AUTOCODE
     /* the code below is auto generated do not remove the above tag */
@@ -25,10 +25,6 @@ class Oauth_application extends Memcached_DataObject
     public $created;                         // datetime   not_null
     public $modified;                        // timestamp   not_null default_CURRENT_TIMESTAMP
 
-    /* Static get */
-    function staticGet($k,$v=NULL) {
-    return Memcached_DataObject::staticGet('Oauth_application',$k,$v);
-    }
     /* the code above is auto generated do not remove the tag below */
     ###END_AUTOCODE
 
@@ -41,17 +37,24 @@ class Oauth_application extends Memcached_DataObject
 
     function getConsumer()
     {
-        return Consumer::staticGet('consumer_key', $this->consumer_key);
+        return Consumer::getKV('consumer_key', $this->consumer_key);
     }
 
     static function maxDesc()
     {
-        $desclimit = common_config('application', 'desclimit');
-        // null => use global limit (distinct from 0!)
-        if (is_null($desclimit)) {
-            $desclimit = common_config('site', 'textlimit');
+        // This used to default to textlimit or allow unlimited descriptions,
+        // but this isn't part of a notice and the field's limited to 255 chars
+        // in the DB, so those seem silly.
+        //
+        // Now just defaulting to 255 max unless a smaller application desclimit
+        // is actually set. Setting to 0 will use the maximum.
+        $max = 255;
+        $desclimit = intval(common_config('application', 'desclimit'));
+        if ($desclimit > 0 && $desclimit < $max) {
+            return $desclimit;
+        } else {
+            return $max;
         }
-        return $desclimit;
     }
 
     static function descriptionTooLong($desc)
@@ -110,7 +113,6 @@ class Oauth_application extends Memcached_DataObject
      *
      * @return void
      */
-
     function uploadLogo()
     {
         if ($_FILES['app_icon']['error'] ==
@@ -137,14 +139,14 @@ class Oauth_application extends Memcached_DataObject
         }
     }
 
-    function delete()
+    function delete($useWhere=false)
     {
         $this->_deleteAppUsers();
 
         $consumer = $this->getConsumer();
         $consumer->delete();
 
-        parent::delete();
+        return parent::delete($useWhere);
     }
 
     function _deleteAppUsers()
@@ -154,4 +156,34 @@ class Oauth_application extends Memcached_DataObject
         $oauser->delete();
     }
 
+    public static function schemaDef()
+    {
+        return array(
+            'description' => 'OAuth application registration record',
+            'fields' => array(
+                'id' => array('type' => 'serial', 'not null' => true, 'description' => 'unique identifier'),
+                'owner' => array('type' => 'int', 'not null' => true, 'description' => 'owner of the application'),
+                'consumer_key' => array('type' => 'varchar', 'length' => 255, 'not null' => true, 'description' => 'application consumer key'),
+                'name' => array('type' => 'varchar', 'length' => 255, 'not null' => true, 'description' => 'name of the application'),
+                'description' => array('type' => 'varchar', 'length' => 255, 'description' => 'description of the application'),
+                'icon' => array('type' => 'varchar', 'length' => 255, 'not null' => true, 'description' => 'application icon'),
+                'source_url' => array('type' => 'varchar', 'length' => 255, 'description' => 'application homepage - used for source link'),
+                'organization' => array('type' => 'varchar', 'length' => 255, 'description' => 'name of the organization running the application'),
+                'homepage' => array('type' => 'varchar', 'length' => 255, 'description' => 'homepage for the organization'),
+                'callback_url' => array('type' => 'varchar', 'length' => 255, 'description' => 'url to redirect to after authentication'),
+                'type' => array('type' => 'int', 'size' => 'tiny', 'default' => 0, 'description' => 'type of app, 1 = browser, 2 = desktop'),
+                'access_type' => array('type' => 'int', 'size' => 'tiny', 'default' => 0, 'description' => 'default access type, bit 1 = read, bit 2 = write'),
+                'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'),
+                'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'),
+            ),
+            'primary key' => array('id'),
+            'unique keys' => array(
+                'oauth_application_name_key' => array('name'), // in the long run, we should perhaps not force these unique, and use another source id
+            ),
+            'foreign keys' => array(
+                'oauth_application_owner_fkey' => array('profile', array('owner' => 'id')), // Are remote users allowed to create oauth application records?
+                'oauth_application_consumer_key_fkey' => array('consumer', array('consumer_key' => 'consumer_key')),
+            ),
+        );
+    }
 }