예제 #1
0
 protected function processForm(sfWebRequest $request, sfForm $form)
 {
     $form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName()));
     if ($form->isValid()) {
         $auth_key = $this->getUser()->getApiAuthKey();
         // Update existing item.
         $values = $form->getTaintedValues();
         $user_id = $form->getValue('id') ? $form->getValue('id') : $this->getUser()->getApiUserId();
         unset($values['_csrf_token'], $values['is_active'], $values['password'], $values['password_again'], $values['groups_list'], $values['permissions_list'], $values['is_validated'], $values['reddit_validation_key'], $values['is_authorized'], $values['email_authorization_key'], $values['authorized_at'], $values['is_super_admin'], $values['algorithm'], $values['id'], $values['salt'], $values['last_login']);
         if ($form->getValue('password')) {
             $values['password'] = $form->getValue('password');
         }
         $user_data = Api::getInstance()->get('user/' . $user_id);
         $user = ApiDoctrine::createObject('sfGuardUser', $user_data['body']);
         $user_values = $user->toArray();
         foreach ($values as $key => $value) {
             if ($value == $user_values[$key]) {
                 unset($values[$key]);
             }
         }
         if (array_key_exists('id', $values)) {
             unset($values['id']);
         }
         $id = $this->getUser()->getApiUserId();
         $result = Api::getInstance()->setUser($auth_key)->put('user/' . $id, $values);
         $success = $this->checkHttpCode($result, 'put', 'user/' . $id, json_encode($values));
         if ($success) {
             $this->getUser()->setFlash('notice', 'Profile was edited successfully.');
         }
         $this->redirect('profile');
     }
 }
 /**
  * Make error messge
  *
  * Display incoming data and errors list
  *
  * @param sfForm $form
  * @param string $message
  */
 protected function makeErrorMess(sfForm $form, $message)
 {
     return sprintf("%s\n\nErrors: %s\n\nInput:\n%s", $message, $form->getErrorSchema(), var_export($form->getTaintedValues(), true));
 }