function perform(&$request, &$response)
	{
		if($request->has_attribute('popup'))
		  $response->write(close_popup_no_parent_reload_response());
	
	  $request->set_status(REQUEST_STATUS_FAILURE);
	  
		if(!$version = $request->get_attribute('version'))
			return;

		if(!$node_id = $request->get_attribute('version_node_id'))
	    return;
			
		if(!$site_object = wrap_with_site_object(fetch_one_by_node_id((int)$node_id)))
			return;
		
		if(!is_subclass_of($site_object, 'content_object'))
			return;

		if(!$site_object->recover_version((int)$version))
		  return;

		if($request->has_attribute('popup'))
		  $response->write(close_popup_response($request));
	
	  $request->set_status(REQUEST_STATUS_SUCCESS);
	}
 function _valid_perform(&$request, &$response)
 {
     if (!($class_id = $request->get_attribute('class_id'))) {
         error('class_id not defined', __FILE__ . ' : ' . __LINE__ . ' : ' . __FUNCTION__);
     }
     $data = $this->dataspace->export();
     $access_policy =& access_policy::instance();
     $access_policy->save_group_action_access_template($class_id, $data['template']);
     $request->set_status(REQUEST_STATUS_FORM_SUBMITTED);
     if ($request->has_attribute('popup')) {
         $response->write(close_popup_no_parent_reload_response());
     }
 }
  function _valid_perform(&$request, &$response)
  {
    if (!$controller_id = $request->get_attribute('controller_id'))
    {
      error('controller_id not defined',
       __FILE__ . ' : ' . __LINE__ . ' : ' .  __FUNCTION__);
    }

    $data = $this->dataspace->export();
    $access_policy =& access_policy :: instance();

    $access_policy->save_action_access($controller_id, $data['policy'], ACCESSOR_TYPE_GROUP);

    $request->set_status(REQUEST_STATUS_FORM_SUBMITTED);

    if($request->has_attribute('popup'))
      $response->write(close_popup_no_parent_reload_response());
  }