Pimcore\WorkflowManagement\Workflow\Manager::getAvailableActions PHP Метод

getAvailableActions() публичный Метод

Get the available actions that can be performed on an element
public getAvailableActions ( ) : mixed
Результат mixed
    public function getAvailableActions()
    {
        $status = $this->getElementStatus();
        if (!$this->workflow->isValidStatus($status)) {
            throw new \Exception("Element [{$this->element->getId()}] does not have a valid status [{$status}] within the workflow");
        }
        $availableActions = $this->workflow->getValidGlobalActions();
        $availableActions = array_merge($this->workflow->getValidActionsForStatus($status), $availableActions);
        //check user permissions on available actions
        $allowedActions = [];
        foreach ($availableActions as $actionName) {
            if ($this->userCanPerformAction($actionName)) {
                $allowedActions[$actionName] = $this->workflow->getActionConfig($actionName, $status);
            }
        }
        $result = \Pimcore::getEventManager()->trigger("workflowmanagement.preReturnAvailableActions", $allowedActions, ['manager' => $this]);
        if (!$result->isEmpty()) {
            //get the last set of available actions only
            //todo maybe allow multiple events to controll available actions
            $last = $result->last();
            $allowedActions = $last['availableActions'] ?: $allowedActions;
        }
        return $allowedActions;
    }