public function blacklistAction()
{
if (!$this->getUser()->isAllowed("emails")) {
throw new \Exception("Permission denied, user needs 'emails' permission.");
}
if ($this->getParam("data")) {
$data = \Zend_Json::decode($this->getParam("data"));
if (is_array($data)) {
foreach ($data as &$value) {
$value = trim($value);
}
}
if ($this->getParam("xaction") == "destroy") {
$address = Tool\Email\Blacklist::getByAddress($data);
$address->delete();
$this->_helper->json(["success" => true, "data" => []]);
} elseif ($this->getParam("xaction") == "update") {
$address = Tool\Email\Blacklist::getByAddress($data["address"]);
$address->setValues($data);
$address->save();
$this->_helper->json(["data" => $address, "success" => true]);
} elseif ($this->getParam("xaction") == "create") {
unset($data["id"]);
$address = new Tool\Email\Blacklist();
$address->setValues($data);
$address->save();
$this->_helper->json(["data" => $address, "success" => true]);
}
} else {
// get list of routes
$list = new Tool\Email\Blacklist\Listing();
$list->setLimit($this->getParam("limit"));
$list->setOffset($this->getParam("start"));
$sortingSettings = \Pimcore\Admin\Helper\QueryParams::extractSortingSettings($this->getAllParams());
if ($sortingSettings['orderKey']) {
$orderKey = $sortingSettings['orderKey'];
}
if ($sortingSettings['order']) {
$order = $sortingSettings['order'];
}
if ($this->getParam("filter")) {
$list->setCondition("`address` LIKE " . $list->quote("%" . $this->getParam("filter") . "%"));
}
$data = $list->load();
$this->_helper->json(["success" => true, "data" => $data, "total" => $list->getTotalCount()]);
}
$this->_helper->json(false);
}