X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=classes%2FOauth_application.php;h=d5d38d0d662be231d5a5b9c2467039cd51b8a773;hb=e439ace944a053f760ef13dd469fd822da3e8eec;hp=e81706104eaf6b9c17626d00db371d7d67bb1c0f;hpb=99194e03fa50b61f99164674afc949b4bbefd44a;p=quix0rs-gnu-social.git diff --git a/classes/Oauth_application.php b/classes/Oauth_application.php index e81706104e..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,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 191 chars + // in the DB, so those seem silly. (utf8mb4 takes up more space, so can't use 255) + // + // Now just defaulting to 191 max unless a smaller application desclimit + // is actually set. Setting to 0 will use the maximum. + $max = 191; + $desclimit = intval(common_config('application', 'desclimit')); + if ($desclimit > 0 && $desclimit < $max) { + return $desclimit; + } else { + return $max; } - return $desclimit; } static function descriptionTooLong($desc) @@ -77,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 @@ -136,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() @@ -152,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')), + ), + ); + } }