diff --git a/html/getFAIscript.php b/html/getFAIscript.php
index a4c242e7dfb815ada0b718b5d29f453ad91b040b..8be8f02fbfe137541c1c11c86a6062e6bf4a9408 100644 (file)
--- a/html/getFAIscript.php
+++ b/html/getFAIscript.php
$ldap = $_SESSION['config']->get_ldap_link();
$ldap->cd($_SESSION['config']->current['BASE']);
$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);
$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();
$tmp2 = $ldap->fetch();
+ $name= $tmp2['cn'][0];
if(in_array("FAIhookEntry",$tmp2['objectClass'])){
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");
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("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);
echo $tmp[0];
}else{
echo sprintf("Can't query for this item '%s'",$id);
/* Basic setup, remove eventually registered sessions */
@require_once ("../include/php_setup.inc");
@require_once ("functions.inc");
/* Basic setup, remove eventually registered sessions */
@require_once ("../include/php_setup.inc");
@require_once ("functions.inc");
-error_reporting (E_ALL);
+error_reporting (E_ALL | E_STRICT);
session_start ();
/* Logged in? Simple security check */
if (!isset($_SESSION['ui'])){
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 */
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");
exit;
}
$dir = search_config($config->data,"environment", "KIOSKPATH");