Guten Tag,

ich möchte über einen Service ein paar Funktionen einbinden, um vor dem Ausführen einiger Funktionen zu prüfen ob der Benutzer berächtigt ist daszu. Hierzu habe ich einen Service erstellt aber es klappt irgendwie nicht. Wenn ich die Funktion direkt in den Controller schreibe, macht sie was sie soll. Wenn ich die gleich Funktion über den Service einbinde kommt folgender Fehler:

Call to a member function hasLoggedInFrontendUser() on a non-object in

Im folgenden ein Ausschnitt aus dem Controller und dem Service:

Classes/Service/AccessControlService.php

<?php
namespace AndreasReimund\Fsanmeldung\Service;

class AccessControlService implements \TYPO3\CMS\Core\SingletonInterface {
    public function hasLoggedInFrontendUser() {
        return $GLOBALS['TSFE']->loginUser === 1 ? TRUE : FALSE;
    }
}

Classes/Controller/ElternController.php

<?php
namespace AndreasReimund\Fsanmeldung\Controller;
class ElternController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController {
    /**
     * elternRepository
     *
     * @var \AndreasReimund\Fsanmeldung\Domain\Repository\ElternRepository
     * @inject
     */
    protected $elternRepository;
    /**
     * @var \AndreasReimund\Fsanmeldung\Service\AccessControlService
     * @inject
    */
    protected $accessControlService;
    /**
     * Eltern Uebersicht
     *
     * @param \AndreasReimund\Fsanmeldung\Domain\Model\Eltern $eltern
     * @param \AndreasReimund\Fsanmeldung\Domain\Model\Kind $kind
     * @return void
     */
public function showAction(\AndreasReimund\Fsanmeldung\Domain\Model\Eltern $eltern) {

        if ($this->accessControlService->hasLoggedInFrontendUser() ) {
$this->addFlashMessage('Sie sind berachtigt', '', \TYPO3\CMS\Core\Messaging\AbstractMessage::ERROR); $this->redirect('confirm',NULL,NULL, array('eltern'=>$eltern));
        }
            else
            {
                if($eltern->getReady()!=1){
        $eltern->setCalculation($eltern->getKind());
$this->objectManager->get('AndreasReimund\\Fsanmeldung\\Domain\\Repository\\ElternRepository')->update($eltern);

            $this->view->assign('eltern', $eltern);

            }
            else
            {
$this->addFlashMessage('Anmeldung wurde bereits abgeschlossen. Aenderungen sind nicht mehr moeglich!', '', \TYPO3\CMS\Core\Messaging\AbstractMessage::ERROR); $this->redirect('confirm',NULL,NULL, array('eltern'=>$eltern));
            }

    }}

Ich komme nicht drauf warum er scheinbar keinen zugriff auf die Funktion bekommt.

Gruß Andreas
_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Antwort per Email an