[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