configRepository->findSingleton(); if (null === $config) { $config = new ZimbraConfiguration(); } $config->setServerUrl($data->serverUrl); $config->setUsername($data->username); $config->setCalendarPath($data->calendarPath); $config->setEnabled($data->enabled); if (null !== $data->password && '' !== $data->password) { $config->setEncryptedPassword($this->tokenEncryptor->encrypt($data->password)); } $this->em->persist($config); $this->em->flush(); $result = new ZimbraSettings(); $result->serverUrl = $config->getServerUrl(); $result->username = $config->getUsername(); $result->calendarPath = $config->getCalendarPath(); $result->enabled = $config->isEnabled(); $result->hasPassword = $config->hasPassword(); return $result; } }