Esempio n. 1
0
 /**
  * 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;
 }
Esempio n. 2
0
 /**
  * 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;
 }