/** * Set object properties from forceValues in TypoScript * * @param User $user * @param array $settings * @return User $object */ public static function forceValues(User $user, array $settings) { foreach ((array) $settings as $field => $config) { $config = null; if (stristr($field, '.')) { continue; } // value to set $value = self::getContentObject()->cObjGetSingle($settings[$field], $settings[$field . '.']); if ($field === 'usergroup') { // need objectstorage for usergroup field $user->removeAllUsergroups(); $values = GeneralUtility::trimExplode(',', $value, true); $userGroupRepository = self::getUserGroupRepository(); foreach ($values as $usergroupUid) { /** @var UserGroup $usergroup */ $usergroup = $userGroupRepository->findByUid($usergroupUid); $user->addUsergroup($usergroup); } } else { // set value if (method_exists($user, 'set' . ucfirst($field))) { $user->{'set' . ucfirst($field)}($value); } } } return $user; }
/** * Overwrite usergroups from user by flexform settings * * @param User $user * @param array $settings * @param string $controllerName * @return User $object */ public static function overrideUserGroup(User $user, $settings, $controllerName = 'new') { if (!empty($settings[$controllerName]['overrideUserGroup'])) { $user->removeAllUsergroups(); $usergroupUids = GeneralUtility::trimExplode(',', $settings[$controllerName]['overrideUserGroup'], true); foreach ($usergroupUids as $usergroupUid) { /** @var UserGroup $usergroup */ $usergroup = self::getUserGroupRepository()->findByUid($usergroupUid); $user->addUsergroup($usergroup); } } return $user; }