forked from GNUsocial/gnu-social
enable block API
darcs-hash:20081208185728-5ed1f-8d5f6be6decfbb50deb4ca50bee13404d0c51b72.gz
This commit is contained in:
parent
cd5eec767a
commit
ef3d487ae0
@ -118,41 +118,13 @@ class BlockAction extends Action {
|
||||
return;
|
||||
}
|
||||
|
||||
# Add a new block record
|
||||
|
||||
$block = new Profile_block();
|
||||
|
||||
# Begin a transaction
|
||||
|
||||
$block->query('BEGIN');
|
||||
|
||||
$block->blocker = $cur->id;
|
||||
$block->blocked = $this->profile->id;
|
||||
|
||||
$result = $block->insert();
|
||||
$result = $cur->block($this->profile);
|
||||
|
||||
if (!$result) {
|
||||
common_log_db_error($block, 'INSERT', __FILE__);
|
||||
$this->server_error(_('Could not save new block record.'));
|
||||
$this->server_error(_('Failed to save block information.'));
|
||||
return;
|
||||
}
|
||||
|
||||
# Cancel their subscription, if it exists
|
||||
|
||||
$sub = Subscription::pkeyGet(array('subscriber' => $this->profile->id,
|
||||
'subscribed' => $cur->id));
|
||||
|
||||
if ($sub) {
|
||||
$result = $sub->delete();
|
||||
if (!$result) {
|
||||
common_log_db_error($sub, 'DELETE', __FILE__);
|
||||
$this->server_error(_('Could not delete subscription.'));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
$block->query('COMMIT');
|
||||
|
||||
# Now, gotta figure where we go back to
|
||||
|
||||
foreach ($this->args as $k => $v) {
|
||||
|
@ -24,13 +24,40 @@ require_once(INSTALLDIR.'/lib/twitterapi.php');
|
||||
class TwitapiblocksAction extends TwitterapiAction {
|
||||
|
||||
function create($args, $apidata) {
|
||||
|
||||
parent::handle($args);
|
||||
common_server_error(_('API method under construction.'), $code=501);
|
||||
|
||||
$blockee = $this->get_user($apidata['api_arg'], $apidata);
|
||||
|
||||
if (!$blockee) {
|
||||
$this->client_error('Not Found', 404, $apidata['content-type']);
|
||||
return;
|
||||
}
|
||||
|
||||
$user = $apidata['user'];
|
||||
|
||||
if ($user->hasBlocked($blockee) || $user->block($blockee)) {
|
||||
$this->show_profile($blockee, $apidata['content-type']);
|
||||
} else {
|
||||
common_server_error(_('Block user failed.'));
|
||||
}
|
||||
}
|
||||
|
||||
function destroy($args, $apidata) {
|
||||
parent::handle($args);
|
||||
common_server_error(_('API method under construction.'), $code=501);
|
||||
$blockee = $this->get_user($apidata['api_arg'], $apidata);
|
||||
|
||||
if (!$blockee) {
|
||||
$this->client_error('Not Found', 404, $apidata['content-type']);
|
||||
return;
|
||||
}
|
||||
|
||||
$user = $apidata['user'];
|
||||
|
||||
if (!$user->hasBlocked($blockee) || $user->unblock($blockee)) {
|
||||
$this->show_profile($blockee, $apidata['content-type']);
|
||||
} else {
|
||||
common_server_error(_('Unblock user failed.'));
|
||||
}
|
||||
}
|
||||
}
|
@ -67,20 +67,10 @@ class UnblockAction extends Action {
|
||||
|
||||
$cur = common_current_user();
|
||||
|
||||
# Get the block record
|
||||
|
||||
$block = Profile_block::get($cur->id, $this->profile->id);
|
||||
|
||||
if (!$block) {
|
||||
$this->client_error(_('That user is not blocked!'));
|
||||
return;
|
||||
}
|
||||
|
||||
$result = $block->delete();
|
||||
$result = $cur->unblock($this->profile);
|
||||
|
||||
if (!$result) {
|
||||
common_log_db_error($block, 'DELETE', __FILE__);
|
||||
$this->server_error(_('Could not delete block record.'));
|
||||
$this->server_error(_('Error removing the block.'));
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -422,4 +422,63 @@ class User extends Memcached_DataObject
|
||||
function setSelfTags($newtags) {
|
||||
return Profile_tag::setTags($this->id, $this->id, $newtags);
|
||||
}
|
||||
|
||||
function block($other) {
|
||||
|
||||
# Add a new block record
|
||||
|
||||
$block = new Profile_block();
|
||||
|
||||
# Begin a transaction
|
||||
|
||||
$block->query('BEGIN');
|
||||
|
||||
$block->blocker = $this->id;
|
||||
$block->blocked = $other->id;
|
||||
|
||||
$result = $block->insert();
|
||||
|
||||
if (!$result) {
|
||||
common_log_db_error($block, 'INSERT', __FILE__);
|
||||
return false;
|
||||
}
|
||||
|
||||
# Cancel their subscription, if it exists
|
||||
|
||||
$sub = Subscription::pkeyGet(array('subscriber' => $other->id,
|
||||
'subscribed' => $this->id));
|
||||
|
||||
if ($sub) {
|
||||
$result = $sub->delete();
|
||||
if (!$result) {
|
||||
common_log_db_error($sub, 'DELETE', __FILE__);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
$block->query('COMMIT');
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
function unblock($other) {
|
||||
|
||||
# Get the block record
|
||||
|
||||
$block = Profile_block::get($this->id, $other->id);
|
||||
|
||||
if (!$block) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$result = $block->delete();
|
||||
|
||||
if (!$result) {
|
||||
common_log_db_error($block, 'DELETE', __FILE__);
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user