public function executeUpdatedeadline(sfWebRequest $request) { $this->forward404Unless($this->getUser()->isAuthenticated()); $this->forward404Unless($request->isMethod(sfRequest::POST) || $request->isMethod(sfRequest::PUT)); $auth_key = $this->getUser()->getApiAuthKey(); $deadline_data = Api::getInstance()->setUser($auth_key)->get('subredditdeadline/' . $request->getParameter('id'), true); $deadline = ApiDoctrine::createObject('Deadline', $deadline_data['body']); if (!$deadline || !$deadline->getId()) { $deadline = new Deadline(); $deadline->setSubredditId($request->getParameter('subreddit_id')); } $this->subreddit_id = $deadline->getSubredditId(); $subreddit_data = Api::getInstance()->setUser($auth_key)->get('subreddit/' . $this->subreddit_id, true); $this->subreddit = ApiDoctrine::createQuickObject($subreddit_data['body']); $my_membership_data = Api::getInstance()->setUser($auth_key)->get('subredditmembership?sf_guard_user_id=' . $this->getUser()->getApiUserId() . '&subreddit_id=' . $this->subreddit_id, true); $my_membership = is_array($my_membership_data['body']) && array_key_exists(0, $my_membership_data['body']) ? ApiDoctrine::createQuickObject($my_membership_data['body'][0]) : null; $this->forward404Unless($my_membership instanceof ApiDoctrineQuick && in_array($my_membership->getMembership()->getType(), array('admin'))); $this->form = new DeadlineForm($deadline); unset($this->form['subreddit_id']); $this->processDeadlineForm($request, $this->form); if ($deadline && $deadline->getIncremented()) { $this->setTemplate('edit_deadline'); } else { $this->setTemplate('add_deadline'); } }