[TYPO3-german] Extbase Service einbinden

Alexander Künzl alexanderkuenzl at yahoo.de
Sat Nov 26 19:37:09 CET 2016


Hallo Andreas,

eine Möglichkeit: Deaktiviere die Extension einmal und aktiviere sie 
wieder, sonst findet TYPO3 möglicherweise die neu erstellte 
Service-Klasse nicht.

Viele Grüße

Alex

Am 26.11.2016 um 19:08 schrieb Andreas Reimund:
> 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 at lists.typo3.org
> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german


More information about the TYPO3-german mailing list