Re: [TYPO3-german] Extbase Service einbinden

2016-11-26 Diskussionsfäden Andreas Reimund

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

Re: [TYPO3-german] Extbase Service einbinden

2016-11-26 Diskussionsfäden 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

loginUser === 1 ? TRUE : FALSE;
}
}

Classes/Controller/ElternController.php

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