/** * @method POST */ function save($pageUniqId) { // get an authuser $authUser = new AuthUser(); if (isset($authUser->UserUniqId)) { // check if authorized parse_str($this->request->data, $request); // parse request $content = $request['content']; $status = $request['status']; // draft or publish $image = $request['image']; // get page and site $page = Page::GetByPageUniqId($pageUniqId); $site = Site::GetBySiteId($authUser->SiteId); // default is root $pageTypeUniqId = -1; // determine if file is in sub-direcotry if ($page['PageTypeId'] != -1) { $pageType = PageType::GetByPageTypeId($page['PageTypeId']); // set page type $pageTypeUniqId = $pageType['PageTypeUniqId']; } // get permissions $canEdit = Utilities::CanPerformAction($pageTypeUniqId, $authUser->CanEdit); $canPublish = Utilities::CanPerformAction($pageTypeUniqId, $authUser->CanPublish); // check permissions if ($canEdit == false && $canPublish == false) { return new Tonic\Response(Tonic\Response::UNAUTHORIZED); } // publish fragment Publish::PublishFragment($site['FriendlyId'], $page['PageUniqId'], $status, $content); $url = ''; // edit timestamp Page::EditTimestamp($page['PageUniqId'], $authUser->UserId); // publish if status is set to publish and the user can publish if ($status == 'publish' && $canPublish == true) { Page::SetIsActive($page['PageUniqId'], 1); $url = Publish::PublishPage($page['PageUniqId'], false, true); Page::EditImage($page['PageUniqId'], $image, $authUser->UserId); } // 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); } }