is_logged_in() && $TeKe->has_access(ACCESS_CAN_EDIT)) {
$response = new AJAXResponse();
$task = ProjectManager::getTaskById(get_input('task_id'));
if (!($task instanceof Task)) {
$TeKe->add_system_message(_("No such task."), 'error');
$response->setMessages();
echo $response->getJSON();
exit;
}
$project = $task->getProjectObject();
// TODO Possibly admin should be allowed to see stuff
if (!(($project instanceof Project) && ($project->isMember(get_logged_in_user_id())))) {
$TeKe->add_system_message(_("No project or insufficient privileges."), 'error');
$response->setMessages();
echo $response->getJSON();
exit;
}
$resource = new Resource(get_input('resource_id'));
if (!$resource->getId()) {
$TeKe->add_system_message(_("No such resource."), 'error');
$response->setMessages();
echo $response->getJSON();
exit;
}
if (!$task->isAssociatedResource($resource->getId())) {
$TeKe->add_system_message(_("Resource is not associated with this task."), 'error');
$response->setMessages();
echo $response->getJSON();
exit;
}
if ($task->removeAssociatedResource($resource)) {
$response->setStateSuccess();
$TeKe->add_system_message(sprintf(_("%s removed from task %s."), $resource->getTitle(), $task->getTitle()));
$response->setMessages();
} else {
$TeKe->add_system_message(_("Resource could not be removed from task."), 'error');
$response->setMessages();
}
echo $response->getJSON();
exit;
}