/**
  * Returns the related sfGuardUser.
  *
  * @return sfGuardUser
  */
 public function getGuardUser()
 {
     if (!$this->user && ($id = $this->getApiUserId())) {
         //$this->user = Doctrine_Core::getTable('sfGuardUser')->find($id);
         $data = Api::getInstance()->get('user/' . $this->_user_id);
         $this->user = ApiDoctrine::createObject('sfGuardUser', $data['body']);
         if (!$this->user) {
             // the user does not exist anymore in the database
             $this->signOut();
             throw new sfException('The user does not exist anymore.');
         }
     }
     return $this->user;
 }
 protected function processForm(sfWebRequest $request, EpisodeForm $form)
 {
     $form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName()));
     if ($form->isValid()) {
         $form->processValues($form->getValues());
         $auth_key = $this->getUser()->getApiAuthKey();
         if ($form->getValue('id')) {
             // Update existing item.
             $values = $form->getTaintedValues();
             if ($form->getValue('audio_file_delete') == true) {
                 if (!$form->getObject()->getApprovedAt() && !$form->getObject()->getSubmittedAt()) {
                     $values['audio_file'] = null;
                     $values['nice_filename'] = null;
                     $form->getObject()->removeFileFromApplicationBucket($form->getObject()->getAudioFile(), 'audio');
                     unlink(sfConfig::get('sf_data_dir') . '/temp/' . $form->getObject()->getAudioFile());
                 }
             }
             if ($form->getValue('graphic_file_delete') == true) {
                 if (!$form->getObject()->getApprovedAt()) {
                     $values['graphic_file'] = null;
                     $form->getObject()->removeFileFromApplicationBucket($form->getObject()->getGraphicFile(), 'upload');
                     unlink(sfConfig::get('sf_web_dir') . '/uploads/graphics/' . $form->getObject()->getGraphicFile());
                 }
             }
             unset($values['_csrf_token'], $values['id'], $values['graphic_file_delete'], $values['audio_file_delete']);
             $episode = $form->getObject();
             if (!array_key_exists('is_nsfw', $values) && $episode->getIsNsfw()) {
                 $values['is_nsfw'] = 0;
             }
             foreach ($values as $key => $value) {
                 if ($value == "on") {
                     $values[$key] = 1;
                 }
                 if ($value == "off") {
                     $values[$key] = 0;
                 }
             }
             $id = $episode->getId();
             $result = Api::getInstance()->setUser($auth_key)->put('episode/' . $id, $values);
             $success = $this->checkHttpCode($result, 'put', 'episode/' . $id, json_encode($values));
             if ($success) {
                 $this->getUser()->setFlash('notice', 'Episode was saved successfully.');
             }
             $test_episode = ApiDoctrine::createObject('Episode', $result['body']);
             $episode = $test_episode ? $test_episode : $episode;
         }
         $this->redirect('episode/edit?id=' . $episode->getId());
     }
 }
 protected function processForm(sfWebRequest $request, sfForm $form)
 {
     $form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName()));
     if ($form->getValue('recipient_id') == $this->getUser()->getApiUserId()) {
         $this->getUser()->setFlash('error', 'You cannot sent messages to yourself.');
         $this->redirect('message');
     }
     if ($form->isValid() && $this->getUser()->getApiUserId()) {
         $auth_key = $this->getUser()->getApiAuthKey();
         if ($form->getValue('id')) {
             // Update existing item.
             $values = $form->getObject()->getModified();
             $message = $form->getObject();
             unset($values['id']);
             $id = $form->getValue('id');
             $result = Api::getInstance()->setUser($auth_key)->put('message/' . $id, $values);
             $success = $this->checkHttpCode($result, 'put', 'message/' . $id, json_encode($values));
             if ($success) {
                 $this->getUser()->setFlash('notice', 'Message was edited successfully.');
             }
             $test_message = ApiDoctrine::createObject('Message', $result['body']);
             $message = $test_message ? $test_message : $message;
         } else {
             // Create new item
             $values = $form->getValues();
             $message = $form->getObject();
             foreach ($values as $key => $value) {
                 if (is_null($value)) {
                     unset($values[$key]);
                 }
             }
             if (!array_key_exists('sender_id', $values)) {
                 $values['sender_id'] = $this->getUser()->getApiUserId();
             }
             $result = Api::getInstance()->setUser($auth_key)->post('message', $values);
             $success = $this->checkHttpCode($result, 'post', 'message', json_encode($values));
             if ($success) {
                 $this->getUser()->setFlash('notice', 'Message was sent successfully.');
             }
         }
         if (!$this->getUser()->getApiUserId()) {
             $this->getUser()->setFlash('error', 'You are not logged in!');
         }
         $this->redirect('message');
     }
 }
 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');
     }
 }
 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();
         if ($form->getValue('id')) {
             // Update existing item.
             $values = $form->getValues();
             $id = $form->getValue('id');
             $subreddit = $form->getObject();
             $subreddit_array = $subreddit->toArray();
             foreach ($subreddit_array as $key => $value) {
                 if (array_key_exists($key, $values) && $values[$key] == $subreddit_array[$key]) {
                     unset($values[$key]);
                 }
             }
             if (array_key_exists('is_active', $values)) {
                 $values['is_active'] = (bool) $values['is_active'] ? 1 : 0;
             }
             if (count($values)) {
                 $result = Api::getInstance()->setUser($auth_key)->put('subreddit/' . $id, $values);
                 $success = $this->checkHttpCode($result, 'put', 'subreddit/' . $id, json_encode($values));
                 if ($success) {
                     $this->getUser()->setFlash('notice', 'Subreddit was edited successfully.');
                 }
                 $test_subreddit = ApiDoctrine::createObject('Subreddit', $result['body']);
                 $subreddit = $test_subreddit ? $test_subreddit : $subreddit;
             }
         } else {
             // Create new item
             $values = $form->getValues();
             $subreddit = $form->getObject();
             foreach ($values as $key => $value) {
                 if (is_null($value)) {
                     unset($values[$key]);
                 }
             }
             $result = Api::getInstance()->setUser($auth_key)->post('subreddit', $values);
             $success = $this->checkHttpCode($result, 'post', 'subreddit', json_encode($values));
             if ($success) {
                 $this->getUser()->setFlash('notice', 'Episode was created successfully.');
             }
             $test_subreddit = ApiDoctrine::createObject('Subreddit', $result['body']);
             $subreddit = $test_subreddit ? $test_subreddit : $subreddit;
             if (is_null($subreddit->getIncremented())) {
                 $this->redirect('subreddit');
             }
         }
         $this->redirect('subreddit/edit?id=' . $subreddit->getId());
     }
 }