diff --git a/src/www/ui/ui-view-info.php b/src/www/ui/ui-view-info.php
index 6394769c..fd4ebfd0 100644
--- a/src/www/ui/ui-view-info.php
+++ b/src/www/ui/ui-view-info.php
@@ -1,636 +1,615 @@
Name = "view_info";
$this->Title = _("View File Information");
$this->Dependency = array("browse");
$this->DBaccess = PLUGIN_DB_READ;
$this->LoginFlag = 0;
parent::__construct();
$this->uploadDao = $GLOBALS['container']->get('dao.upload');
+ $this->dbManager = $GLOBALS['container']->get('db.manager');
}
/**
* \brief Customize submenus.
*/
function RegisterMenus()
{
$tooltipText = _("View file information");
menu_insert("Browse-Pfile::Info",5,$this->Name,$tooltipText);
// For the Browse menu, permit switching between detail and summary.
$Parm = Traceback_parm_keep(array("upload","item","format"));
$URI = $this->Name . $Parm;
$menuPosition = 60;
$menuText = "Info";
if (GetParm("mod",PARM_STRING) == $this->Name)
{
menu_insert("View::[BREAK]", 61);
menu_insert("View::[BREAK]", 50);
menu_insert("View::{$menuText}", $menuPosition);
menu_insert("View-Meta::[BREAK]", 61);
menu_insert("View-Meta::[BREAK]", 50);
menu_insert("View-Meta::{$menuText}", $menuPosition);
menu_insert("Browse::Info",-3);
}
else
{
$tooltipText = _("View information about this file");
menu_insert("View::[BREAK]", 61);
menu_insert("View::[BREAK]", 50);
menu_insert("View::{$menuText}", $menuPosition, $URI, $tooltipText);
menu_insert("View-Meta::[BREAK]", 61);
menu_insert("View-Meta::[BREAK]", 50);
menu_insert("View-Meta::{$menuText}", $menuPosition, $URI, $tooltipText);
menu_insert("Browse::Info", -3, $URI, $tooltipText);
}
} // RegisterMenus()
/**
* \brief Display the info data associated with the file.
*/
function ShowView($Upload, $Item, $ShowMenu=0)
{
- global $PG_CONN;
$V = "";
if (empty($Upload) || empty($Item)) { return; }
$Page = GetParm("page",PARM_INTEGER);
if (empty($Page)) { $Page=0; }
- $Max = 50;
/**********************************
List File Info
**********************************/
if ($Page == 0)
{
$text = _("Repository Locator");
$V .= "
$text
\n";
$sql = "SELECT * FROM uploadtree
- INNER JOIN pfile ON uploadtree_pk = $Item
+ INNER JOIN pfile ON uploadtree_pk = $1
AND pfile_fk = pfile_pk
LIMIT 1;";
- $result = pg_query($PG_CONN, $sql);
- DBCheckResult($result, $sql, __FILE__, __LINE__);
- $R = pg_fetch_assoc($result);
- pg_free_result($result);
+ $R = $this->dbManager->getSingleRow($sql,array($Item),__METHOD__.md5($sql));
$V .= "\n";
$text = _("Attribute");
$text1 = _("Value");
$V .= "$text | $text1 |
\n";
$Bytes = $R['pfile_size'];
$BytesH = HumanSize($Bytes);
$Bytes = number_format($Bytes, 0, "", ",").' B';
if ($BytesH == $Bytes) { $BytesH = ""; }
else { $BytesH = '(' . $BytesH . ')'; }
$text = _("File Size");
$V .= "$text | $Bytes $BytesH |
\n";
$text = _("SHA1 Checksum");
$V .= "$text | " . $R['pfile_sha1'] . " |
\n";
$text = _("MD5 Checksum");
$V .= "$text | " . $R['pfile_md5'] . " |
\n";
$text = _("Repository ID");
$V .= "$text | " . $R['pfile_sha1'] . "." . $R['pfile_md5'] . "." . $R['pfile_size'] . " |
\n";
$text = _("Pfile ID");
$V .= "$text | " . $R['pfile_fk'] . " |
\n";
$V .= "
\n";
}
return($V);
} // ShowView()
/**
* \brief Show Sightings, List the directory locations where this pfile is found
*/
function ShowSightings($Upload, $Item)
{
- global $PG_CONN;
$V = "";
if (empty($Upload) || empty($Item)) { return; }
$Page = GetParm("page",PARM_INTEGER);
if (empty($Page)) { $Page=0; }
$Max = 50;
$Offset = $Page * $Max;
/**********************************
List the directory locations where this pfile is found
**********************************/
$text = _("Sightings");
$V .= "$text
\n";
$sql = "SELECT * FROM pfile,uploadtree
WHERE pfile_pk=pfile_fk
AND pfile_pk IN
- (SELECT pfile_fk FROM uploadtree WHERE uploadtree_pk = $Item)
- LIMIT $Max OFFSET $Offset";
- $result = pg_query($PG_CONN, $sql);
- DBCheckResult($result, $sql, __FILE__, __LINE__);
+ (SELECT pfile_fk FROM uploadtree WHERE uploadtree_pk = $1)
+ LIMIT $2 OFFSET $3";
+ $this->dbManager->prepare(__METHOD__.md5($sql),$sql);
+ $result = $this->dbManager->execute(__METHOD__.md5($sql),array($Item,$Max,$Offset));
$Count = pg_num_rows($result);
if (($Page > 0) || ($Count >= $Max))
{
$VM = "\n" . MenuEndlessPage($Page, ($Count >= $Max)) . "\n";
}
else { $VM = ""; }
if ($Count > 0)
{
$V .= _("This exact file appears in the following locations:\n");
$V .= $VM;
$Offset++;
$V .= Dir2FileList($result,"browse","view",$Offset);
$V .= $VM;
}
else if ($Page > 0)
{
$V .= _("End of listing.\n");
}
else
{
$V .= _("This file does not appear in any other known location.\n");
}
pg_free_result($result);
return($V);
}//ShowSightings()
/**
* \brief Display the meta data associated with the file.
*/
function ShowMetaView($Upload, $Item)
{
- global $PG_CONN;
$V = "";
$Count = 1;
if (empty($Item) || empty($Upload))
{ return; }
/**********************************
Display meta data
**********************************/
$text = _("File Info");
$V .= "$text
\n";
$V .= "\n";
$text = _("Item");
$text1 = _("Meta Data");
$text2 = _("Value");
$V .= "$text | $text1 | $text2 |
\n";
/* display mimetype */
- $sql = "SELECT * FROM uploadtree where uploadtree_pk = $Item";
- $result = pg_query($PG_CONN, $sql);
- DBCheckResult($result, $sql, __FILE__, __LINE__);
+ $sql = "SELECT * FROM uploadtree where uploadtree_pk = $1";
+ $this->dbManager->prepare(__METHOD__.md5($sql),$sql);
+ $result = $this->dbManager->execute(__METHOD__.md5($sql),array($Item));
if (pg_num_rows($result))
{
$row = pg_fetch_assoc($result);
if (!empty($row['mimetype_pk']))
{
$V .= "" . $Count++ . " | Unpacked file type";
$V .= " | " . htmlentities($row['mimetype_name']) . " |
\n";
}
}
else
{
// bad uploadtree_pk
pg_free_result($result);
$text = _("File does not exist in database");
return $text;
}
- pg_free_result($result);
+ $this->dbManager->freeResult($result);
/* get mimetype */
if (!empty($row['pfile_fk']))
{
- $sql = "select mimetype_name from pfile, mimetype where pfile_pk = $row[pfile_fk] and pfile_mimetypefk=mimetype_pk";
- $result = pg_query($PG_CONN, $sql);
- DBCheckResult($result, $sql, __FILE__, __LINE__);
+ $sql = "select mimetype_name from pfile, mimetype where pfile_pk = $1 and pfile_mimetypefk=mimetype_pk";
+ $this->dbManager->prepare(__METHOD__.md5($sql),$sql);
+ $result = $this->dbManager->execute(__METHOD__.md5($sql),array($row[pfile_fk]));
if (pg_num_rows($result))
{
$pmRow = pg_fetch_assoc($result);
$V .= "" . $Count++ . " | Unpacked file type";
$V .= " | " . htmlentities($pmRow['mimetype_name']) . " |
\n";
}
- pg_free_result($result);
+ $this->dbManager->freeResult($result);
}
/* display upload origin */
- $sql = "select * from upload where upload_pk='$row[upload_fk]'";
- $result = pg_query($PG_CONN, $sql);
- DBCheckResult($result, $sql, __FILE__, __LINE__);
- if (pg_num_rows($result))
+ $sql = "select * from upload where upload_pk=$1";
+ $row = $this->dbManager->getSingleRow($sql,array($row[upload_fk]),__METHOD__.md5($sql));
+ if ($row)
{
- $row = pg_fetch_assoc($result);
/* upload source */
if ($row['upload_mode'] & 1 << 2) $text = _("Added by URL: ");
else if ($row['upload_mode'] & 1 << 3) $text = _("Added by file upload: ");
else if ($row['upload_mode'] & 1 << 4) $text = _("Added from filesystem: ");
$V .= "" . $Count++ . " | $text | ";
$V .= "" . htmlentities($row['upload_origin']) . " |
\n";
/* upload time */
$text = _("Added to repo");
$V .= "" . $Count++ . " | $text | ";
$ts = $row['upload_ts'];
$V .= "" . substr($ts, 0, strrpos($ts, '.')) . " |
\n";
}
- pg_free_result($result);
/* display where it was uploaded from */
/* display upload owner*/
- $sql = "SELECT user_name from users, upload where user_pk = user_fk and upload_pk = '$Upload'";
- $result = pg_query($PG_CONN, $sql);
- $row = pg_fetch_assoc($result);
- DBCheckResult($result, $sql, __FILE__, __LINE__);
+ $sql = "SELECT user_name from users, upload where user_pk = user_fk and upload_pk = $1";
+ $row = $this->dbManager->getSingleRow($sql,array($Upload),__METHOD__.md5($sql));
$text = _("Added by");
$V .= "" . $Count++ . " | $text | ";
$V .= "" . $row['user_name'] . " |
\n";
$V .= "
\n";
return($V);
} // ShowMetaView()
/**
* \brief Display the package info associated with
* the rpm/debian package.
*/
function ShowPackageInfo($Upload, $Item, $ShowMenu=0)
{
- global $PG_CONN;
$V = "";
$Require = "";
$MIMETYPE = "";
$Count = 0;
$rpm_info = array("Package"=>"pkg_name",
"Alias"=>"pkg_alias",
"Architecture"=>"pkg_arch",
"Version"=>"version",
"License"=>"license",
"Group"=>"pkg_group",
"Packager"=>"packager",
"Release"=>"release",
"BuildDate"=>"build_date",
"Vendor"=>"vendor",
"URL"=>"url",
"Summary"=>"summary",
"Description"=>"description",
"Source"=>"source_rpm");
$deb_binary_info = array("Package"=>"pkg_name",
"Architecture"=>"pkg_arch",
"Version"=>"version",
"Section"=>"section",
"Priority"=>"priority",
"Installed Size"=>"installed_size",
"Maintainer"=>"maintainer",
"Homepage"=>"homepage",
"Source"=>"source",
"Summary"=>"summary",
"Description"=>"description");
$deb_source_info = array("Format"=>"format",
"Source"=>"source",
"Binary"=>"pkg_name",
"Architecture"=>"pkg_arch",
"Version"=>"version",
"Maintainer"=>"maintainer",
"Uploaders"=>"uploaders",
"Standards-Version"=>"standards_version");
if (empty($Item) || empty($Upload)) { return; }
/**********************************
Check if pkgagent disabled
***********************************/
$sql = "SELECT agent_enabled FROM agent WHERE agent_name ='pkgagent' order by agent_ts LIMIT 1;";
- $result = pg_query($PG_CONN, $sql);
- DBCheckResult($result, $sql, __FILE__, __LINE__);
- $row = pg_fetch_assoc($result);
- pg_free_result($result);
+ $row = $this->dbManager->getSingleRow($sql,array(),__METHOD__.md5($sql));
if (isset($row) && ($row['agent_enabled']== 'f')){return;}
/**********************************
Display package info
**********************************/
$text = _("Package Info");
$V .= "$text
\n";
/* If pkgagent_ars table didn't exists, don't show the result. */
$sql = "SELECT typlen FROM pg_type where typname='pkgagent_ars' limit 1;";
- $result = pg_query($PG_CONN, $sql);
- DBCheckResult($result, $sql, __FILE__, __LINE__);
+ $this->dbManager->prepare(__METHOD__.md5($sql),$sql);
+ $result = $this->dbManager->execute(__METHOD__.md5($sql),array());
$numrows = pg_num_rows($result);
- pg_free_result($result);
+ $this->dbManager->freeResult($result);
if ($numrows <= 0)
{
$V .= _("No data available. Use Jobs > Agents to schedule a pkgagent scan.");
return($V);
}
/* If pkgagent_ars table didn't have record for this upload, don't show the result. */
$agent_status = AgentARSList('pkgagent_ars', $Upload);
if (empty($agent_status))
{
/** schedule pkgagent */
$V .= ActiveHTTPscript("Schedule");
$V .= "\n";
$V .= "\n";
return($V);
}
$sql = "SELECT mimetype_name
FROM uploadtree
- INNER JOIN pfile ON uploadtree_pk = $Item
+ INNER JOIN pfile ON uploadtree_pk = $1
AND pfile_fk = pfile_pk
INNER JOIN mimetype ON pfile_mimetypefk = mimetype_pk;";
- $result = pg_query($PG_CONN, $sql);
- DBCheckResult($result, $sql, __FILE__, __LINE__);
+ $this->dbManager->prepare(__METHOD__.md5($sql),$sql);
+ $result = $this->dbManager->execute(__METHOD__.md5($sql),array($Item));
while ($row = pg_fetch_assoc($result))
{
if (!empty($row['mimetype_name']))
{
$MIMETYPE = $row['mimetype_name'];
}
}
- pg_free_result($result);
+ $this->dbManager->freeResult($result);
/** RPM Package Info **/
if ($MIMETYPE == "application/x-rpm")
{
$sql = "SELECT *
FROM pkg_rpm
- INNER JOIN uploadtree ON uploadtree_pk = $Item
+ INNER JOIN uploadtree ON uploadtree_pk = $1
AND uploadtree.pfile_fk = pkg_rpm.pfile_fk;";
- $result = pg_query($PG_CONN, $sql);
- DBCheckResult($result, $sql, __FILE__, __LINE__);
-
- $R = pg_fetch_assoc($result);
+ $R = $this->dbManager->getSingleRow($sql,array($Item),__METHOD__.md5($sql));
if((!empty($R['source_rpm']))and(trim($R['source_rpm']) != "(none)"))
{
$V .= _("RPM Binary Package");
}
else
{
$V .= _("RPM Source Package");
}
$Count=1;
$V .= "\n";
$text = _("Item");
$text1 = _("Type");
$text2 = _("Value");
$V .= "$text | $text1 | $text2 |
\n";
if (!empty($R['pkg_pk']))
{
$Require = $R['pkg_pk'];
foreach ($rpm_info as $key=>$value)
{
$text = _($key);
$V .= "$Count | $text";
$V .= " | " . htmlentities($R["$value"]) . " |
\n";
$Count++;
}
- pg_free_result($result);
- $sql = "SELECT * FROM pkg_rpm_req WHERE pkg_fk = $Require;";
- $result = pg_query($PG_CONN, $sql);
- DBCheckResult($result, $sql, __FILE__, __LINE__);
+ $sql = "SELECT * FROM pkg_rpm_req WHERE pkg_fk = $1;";
+ $this->dbManager->prepare(__METHOD__.md5($sql),$sql);
+ $result = $this->dbManager->execute(__METHOD__.md5($sql),array($Require));
while ($R = pg_fetch_assoc($result) and !empty($R['req_pk']))
{
$text = _("Requires");
$V .= "$Count | $text";
$Val = htmlentities($R['req_value']);
$Val = preg_replace("@((http|https|ftp)://[^{}<>&[:space:]]*)@i","\$1",$Val);
$V .= " | $Val |
\n";
$Count++;
}
- pg_free_result($result);
+ $this->dbManager->freeResult($result);
}
$V .= "
\n";
- $Count--;
-
}
else if ($MIMETYPE == "application/x-debian-package")
{
$V .= _("Debian Binary Package\n");
$sql = "SELECT *
FROM pkg_deb
- INNER JOIN uploadtree ON uploadtree_pk = $Item
+ INNER JOIN uploadtree ON uploadtree_pk = $1
AND uploadtree.pfile_fk = pkg_deb.pfile_fk;";
- $result = pg_query($PG_CONN, $sql);
- DBCheckResult($result, $sql, __FILE__, __LINE__);
+ $R = $this->dbManager->getSingleRow($sql,array($Item),__METHOD__.md5($sql));
$Count=1;
$V .= "\n";
$text = _("Item");
$text1 = _("Type");
$text2 = _("Value");
$V .= "$text | $text1 | $text2 |
\n";
- if (pg_num_rows($result))
+ if ($R)
{
- $R = pg_fetch_assoc($result);
$Require = $R['pkg_pk'];
foreach ($deb_binary_info as $key=>$value)
{
$text = _($key);
$V .= "$Count | $text";
$V .= " | " . htmlentities($R["$value"]) . " |
\n";
$Count++;
}
pg_free_result($result);
- $sql = "SELECT * FROM pkg_deb_req WHERE pkg_fk = $Require;";
- $result = pg_query($PG_CONN, $sql);
- DBCheckResult($result, $sql, __FILE__, __LINE__);
+ $sql = "SELECT * FROM pkg_deb_req WHERE pkg_fk = $1;";
+ $this->dbManager->prepare(__METHOD__.md5($sql),$sql);
+ $result = $this->dbManager->execute(__METHOD__.md5($sql),array($Require));
while ($R = pg_fetch_assoc($result) and !empty($R['req_pk']))
{
$text = _("Depends");
$V .= "$Count | $text";
$Val = htmlentities($R['req_value']);
$Val = preg_replace("@((http|https|ftp)://[^{}<>&[:space:]]*)@i","\$1",$Val);
$V .= " | $Val |
\n";
$Count++;
}
- pg_free_result($result);
+ $this->dbManager->freeResult($result);
}
$V .= "
\n";
- $Count--;
}
else if ($MIMETYPE == "application/x-debian-source")
{
$V .= _("Debian Source Package\n");
$sql = "SELECT *
FROM pkg_deb
- INNER JOIN uploadtree ON uploadtree_pk = $Item
+ INNER JOIN uploadtree ON uploadtree_pk = $1
AND uploadtree.pfile_fk = pkg_deb.pfile_fk;";
- $result = pg_query($PG_CONN, $sql);
- DBCheckResult($result, $sql, __FILE__, __LINE__);
+ $R = $this->dbManager->getSingleRow($sql,array($Item),__METHOD__.md5($sql));
$Count=1;
$V .= "\n";
$text = _("Item");
$text1 = _("Type");
$text2 = _("Value");
$V .= "$text | $text1 | $text2 |
\n";
- if (pg_num_rows($result))
+ if ($R)
{
- $R = pg_fetch_assoc($result);
$Require = $R['pkg_pk'];
foreach ($deb_source_info as $key=>$value)
{
$text = _($key);
$V .= "$Count | $text";
$V .= " | " . htmlentities($R["$value"]) . " |
\n";
$Count++;
}
pg_free_result($result);
- $sql = "SELECT * FROM pkg_deb_req WHERE pkg_fk = $Require;";
- $result = pg_query($PG_CONN, $sql);
- DBCheckResult($result, $sql, __FILE__, __LINE__);
+ $sql = "SELECT * FROM pkg_deb_req WHERE pkg_fk = $1;";
+ $this->dbManager->prepare(__METHOD__.md5($sql),$sql);
+ $result = $this->dbManager->execute(__METHOD__.md5($sql),array($Require));
while ($R = pg_fetch_assoc($result) and !empty($R['req_pk']))
{
$text = _("Build-Depends");
$V .= "$Count | $text";
$Val = htmlentities($R['req_value']);
$Val = preg_replace("@((http|https|ftp)://[^{}<>&[:space:]]*)@i","\$1",$Val);
$V .= " | $Val |
\n";
$Count++;
}
- pg_free_result($result);
+ $this->dbManager->freeResult($result);
}
$V .= "
\n";
- $Count--;
}
else
{
/* Not a package */
return "";
}
return($V);
} // ShowPackageInfo()
/**
* \brief Display the tag info data associated with the file.
*/
function ShowTagInfo($Upload, $Item)
{
$VT = "";
$text = _("Tag Info");
$VT .= "$text
\n";
$groupId = Auth::getGroupId();
$row = $this->uploadDao->getUploadEntry($Item);
if (empty($row))
{
$text = _("Invalid URL, nonexistant item");
return "$text $Item
";
}
$lft = $row["lft"];
$rgt = $row["rgt"];
$upload_pk = $row["upload_fk"];
if (empty($lft))
{
$text = _("Upload data is unavailable. It needs to be unpacked.");
return "$text uploadtree_pk: $Item
";
}
- global $PG_CONN;
- $sql = "SELECT * FROM uploadtree INNER JOIN (SELECT * FROM tag_file,tag WHERE tag_pk = tag_fk) T ON uploadtree.pfile_fk = T.pfile_fk WHERE uploadtree.upload_fk = $upload_pk AND uploadtree.lft >= $lft AND uploadtree.rgt <= $rgt UNION SELECT * FROM uploadtree INNER JOIN (SELECT * FROM tag_uploadtree,tag WHERE tag_pk = tag_fk) T ON uploadtree.uploadtree_pk = T.uploadtree_fk WHERE uploadtree.upload_fk = $upload_pk AND uploadtree.lft >= $lft AND uploadtree.rgt <= $rgt ORDER BY ufile_name";
- $result = pg_query($PG_CONN, $sql);
- DBCheckResult($result, $sql, __FILE__, __LINE__);
+ $sql = "SELECT * FROM uploadtree INNER JOIN (SELECT * FROM tag_file,tag WHERE tag_pk = tag_fk) T
+ ON uploadtree.pfile_fk = T.pfile_fk WHERE uploadtree.upload_fk = $1
+ AND uploadtree.lft >= $2 AND uploadtree.rgt <= $3 UNION SELECT * FROM uploadtree INNER JOIN
+ (SELECT * FROM tag_uploadtree,tag WHERE tag_pk = tag_fk) T ON uploadtree.uploadtree_pk = T.uploadtree_fk
+ WHERE uploadtree.upload_fk = $1 AND uploadtree.lft >= $2 AND uploadtree.rgt <= $3 ORDER BY ufile_name";
+ $this->dbManager->prepare(__METHOD__.md5($sql),$sql);
+ $result = $this->dbManager->execute(__METHOD__.md5($sql),array($upload_pk, $lft,$rgt));
if (pg_num_rows($result) > 0)
{
$VT .= "\n";
$text = _("FileName");
$text2 = _("Tag");
$VT .= "$text | $text2 | |
\n";
while ($row = pg_fetch_assoc($result))
{
$VT .= "" . $row['ufile_name'] . " | " . $row['tag'] . " | ";
if ($this->uploadDao->isAccessible($upload_pk, $groupId))
{
$VT .= "View |
\n";
}else{
$VT .= " | \n";
}
}
$VT .= "
\n";
}
- pg_free_result($result);
+ $this->dbManager->freeResult($result);
return $VT;
}
public function Output()
{
$uploadId = GetParm("upload",PARM_INTEGER);
if (!$this->uploadDao->isAccessible($uploadId, Auth::getGroupId())) return;
$itemId = GetParm("item",PARM_INTEGER);
$this->vars['micromenu'] = Dir2Browse("browse", $itemId, NULL, $showBox=0, "View-Meta");
$V="";
$V .= $this->ShowTagInfo($uploadId, $itemId);
$V .= $this->ShowPackageinfo($uploadId, $itemId, 1);
$V .= $this->ShowMetaView($uploadId, $itemId);
$V .= $this->ShowSightings($uploadId, $itemId);
$V .= $this->ShowView($uploadId, $itemId);
return $V;
}
}
$NewPlugin = new ui_view_info;
$NewPlugin->Initialize();