[TYPO3-UG Italy] Aggiungere un fe_group in fase di creazione di un fe_user

Gianpaolo Scrigna letsjump at gmail.com
Mon Mar 10 16:17:57 CET 2014


Ciao a tutti.
Sto sviluppando una estensione personalizzata per typo3 > 6.1 con extbase.
Tra le varie cose, crea un nuovo fe_user in base ai dati ricevuti da una
form.
Tutto bene finchè non tento di assegnargli un fe_group predefinito.
Ecco il repository:

class WizardRepository extends \TYPO3\CMS\Extbase\Persistence\Repository {
/**
     * frontEndUserRepository
     *
     * @var \TYPO3\CMS\Extbase\Domain\Repository\FrontendUserRepository
     * @inject
     */
    protected $frontEndUserRepository;

    /**
     * frontEndUserGroup
     *
     * @var \TYPO3\CMS\Extbase\Domain\Repository\FrontendUserGroupRepository
     * @inject
     */
    protected $frontEndUserGroupRepository;

    /**
     * persistence manager
     *
     * @var \TYPO3\CMS\Extbase\Persistence\PersistenceManagerInterface
     * @inject
     */
    protected $persistenceManager;

    /**
     * instanzia la sessione
     *
     * @return
     */
    public function __construct() {
        session_start();
        parent::__construct();
    }

    ... altri metodi ...

    public function addFeUser($array, $settings) {

            $user = new $this->frontEndUserRepository;

            $user->setEmail($args['p-email']);
            $user->setUsername($args['p-email']);
            $user->setName($args['p-nome']);
            ...
            $groupObj = $this->frontEndUserGroupRepository->findOneByUid(2);
            $user->setUsergroup($groupObj);

            $add = $this->frontEndUserRepository->add($user);

            $this->persistenceManager->persistAll();

            return $user;
    }

Commentando la riga $user->setUsergroup($groupObj); l'utente viene
correttamente scritto a DB e restituito dal metodo, invece tentando di
assegnargli il gruppo ottengo l'errore

*#1: PHP Catchable Fatal Error: Argument 1 passed to
TYPO3\CMS\Extbase\Domain\Model\FrontendUser::setUsergroup() must be an
instance of TYPO3\CMS\Extbase\Persistence\ObjectStorage, instance of
TYPO3\CMS\Extbase\Domain\Model\FrontendUserGroup given, called in
/home/www/mydir/typo3conf/ext/myext/Classes/Domain/Repository/WizardRepository.php
on line 191 and defined in
/home/letsjump/www/0-LIBS/typo3/typo3_src-6.1.7/typo3/sysext/extbase/Classes/Domain/Model/FrontendUser.php
line 200*

Dove sbaglio? Qualcuno ha esperienza nell'instanziare oggetti con
objectManager e namespaces? In giro trovo poca documentazione e molto
confusa.

Grazie in anticipo!


More information about the TYPO3-UG-Italy mailing list