Browse Source

#512 Allow the CLI mode for export.php

git-svn-id: http://svn.code.sf.net/p/itop/code/trunk@1749 a333f486-631f-4898-b8df-5754b55c2be0
romainq 13 years ago
parent
commit
031dc7b688
1 changed files with 41 additions and 13 deletions
  1. 41 13
      webservices/export.php

+ 41 - 13
webservices/export.php

@@ -29,6 +29,7 @@ require_once(APPROOT.'/application/application.inc.php');
 require_once(APPROOT.'/application/nicewebpage.class.inc.php');
 require_once(APPROOT.'/application/csvpage.class.inc.php');
 require_once(APPROOT.'/application/xmlpage.class.inc.php');
+require_once(APPROOT.'/application/clipage.class.inc.php');
 
 require_once(APPROOT.'/application/startup.inc.php');
 
@@ -43,11 +44,31 @@ catch(Exception $e)
 	exit -2;
 }
 
-require_once(APPROOT.'/application/loginwebpage.class.inc.php');
-LoginWebPage::DoLogin(); // Check user rights and prompt if needed
-
+if (utils::IsModeCLI()) 
+{
+	$sAuthUser = utils::ReadParam('auth_user', null, true /* Allow CLI */, 'raw_data'); 
+	$sAuthPwd = utils::ReadParam('auth_pwd', null, true /* Allow CLI */, 'raw_data'); 
+
+	if (UserRights::CheckCredentials($sAuthUser, $sAuthPwd)) 
+	{ 
+		UserRights::Login($sAuthUser); // Login & set the user's language 
+	} 
+	else 
+	{ 
+		$oP = new CLIPage("iTop - Export"); 
+		$oP->p("Access restricted or wrong credentials ('$sAuthUser')"); 
+		$oP->output(); 
+		exit -1; 
+	}
+} 
+else 
+{
+	require_once(APPROOT.'/application/loginwebpage.class.inc.php'); 
+	LoginWebPage::DoLogin(); // Check user rights and prompt if needed 
+}
 ApplicationContext::SetUrlMakerClass('iTopStandardURLMaker');
 
+
 $sOperation = utils::ReadParam('operation', 'menu');
 $oAppContext = new ApplicationContext();
 $iActiveNodeId = utils::ReadParam('menu', -1);
@@ -71,7 +92,7 @@ if (strlen($sExpression) == 0)
 }
 
 
-$sFormat = strtolower(utils::ReadParam('format', 'html'));
+$sFormat = strtolower(utils::ReadParam('format', 'html', true /* Allow CLI */));
 
 $sFields = utils::ReadParam('fields', '', true, 'raw_data'); // CSV field list (allows to specify link set attributes, still not taken into account for XML export)
 $aFields = explode(',', $sFields);
@@ -188,15 +209,22 @@ if (!empty($sExpression))
 if (!$oP)
 {
 	// Display a short message about how to use this page
-	$oP = new WebPage("iTop - Export");
-	$oP->p("<strong>General purpose export page.</strong>");
-	$oP->p("<strong>Parameters:</strong>");
-	$oP->p("<ul><li>expression: an OQL expression (URL encoded if needed)</li>
-			    <li>query: (alternative to 'expression') the id of an entry from the query phrasebook</li>
-			    <li>arg_xxx: (needed if the query has parameters) the value of the parameter 'xxx'</li>
-			    <li>format: (optional, default is html) the desired output format. Can be one of 'html', 'spreadsheet', 'csv' or 'xml'</li>
-			    <li>fields: (optional, no effect on XML format) list of fields (attribute codes) separated by a coma</li>
-		    </ul>");
+	$bModeCLI = utils::IsModeCLI();
+	if ($bModeCLI)
+	{
+		$oP = new CLIPage("iTop - Export");
+	}
+	else
+	{
+		$oP = new WebPage("iTop - Export");
+	} 
+	$oP->p("General purpose export page.");
+	$oP->p("Parameters:");
+	$oP->p(" * expression: an OQL expression (URL encoded if needed)");
+	$oP->p(" * query: (alternative to 'expression') the id of an entry from the query phrasebook");
+	$oP->p(" * arg_xxx: (needed if the query has parameters) the value of the parameter 'xxx'");
+	$oP->p(" * format: (optional, default is html) the desired output format. Can be one of 'html', 'spreadsheet', 'csv' or 'xml'");
+	$oP->p(" * fields: (optional, no effect on XML format) list of fields (attribute codes) separated by a coma");
 }
 
 $oP->output();