We are no longer offering accounts on this server. Consider https://gitlab.freedesktop.org/ as a place to host projects.

Commit 292e7895 authored by Evan Prodromou's avatar Evan Prodromou

delete a notice using AtomPub

parent 43a67b15
......@@ -110,7 +110,17 @@ class ApiStatusesShowAction extends ApiPrivateAuthAction
return;
}
$this->showNotice();
switch ($_SERVER['REQUEST_METHOD']) {
case 'GET':
$this->showNotice();
break;
case 'DELETE':
$this->deleteNotice();
break;
default:
$this->clientError(_('HTTP method not supported.'), 405);
return;
}
}
/**
......@@ -213,4 +223,30 @@ class ApiStatusesShowAction extends ApiPrivateAuthAction
return null;
}
function deleteNotice()
{
if ($this->format != 'atom') {
$this->clientError(_("Can only delete using the Atom format."));
return;
}
if (empty($this->auth_user) ||
($this->notice->profile_id != $this->auth_user->id &&
!$this->auth_user->hasRight(Right::DELETEOTHERSNOTICE))) {
$this->clientError(_('Can\'t delete this notice.'), 403);
return;
}
if (Event::handle('StartDeleteOwnNotice', array($this->auth_user, $this->notice))) {
$this->notice->delete();
Event::handle('EndDeleteOwnNotice', array($this->auth_user, $this->notice));
}
// @fixme is there better output we could do here?
header('HTTP/1.1 200 OK');
header('Content-Type: text/plain');
print(sprintf(_('Deleted notice %d'), $this->notice->id));
print("\n");
}
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment