X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=classes%2FOauth_application.php;h=d5d38d0d662be231d5a5b9c2467039cd51b8a773;hb=1ae5ea8f4cf40113a14a183b754101177f99ba32;hp=f1d4fb7a6f3a12e44a6bc1e38c0f3015fc3451a1;hpb=a2090ecc97f93894ba6f833acde5f44058988510;p=quix0rs-gnu-social.git diff --git a/classes/Oauth_application.php b/classes/Oauth_application.php index f1d4fb7a6f..d5d38d0d66 100644 --- a/classes/Oauth_application.php +++ b/classes/Oauth_application.php @@ -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 */ @@ -12,23 +12,19 @@ class Oauth_application extends Memcached_DataObject public $__table = 'oauth_application'; // table name public $id; // int(4) primary_key not_null public $owner; // int(4) not_null - public $consumer_key; // varchar(255) not_null - public $name; // varchar(255) not_null - public $description; // varchar(255) - public $icon; // varchar(255) not_null - public $source_url; // varchar(255) - public $organization; // varchar(255) - public $homepage; // varchar(255) - public $callback_url; // varchar(255) not_null + public $consumer_key; // varchar(191) not_null not 255 because utf8mb4 takes more space + public $name; // varchar(191) not_null not 255 because utf8mb4 takes more space + public $description; // varchar(191) not 255 because utf8mb4 takes more space + public $icon; // varchar(191) not_null not 255 because utf8mb4 takes more space + public $source_url; // varchar(191) not 255 because utf8mb4 takes more space + public $organization; // varchar(191) not 255 because utf8mb4 takes more space + public $homepage; // varchar(191) not 255 because utf8mb4 takes more space + public $callback_url; // varchar(191) not_null not 255 because utf8mb4 takes more space public $type; // tinyint(1) public $access_type; // tinyint(1) 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,18 +37,18 @@ 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() { // 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. + // but this isn't part of a notice and the field's limited to 191 chars + // in the DB, so those seem silly. (utf8mb4 takes up more space, so can't use 255) // - // Now just defaulting to 255 max unless a smaller application desclimit + // Now just defaulting to 191 max unless a smaller application desclimit // is actually set. Setting to 0 will use the maximum. - $max = 255; + $max = 191; $desclimit = intval(common_config('application', 'desclimit')); if ($desclimit > 0 && $desclimit < $max) { return $desclimit; @@ -84,7 +80,7 @@ class Oauth_application extends Memcached_DataObject function setOriginal($filename) { - $imagefile = new ImageFile($this->id, Avatar::path($filename)); + $imagefile = new ImageFile(null, Avatar::path($filename)); // XXX: Do we want to have a bunch of different size icons? homepage, stream, mini? // or just one and control size via CSS? --Zach @@ -143,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() @@ -159,4 +155,35 @@ class Oauth_application extends Memcached_DataObject $oauser->application_id = $this->id; $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' => 191, 'not null' => true, 'description' => 'application consumer key'), + 'name' => array('type' => 'varchar', 'length' => 191, 'not null' => true, 'description' => 'name of the application'), + 'description' => array('type' => 'varchar', 'length' => 191, 'description' => 'description of the application'), + 'icon' => array('type' => 'varchar', 'length' => 191, 'not null' => true, 'description' => 'application icon'), + 'source_url' => array('type' => 'varchar', 'length' => 191, 'description' => 'application homepage - used for source link'), + 'organization' => array('type' => 'varchar', 'length' => 191, 'description' => 'name of the organization running the application'), + 'homepage' => array('type' => 'varchar', 'length' => 191, 'description' => 'homepage for the organization'), + 'callback_url' => array('type' => 'varchar', 'length' => 191, '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')), + ), + ); + } }