change how Foreign_link fetches, and fix mixup between user-ids and foreign-ids in twittersettings

darcs-hash:20080923054413-5ed1f-a317e07925101215e87d2db0c574d20c1cfac665.gz
This commit is contained in:
Evan Prodromou 2008-09-23 01:44:13 -04:00
parent 44f7dc2a76
commit 858e55f5b4
2 changed files with 15 additions and 14 deletions

View File

@ -35,7 +35,7 @@ class TwittersettingsAction extends SettingsAction {
$flink = Foreign_link::getForeignLink($user->id, 1); // 1 == Twitter
if ($flink) {
$fuser = Foreign_user::staticGet('user_id', $flink->user_id);
$fuser = Foreign_user::getForeignUser($flink->foreign_id, 1);
}
$this->form_header(_('Twitter settings'), $msg, $success);
@ -54,7 +54,7 @@ class TwittersettingsAction extends SettingsAction {
common_element('a', array('href' => $fuser->uri), $fuser->uri);
common_element('span', 'input_instructions',
_('Current verified Twitter account.'));
common_hidden('flink_user_id', $flink->user_id);
common_hidden('flink_foreign_id', $flink->foreign_id);
common_element_end('p');
common_submit('remove', _('Remove'));
} else {
@ -175,14 +175,14 @@ class TwittersettingsAction extends SettingsAction {
// For now we assume one Twitter acct per Laconica acct
$flink = Foreign_link::getForeignLink($user->id, 1);
$fuser = Foreign_user::getForeignUser($flink->foreign_id, 1);
$flink_user_id = $this->arg('flink_user_id');
$flink_foreign_id = $this->arg('flink_foreign_id');
if (!$flink) {
common_debug("couldn't get flink");
}
# Maybe an old tab open...?
if ($flink->user_id != $flink_user_id) {
if ($flink->foreign_id != $flink_foreign_id) {
common_debug("flink user_id = " . $flink->user_id);
$this->show_form(_('That is not your Twitter account.'));
return;
@ -191,7 +191,7 @@ class TwittersettingsAction extends SettingsAction {
$result = $fuser->delete();
if (!$result) {
common_log_db_error($flink, 'DELETE', __FILE__);
common_log_db_error($fuser, 'DELETE', __FILE__);
$this->show_form(_('Couldn\'t remove Twitter user.'));
return;
}

View File

@ -30,12 +30,11 @@ class Foreign_link extends DB_DataObject
// a getForeignUsers() that returns more than one? --Zach
static function getForeignLink($user_id, $service) {
$flink = new Foreign_link();
$flink->whereAdd("service = $service");
$flink->whereAdd("user_id = $user_id");
$flink->service = $service;
$flink->user_id = $user_id;
$flink->limit(1);
if ($flink->find()) {
$flink->fetch();
if ($flink->find(TRUE)) {
return $flink;
}
@ -43,14 +42,16 @@ class Foreign_link extends DB_DataObject
}
// Convenience method
function getForeignUser() {
function getForeignUser() {
$fuser = new Foreign_user();
$fuser->whereAdd('service = ' . $this->service);
$fuser->whereAdd('id = ' . $this->foreign_id);
$fuser->service = $this->service;
$fuser->id = $this->foreign_id;
$fuser->limit(1);
if ($fuser->find()) {
$fuser->fetch();
if ($fuser->find(TRUE)) {
return $fuser;
}