. /** * Table Definition for oauth_application_user */ defined('GNUSOCIAL') || die(); class Oauth_application_user extends Managed_DataObject { ###START_AUTOCODE /* the code below is auto generated do not remove the above tag */ public $__table = 'oauth_application_user'; // table name public $profile_id; // int(4) primary_key not_null public $application_id; // int(4) primary_key not_null public $access_type; // tinyint(1) public $token; // varchar(191) not 255 because utf8mb4 takes more space public $created; // datetime() public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE public static function schemaDef() { return array( 'fields' => array( 'profile_id' => array('type' => 'int', 'not null' => true, 'description' => 'user of the application'), 'application_id' => array('type' => 'int', 'not null' => true, 'description' => 'id of the application'), 'access_type' => array('type' => 'int', 'size' => 'tiny', 'default' => 0, 'description' => 'access type, bit 1 = read, bit 2 = write'), 'token' => array('type' => 'varchar', 'length' => 191, 'description' => 'request or access token'), 'created' => array('type' => 'datetime', 'description' => 'date this record was created'), 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), ), 'primary key' => array('profile_id', 'application_id'), 'foreign keys' => array( 'oauth_application_user_profile_id_fkey' => array('profile', array('profile_id' => 'id')), 'oauth_application_user_application_id_fkey' => array('oauth_application', array('application_id' => 'id')), ), 'indexes' => array( 'oauth_application_user_application_id_idx' => array('application_id'), ), ); } public static function getByUserAndToken($user, $token) { if (empty($user) || empty($token)) { return null; } $oau = new Oauth_application_user(); $oau->profile_id = $user->id; $oau->token = $token; $oau->limit(1); $result = $oau->find(true); return empty($result) ? null : $oau; } public function updateKeys(&$orig) { $this->_connect(); $parts = array(); foreach (array('profile_id', 'application_id', 'token', 'access_type') as $k) { if (strcmp($this->$k, $orig->$k) != 0) { $parts[] = $k . ' = ' . $this->_quote($this->$k); } } if (count($parts) == 0) { // No changes return true; } $toupdate = implode(', ', $parts); $toupdate .= ', modified = CURRENT_TIMESTAMP'; $table = $this->tableName(); $tableName = $this->escapedTableName(); $qry = 'UPDATE ' . $tableName . ' SET ' . $toupdate . ' WHERE profile_id = ' . $orig->profile_id . ' AND application_id = ' . $orig->application_id . " AND token = '" . $orig->token . "'"; $orig->decache(); $result = $this->query($qry); if ($result) { $this->encache(); } return $result; } }