Admin_EmailController::blacklistAction PHP Method

blacklistAction() public method

public blacklistAction ( )
    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);
    }