Esempio n. 1
0
 /**
  * Update account information
  *
  * @param  Request $request The current request
  * @return Response
  */
 public function updateAccount(Request $request)
 {
     $registrations = $request->request->get('registrations', []);
     if (false === is_array($registrations)) {
         $this->app->abort(400, '"registrations" parameter must be an array of base ids.');
     }
     $user = $this->getAuthenticatedUser();
     if (0 !== count($registrations)) {
         foreach ($registrations as $baseId) {
             $this->getRegistrationManipulator()->createRegistration($user, \collection::get_from_base_id($this->app, $baseId));
         }
         $this->app->addFlash('success', $this->app->trans('Your registration requests have been taken into account.'));
     }
     $accountFields = ['form_gender', 'form_firstname', 'form_lastname', 'form_address', 'form_zip', 'form_phone', 'form_fax', 'form_function', 'form_company', 'form_activity', 'form_geonameid', 'form_addressFTP', 'form_loginFTP', 'form_pwdFTP', 'form_destFTP', 'form_prefixFTPfolder', 'form_retryFTP'];
     $service = $this->app['accounts.service'];
     if (0 === count(array_diff($accountFields, array_keys($request->request->all())))) {
         $command = new UpdateAccountCommand();
         $command->setGender((int) $request->request->get("form_gender"))->setFirstName($request->request->get("form_firstname"))->setLastName($request->request->get("form_lastname"))->setAddress($request->request->get("form_address"))->setZipCode($request->request->get("form_zip"))->setPhone($request->request->get("form_phone"))->setFax($request->request->get("form_fax"))->setJob($request->request->get("form_activity"))->setCompany($request->request->get("form_company"))->setPosition($request->request->get("form_function"))->setNotifications((bool) $request->request->get("mail_notifications"));
         $service->updateAccount($command);
         $this->getUserManipulator()->setGeonameId($user, $request->request->get("form_geonameid"));
         $ftpCredential = $user->getFtpCredential();
         if (null === $ftpCredential) {
             $ftpCredential = new FtpCredential();
             $ftpCredential->setUser($user);
         }
         $command = new UpdateFtpCredentialsCommand();
         $command->setEnabled($request->request->get("form_activeFTP"));
         $command->setAddress($request->request->get("form_addressFTP"));
         $command->setLogin($request->request->get("form_loginFTP"));
         $command->setPassword($request->request->get("form_pwdFTP"));
         $command->setPassiveMode($request->request->get("form_passifFTP"));
         $command->setFolder($request->request->get("form_destFTP"));
         $command->setFolderPrefix($request->request->get("form_prefixFTPfolder"));
         $command->setRetries($request->request->get("form_retryFTP"));
         $service->updateFtpSettings($command);
         $this->app->addFlash('success', $this->app->trans('login::notification: Changements enregistres'));
     }
     $requestedNotifications = (array) $request->request->get('notifications', []);
     $manipulator = $this->getUserManipulator();
     foreach ($this->getEventManager()->list_notifications_available($user) as $notifications) {
         foreach ($notifications as $notification) {
             $manipulator->setNotificationSetting($user, $notification['id'], isset($requestedNotifications[$notification['id']]));
         }
     }
     return $this->app->redirectPath('account');
 }
Esempio n. 2
0
 public function updateCurrentUserAction(Request $request)
 {
     $service = $this->getAccountService();
     $data = json_decode($request->getContent(false), true);
     $command = new UpdateAccountCommand();
     $command->setEmail(isset($data['email']) ? $data['email'] : null)->setGender(isset($data['gender']) ? $data['gender'] : null)->setFirstName(isset($data['firstname']) ? $data['firstname'] : null)->setLastName(isset($data['lastname']) ? $data['lastname'] : null)->setZipCode(isset($data['zip_code']) ? $data['zip_code'] : null)->setCity(isset($data['city']) ? $data['city'] : null)->setPhone(isset($data['tel']) ? $data['tel'] : null)->setCompany(isset($data['company']) ? $data['company'] : null)->setJob(isset($data['job']) ? $data['job'] : null)->setNotifications(isset($data['notifications']) ? $data['notifications'] : null);
     try {
         $service->updateAccount($command);
         $ret = ['success' => true];
     } catch (AccountException $exception) {
         $ret = ['success' => false, 'message' => _($exception->getMessage())];
     }
     return Result::create($request, $ret)->createResponse();
 }