function perform(&$request, &$response) { if ($request->hasAttribute('popup')) { $response->write(closePopupNoParentReloadResponse()); } $request->setStatus(Request::STATUS_FAILURE); if (!($version = $request->get('version'))) { return; } if (!($node_id = $request->get('version_node_id'))) { return; } $toolkit =& Limb::toolkit(); $datasource =& $toolkit->getDatasource('SingleObjectDatasource'); $datasource->setNodeId($node_id); if (!($site_object = wrapWithSiteObject($datasource->fetch()))) { return; } if (!is_subclass_of($site_object, 'ContentObject')) { return; } if (!$site_object->recoverVersion((int) $version)) { return; } if ($request->hasAttribute('popup')) { $response->write(closePopupResponse($request)); } $request->setStatus(Request::STATUS_SUCCESS); }
protected function _validPerform($request, $response) { if (!($class_id = $request->get('class_id'))) { throw new LimbException('class_id not defined'); } $data = $this->dataspace->export(); $access_policy = new AccessPolicy(); $access_policy->saveAccessTemplates($class_id, $data['template'], AccessPolicy::ACCESSOR_TYPE_GROUP); $request->setStatus(Request::STATUS_FORM_SUBMITTED); if ($request->hasAttribute('popup')) { $response->write(closePopupNoParentReloadResponse()); } }