/** * @method POST */ function post() { // get token $token = Utilities::ValidateJWTToken(apache_request_headers()); // check if token is not null if ($token != NULL) { $site = Site::GetBySiteId($token->SiteId); $user = User::GetByUserId($token->UserId); // creates an access object $access = Utilities::SetAccess($user); parse_str($this->request->data, $request); // parse request $pageId = $request['pageId']; $content = $request['content']; $status = $request['status']; // draft or publish $image = $request['image']; // get page and site $page = Page::GetByPageId($pageId); // default is root $pageTypeId = -1; $pageType = NULL; // determine if file is in sub-direcotry if ($page['PageTypeId'] != -1) { $pageType = PageType::GetByPageTypeId($page['PageTypeId']); // set page type $pageTypeId = $pageType['PageTypeId']; } // get permissions $canEdit = Utilities::CanPerformAction($pageTypeId, $access['CanEdit']); $canPublish = Utilities::CanPerformAction($pageTypeId, $access['CanPublish']); // check permissions if ($canEdit == false && $canPublish == false) { return new Tonic\Response(Tonic\Response::UNAUTHORIZED); } // save content if ($status == 'publish') { Page::EditContent($pageId, $content, $token->UserId); } else { // save draft Page::EditDraft($pageId, $content, $token->UserId); } $url = ''; // publish if status is set to publish and the user can publish if ($status == 'publish' && $canPublish == true) { // set active Page::SetIsActive($page['PageId'], 1); // publish page $url = Publish::PublishPage($page['PageId'], false, true); // edit image Page::EditImage($page['PageId'], $image, $token->UserId); // if page is include only, republish content if ($page['IncludeOnly'] == 1) { Publish::PublishContent($page['SiteId']); } } // return successful response $response = new Tonic\Response(Tonic\Response::OK); $response->contentType = 'text/html'; $response->body = $url; return $response; } else { // unauthorized access return new Tonic\Response(Tonic\Response::UNAUTHORIZED); } }