username = $user->getUsername(); $this->enabled= $user->isEnabled(); if ($user->getUserGroups()) { foreach ($user->getUserGroups() as $userGroup) { $this->userGroups[] = new UserGroupOutput($userGroup); } } if ($user->getAllowedOrganizationalUnits()) { foreach ($user->getAllowedOrganizationalUnits() as $allowedOrganizationalUnit) { $this->allowedOrganizationalUnits[] = new OrganizationalUnitOutput($allowedOrganizationalUnit); } } } public function createOrUpdateEntity(?User $user = null): User { if (!$user) { $user = new User(); } $user->setUsername($this->username); $user->setEnabled($this->enabled); foreach ($this->userGroups as $userGroup) { $userGroupsToAdd[] = $userGroup->getEntity(); } $user->setUserGroups( $userGroupsToAdd ?? [] ); if ($this->password !== null) { $user->setPassword($this->password); } foreach ($this->allowedOrganizationalUnits as $allowedOrganizationalUnit) { $allowedOrganizationalUnitToAdd[] = $allowedOrganizationalUnit->getEntity(); } $user->setAllowedOrganizationalUnits( $allowedOrganizationalUnitToAdd ?? [] ); if ($this->currentPassword !== null) { $user->setCurrentPassword($this->currentPassword); } if ($this->newPassword !== null) { $user->setNewPassword($this->newPassword); } if ($this->repeatNewPassword !== null) { $user->setRepeatNewPassword($this->repeatNewPassword); } return $user; } }