tl_content::checkPermission PHP Method

checkPermission() public method

Check permissions to edit table tl_content
public checkPermission ( )
    public function checkPermission()
    {
        /** @var Symfony\Component\HttpFoundation\Session\SessionInterface $objSession */
        $objSession = System::getContainer()->get('session');
        // Prevent deleting referenced elements (see #4898)
        if (Input::get('act') == 'deleteAll') {
            $objCes = $this->Database->prepare("SELECT cteAlias FROM tl_content WHERE (ptable='tl_article' OR ptable='') AND type='alias'")->execute();
            $session = $objSession->all();
            $session['CURRENT']['IDS'] = array_diff($session['CURRENT']['IDS'], $objCes->fetchEach('cteAlias'));
            $objSession->replace($session);
        }
        if ($this->User->isAdmin) {
            return;
        }
        // Get the pagemounts
        $pagemounts = array();
        foreach ($this->User->pagemounts as $root) {
            $pagemounts[] = $root;
            $pagemounts = array_merge($pagemounts, $this->Database->getChildRecords($root, 'tl_page'));
        }
        $pagemounts = array_unique($pagemounts);
        // Check the current action
        switch (Input::get('act')) {
            case 'paste':
                // Allow
                break;
            case '':
                // empty
            // empty
            case 'create':
            case 'select':
                // Check access to the article
                $this->checkAccessToElement(CURRENT_ID, $pagemounts, true);
                break;
            case 'editAll':
            case 'deleteAll':
            case 'overrideAll':
            case 'cutAll':
            case 'copyAll':
                // Check access to the parent element if a content element is moved
                if (Input::get('act') == 'cutAll' || Input::get('act') == 'copyAll') {
                    $this->checkAccessToElement(Input::get('pid'), $pagemounts, Input::get('mode') == 2);
                }
                $objCes = $this->Database->prepare("SELECT id FROM tl_content WHERE (ptable='tl_article' OR ptable='') AND pid=?")->execute(CURRENT_ID);
                $session = $objSession->all();
                $session['CURRENT']['IDS'] = array_intersect($session['CURRENT']['IDS'], $objCes->fetchEach('id'));
                $objSession->replace($session);
                break;
            case 'cut':
            case 'copy':
                // Check access to the parent element if a content element is moved
                $this->checkAccessToElement(Input::get('pid'), $pagemounts, Input::get('mode') == 2);
                // NO BREAK STATEMENT HERE
            // NO BREAK STATEMENT HERE
            default:
                // Check access to the content element
                $this->checkAccessToElement(Input::get('id'), $pagemounts);
                break;
        }
    }