Vielen Dank Alex,
dies scheint der richtige Tipp gewesen zu sein. Nun funktioniert es.
Gruß Andreas
Am 26.11.2016 um 19:37 schrieb Alexander Künzl:
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
class AccessControlService implements
\TYPO3\CMS\Core\SingletonInterface {
public function hasLoggedInFrontendUser() {
return $GLOBALS['TSFE']->loginUser === 1 ? TRUE : FALSE;
}
}
Classes/Controller/ElternController.php
* @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
___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german