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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
# Add a new block record
|
$result = $cur->block($this->profile);
|
||||||
|
|
||||||
$block = new Profile_block();
|
|
||||||
|
|
||||||
# Begin a transaction
|
|
||||||
|
|
||||||
$block->query('BEGIN');
|
|
||||||
|
|
||||||
$block->blocker = $cur->id;
|
|
||||||
$block->blocked = $this->profile->id;
|
|
||||||
|
|
||||||
$result = $block->insert();
|
|
||||||
|
|
||||||
if (!$result) {
|
if (!$result) {
|
||||||
common_log_db_error($block, 'INSERT', __FILE__);
|
$this->server_error(_('Failed to save block information.'));
|
||||||
$this->server_error(_('Could not save new block record.'));
|
|
||||||
return;
|
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
|
# Now, gotta figure where we go back to
|
||||||
|
|
||||||
foreach ($this->args as $k => $v) {
|
foreach ($this->args as $k => $v) {
|
||||||
|
@ -24,13 +24,40 @@ require_once(INSTALLDIR.'/lib/twitterapi.php');
|
|||||||
class TwitapiblocksAction extends TwitterapiAction {
|
class TwitapiblocksAction extends TwitterapiAction {
|
||||||
|
|
||||||
function create($args, $apidata) {
|
function create($args, $apidata) {
|
||||||
|
|
||||||
parent::handle($args);
|
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) {
|
function destroy($args, $apidata) {
|
||||||
parent::handle($args);
|
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();
|
$cur = common_current_user();
|
||||||
|
|
||||||
# Get the block record
|
$result = $cur->unblock($this->profile);
|
||||||
|
|
||||||
$block = Profile_block::get($cur->id, $this->profile->id);
|
|
||||||
|
|
||||||
if (!$block) {
|
|
||||||
$this->client_error(_('That user is not blocked!'));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
$result = $block->delete();
|
|
||||||
|
|
||||||
if (!$result) {
|
if (!$result) {
|
||||||
common_log_db_error($block, 'DELETE', __FILE__);
|
$this->server_error(_('Error removing the block.'));
|
||||||
$this->server_error(_('Could not delete block record.'));
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -422,4 +422,63 @@ class User extends Memcached_DataObject
|
|||||||
function setSelfTags($newtags) {
|
function setSelfTags($newtags) {
|
||||||
return Profile_tag::setTags($this->id, $this->id, $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