/** * @param SS_HTTPResponse $r * @return SS_HTTPResponse|void * @throws SS_HTTPResponse_Exception * @throws ValidationException * @throws null */ public function handleCategoryChangeRequest(SS_HTTPResponse $r) { if (!Member::currentUser()) { return $this->httpError(403); } $newCat = $r->postVar('new_cat'); if (!is_numeric($newCat)) { return $this->httpError(500, "Invalid category id"); } $c = PresentationCategory::get()->byID($newCat); if ($c) { $request = SummitCategoryChange::create(); $request->PresentationID = $this->presentation->ID; $request->NewCategoryID = $newCat; $request->ReqesterID = Member::currentUserID(); $request->write(); $this->presentation->addNotification(' {member} submitted a request to change the category from ' . $request->Presentation()->Category()->Title . ' to ' . $c->Title); return new SS_HTTPResponse("change request made.", 200); } }