diff --git a/actions/apioauthauthorize.php b/actions/apioauthauthorize.php index d76ae060f2..3a83fd27fc 100644 --- a/actions/apioauthauthorize.php +++ b/actions/apioauthauthorize.php @@ -196,12 +196,6 @@ class ApiOauthAuthorizeAction extends Action ) ); - // XXX: Make sure we have a oauth_token_association table. The table - // is now in the main schema, but because it is being added with - // a point release, it's unlikely to be there. This code can be - // removed as of 1.0. - $this->ensureOauthTokenAssociationTable(); - $tokenAssoc = new Oauth_token_association(); $tokenAssoc->profile_id = $user->id; @@ -295,30 +289,6 @@ class ApiOauthAuthorizeAction extends Action } } - // XXX Remove this function when we hit 1.0 - function ensureOauthTokenAssociationTable() - { - $schema = Schema::get(); - - $reqTokenCols = array( - new ColumnDef('profile_id', 'integer', null, true, 'PRI'), - new ColumnDef('application_id', 'integer', null, true, 'PRI'), - new ColumnDef('token', 'varchar', 255, true, 'PRI'), - new ColumnDef('created', 'datetime', null, false), - new ColumnDef( - 'modified', - 'timestamp', - null, - false, - null, - 'CURRENT_TIMESTAMP', - 'on update CURRENT_TIMESTAMP' - ) - ); - - $schema->ensureTable('oauth_token_association', $reqTokenCols); - } - /** * Show body - override to add a special CSS class for the authorize * page's "desktop mode" (minimal display) diff --git a/classes/Oauth_token_association.php b/classes/Oauth_token_association.php index 66be22b5d3..40527fa742 100644 --- a/classes/Oauth_token_association.php +++ b/classes/Oauth_token_association.php @@ -39,4 +39,23 @@ class Oauth_token_association extends Memcached_DataObject return empty($result) ? null : $oau; } + + public static function schemaDef() + { + return array( + 'description' => 'Associate an application ID and profile ID with an OAuth token', + 'fields' => array( + 'profile_id' => array('type' => 'int', 'not null' => true, 'description' => 'associated user'), + 'application_id' => array('type' => 'int', 'not null' => true, 'description' => 'the application'), + 'token' => array('type' => 'varchar', 'length' => '255', 'not null' => true, 'description' => 'token used for this association'), + 'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'), + 'modified' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was modified'), + ), + 'primary key' => array('profile_id', 'application_id', 'token'), + 'foreign keys' => array( + 'oauth_token_association_profile_fkey' => array('profile_id', array('profile' => 'id')), + 'oauth_token_association_application_fkey' => array('application_id', array('application' => 'id')), + ) + ); + } } diff --git a/db/core.php b/db/core.php index 626672bf5f..fe9f4735d9 100644 --- a/db/core.php +++ b/db/core.php @@ -1110,3 +1110,5 @@ $schema['schema_version'] = array( $schema['group_join_queue'] = Group_join_queue::schemaDef(); $schema['subscription_queue'] = Subscription_queue::schemaDef(); + +$schema['oauth_token_association'] = Oauth_token_association::schemaDef();