Code

Added wake action to gotomasses
[gosa.git] / html / getFAIscript.php
index a4c242e7dfb815ada0b718b5d29f453ad91b040b..6c3cfeb37630b3db56c78f2e1164fa27206a6791 100644 (file)
@@ -24,26 +24,35 @@ restore_error_handler();
   $ldap = $_SESSION['config']->get_ldap_link();
   $ldap->cd($_SESSION['config']->current['BASE']);
 
-  $sr= $ldap->cat($id);
+  $sr= $ldap->cat($id, array("FAItemplateFile", "FAIscript", "cn", "objectClass"));
   $ei= ldap_first_entry($ldap->cid, $sr);
-  $tmp = ldap_get_values_len($ldap->cid, $ei,"FAIscript");
+  if(isset($_GET['is_template'])){
+    $tmp = ldap_get_values_len($ldap->cid, $ei,"FAItemplateFile");
+  }else{
+    $tmp = ldap_get_values_len($ldap->cid, $ei,"FAIscript");
+  }
   $tmp2 = $ldap->fetch();
 
+  $name= $tmp2['cn'][0];
   if(in_array("FAIhookEntry",$tmp2['objectClass'])){
-    $suff = ".FAIhook";
-  }else{
-    $suff = ".FAIscript";
+    $name.= ".FAIhook";
+  }elseif(in_array("FAIscriptEntry",$tmp2['objectClass'])){
+    $name .= ".FAIscript";
+  }elseif(isset($_GET['is_template'])){
+    if(preg_match("/\//",$name)){
+      $name = preg_replace("/^.*\//","",$name); 
+    }
   }
-  $name= $tmp2['cn'][0];
 
   if(isset($tmp[0])){
     header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
     header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
     header("Cache-Control: no-cache");
     header("Pragma: no-cache");
+    header("Content-transfer-encoding: binary\n");
     header("Cache-Control: post-check=0, pre-check=0");
     header("Content-type: application/octet-stream");
-    header("Content-Disposition: attachment; filename=".$name.$suff);
+    header("Content-Disposition: attachment; filename=".$name);
     echo $tmp[0];
   }else{
     echo sprintf("Can't query for this item '%s'",$id);
@@ -58,18 +67,19 @@ session_start ();
 
 /* Logged in? Simple security check */
 if (!isset($_SESSION['ui'])){
-  gosa_log ("Error: getFAIScript.php called without session");
-  header ("Location: ../index.php");
+  new log("security","fai","",array(),"Error: getFAIScript.php called without session") ;
+  header ("Location: index.php");
   exit;
 }
 $ui= $_SESSION["ui"];
 $config= $_SESSION['config'];
 
 /* Check ACL's */
-$acl= get_permissions ($config->current['BASE'], $ui->subtreeACL);
-$acl= get_module_permission($acl, "all", $config->current['BASE']);
-if (chkacl($acl, "all") != ""){
-  header ("Location: ../index.php");
+#FIXME Use more specific acl categories instead of all/all
+$ui = get_userinfo();
+$acl = $ui->get_permissions(base64_decode($_GET['id']),"all/all");
+if(!preg_match("/r/",$acl)){
+  header ("Location: index.php");
   exit;
 }
 $dir = search_config($config->data,"environment", "KIOSKPATH");