)
);
- // 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;
}
}
- // 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)
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')),
+ )
+ );
+ }
}