assign('msg', tra("You do not have the permission that is needed to use this feature"));
$smarty->display("error.tpl");
die;
}
/**
* @param $dir
* @param $result
*/
function md5_check_dir($dir, &$result) // save all files in $result
{
echo "opening $dir
\n";
flush();
$d = dir($dir);
while (false !== ($e = $d->read())) {
$entry = $dir . '/' . $e;
if (is_dir($entry)) {
if ($e != '..' && $e != '.' && $e != 'CVS' && $entry != './temp/templates_c') { // do not descend and no CVS files
md5_check_dir($entry, $result);
}
} else {
if (substr($e, -4, 4) == ".php" && $entry != './tiki-create_md5.php' && $entry != './db/local.php') {
// echo "creating sum of $entry
\n";
$result[$entry] = md5_file($entry);
}
}
}
$d->close();
}
$tikimd5 = [];
$chkdir = isset($_REQUEST['chkdir']) ? $_REQUEST['chkdir'] : '.';
echo "creating md5 sums for dir $chkdir
";
flush();
md5_check_dir($chkdir, $tikimd5);
if (isset($_REQUEST['secdb']) && $_REQUEST['secdb'] = 'fs') {
$s = serialize($tikimd5);
$fp = fopen('lib/admin/secdb.php.inc', 'wb');
fwrite($fp, "");
fclose($fp);
} else {
global $tikilib;
echo "inserting into db table tiki_secdb.
";
flush();
if (! isset($_REQUEST['tikiver'])) {
echo "you have to set the tiki version. Example: tiki-create_md5.php?tikiver=1.9";
die;
}
// we update a whole revision. so we delete all old values from db!
$query = 'delete from `tiki_secdb` where `tiki_version`=?';
$tikilib->query($query, [$_REQUEST['tikiver']]);
$query = 'insert into `tiki_secdb`(`md5_value`,`filename`,`tiki_version`,`severity`) values (?,?,?,?)';
foreach ($tikimd5 as $filename => $filemd5) {
if ($chkdir != '.') {
$filename = preg_replace("#^" . preg_quote($chkdir) . "#", ".", $filename);
}
$tikilib->query($query, [$filemd5, $filename, $_REQUEST['tikiver'], 0]);
}
echo "done. use mysqldump to extract the secdb table and to add it to the release
";
}