Пример #1
0
 /**
  * \brief Generate a Refresh URL.
  */
 function GetRefresh()
 {
     $Mod = GetParm("mod", PARM_STRING);
     $parm = Traceback_parm(0);
     $Opt = preg_replace("/&/", "--", $parm);
     $V = "mod=" . $this->Name . "&remod={$Mod}" . "&reopt={$Opt}";
     return $V;
 }
Пример #2
0
 private function getArrayArrayData($groupId, $canEdit)
 {
     $sql = "SELECT rf_pk,rf_shortname,rf_fullname,rf_text,rf_url,marydone FROM license_candidate WHERE group_fk=\$1";
     /** @var DbManager */
     $dbManager = $this->getObject('db.manager');
     $dbManager->prepare($stmt = __METHOD__, $sql);
     $res = $dbManager->execute($stmt, array($groupId));
     $aaData = array();
     while ($row = $dbManager->fetchArray($res)) {
         $aData = array(htmlentities($row['rf_shortname']), htmlentities($row['rf_fullname']), '<div style="overflow-y:scroll;max-height:150px;margin:0;">' . nl2br(htmlentities($row['rf_text'])) . '</div>', htmlentities($row['rf_url']), $this->bool2checkbox($dbManager->booleanFromDb($row['marydone'])));
         if ($canEdit) {
             $link = Traceback_uri() . '?mod=' . Traceback_parm() . '&rf=' . $row['rf_pk'];
             $edit = '<a href="' . $link . '"><img border="0" src="images/button_edit.png"></a>';
             array_unshift($aData, $edit);
         }
         $aaData[] = $aData;
     }
     $dbManager->freeResult($res);
     return $aaData;
 }
Пример #3
0
 /**
  * @param $selectedFormat
  * @return string
  */
 public function addFormatMenuEntries($selectedFormat, $pageNumber, $menuKey = self::VIEW, $hexFactor = 10)
 {
     $uri = Traceback_parm();
     $uri = preg_replace("/&format=[a-zA-Z0-9]*/", "", $uri);
     $uri = preg_replace("/&page=[0-9]*/", "", $uri);
     $pageNumberHex = NULL;
     $pageNumberText = NULL;
     $tooltipTexts = array(self::FORMAT_HEX => _("View as a hex dump"), self::FORMAT_TEXT => _("View as unformatted text"), self::FORMAT_FLOW => _("View as formatted text"));
     $menuTexts = array(self::FORMAT_HEX => "Hex", self::FORMAT_TEXT => "Text", self::FORMAT_FLOW => "Formatted");
     $menuPosition = -9;
     menu_insert("{$menuKey}::[BREAK]", $menuPosition--);
     foreach ($this->textFormats as $currentFormat) {
         $menuName = $menuKey . MENU_PATH_SEPARATOR . $menuTexts[$currentFormat];
         if ($currentFormat == $selectedFormat) {
             menu_insert($menuName, $menuPosition--);
         } else {
             $targetPageNumber = $currentFormat == self::FORMAT_HEX ? $hexFactor * $pageNumberHex : $pageNumber;
             menu_insert($menuName, $menuPosition--, "{$uri}&format={$currentFormat}&pageNumber={$targetPageNumber}", $tooltipTexts[$currentFormat]);
         }
     }
     menu_insert("{$menuKey}::[BREAK]", $menuPosition);
 }
 /**
  * \brief test for Traceback_parm()
  */
 function test_Traceback_parm()
 {
     print "test function Traceback_parm()\n";
     $source1 = "http://fossology.org/?mod=test";
     $source2 = "http://fossology.org/?mod=test&parm=abc";
     $expected1 = "test&parm=abc";
     $expected2 = "&parm=abc";
     $_SERVER['REQUEST_URI'] = $source1;
     $result = Traceback_parm(1);
     $this->assertEquals("test", $result);
     $_SERVER['REQUEST_URI'] = $source2;
     $result = Traceback_parm(1);
     $this->assertEquals($expected1, $result);
     $result = Traceback_parm(0);
     $this->assertEquals($expected2, $result);
 }
Пример #5
0
 /**
  * \brief Given an $Uploadtree_pk, display:
  *   - The histogram for the directory BY LICENSE.
  *   - The file listing for the directory.
  */
 private function showUploadHist(ItemTreeBounds $itemTreeBounds)
 {
     $groupId = Auth::getGroupId();
     $selectedAgentId = GetParm('agentId', PARM_INTEGER);
     $tag_pk = GetParm("tag", PARM_INTEGER);
     $uploadId = $itemTreeBounds->getUploadId();
     $scannerAgents = array_keys($this->agentNames);
     $scanJobProxy = new ScanJobProxy($this->agentDao, $uploadId);
     $scannerVars = $scanJobProxy->createAgentStatus($scannerAgents);
     $agentMap = $scanJobProxy->getAgentMap();
     $vars = array('agentId' => GetParm('agentId', PARM_INTEGER), 'agentShowURI' => Traceback_uri() . '?mod=' . Traceback_parm(), 'agentMap' => $agentMap, 'scanners' => $scannerVars);
     $selectedAgentIds = empty($selectedAgentId) ? $scanJobProxy->getLatestSuccessfulAgentIds() : $selectedAgentId;
     if (!empty($agentMap)) {
         $licVars = $this->createLicenseHistogram($itemTreeBounds->getItemId(), $tag_pk, $itemTreeBounds, $selectedAgentIds, $groupId);
         $vars = array_merge($vars, $licVars);
     }
     $this->licenseProjector = new LicenseMap($this->getObject('db.manager'), $groupId, LicenseMap::CONCLUSION, true);
     $dirVars = $this->countFileListing($itemTreeBounds);
     $childCount = $dirVars['iTotalRecords'];
     /***************************************
      * Problem: $ChildCount can be zero if you have a container that does not
      * unpack to a directory.  For example:
      * file.gz extracts to archive.txt that contains a license.
      * Same problem seen with .pdf and .Z files.
      * Solution: if $ChildCount == 0, then just view the license!
      *
      * $ChildCount can also be zero if the directory is empty.
      * **************************************/
     if ($childCount == 0) {
         return new RedirectResponse("?mod=view-license" . Traceback_parm_keep(array("upload", "item")));
     }
     $vars['licenseUri'] = Traceback_uri() . "?mod=popup-license&rf=";
     $vars['bulkUri'] = Traceback_uri() . "?mod=popup-license";
     return array_merge($vars, $dirVars);
 }
Пример #6
0
 /**
  * \brief Customize submenus.
  */
 function RegisterMenus()
 {
     $text = _("View file contents");
     menu_insert("Browse-Pfile::View", 10, $this->Name, $text);
     // For the Browse menu, permit switching between detail and summary.
     $Format = GetParm("format", PARM_STRING);
     $Page = GetParm("page", PARM_INTEGER);
     if (empty($Page)) {
         $Page = 0;
     }
     $URI = Traceback_parm();
     $URI = preg_replace("/&format=[a-zA-Z0-9]*/", "", $URI);
     $URI = preg_replace("/&page=[0-9]*/", "", $URI);
     $PageHex = NULL;
     $PageText = NULL;
     /***********************************
        If there is paging, compute page conversions.
        ***********************************/
     switch ($Format) {
         case 'hex':
             $PageHex = $Page;
             $PageText = intval($Page * VIEW_BLOCK_HEX / VIEW_BLOCK_TEXT);
             break;
         case 'text':
         case 'flow':
             $PageText = $Page;
             $PageHex = intval($Page * VIEW_BLOCK_TEXT / VIEW_BLOCK_HEX);
             break;
     }
     menu_insert("View::[BREAK]", -1);
     switch ($Format) {
         case "hex":
             $text = _("View as unformatted text");
             menu_insert("View::Hex", -10);
             menu_insert("View::Text", -11, "{$URI}&format=text&page={$PageText}", $text);
             $text = _("View as formatted text");
             menu_insert("View::Formatted", -12, "{$URI}&format=flow&page={$PageText}", $text);
             break;
         case "text":
             $text = _("View as a hex dump");
             menu_insert("View::Hex", -10, "{$URI}&format=hex&page={$PageHex}", $text);
             menu_insert("View::Text", -11);
             $text = _("View as formatted text");
             menu_insert("View::Formatted", -12, "{$URI}&format=flow&page={$PageText}", $text);
             break;
         case "flow":
             $text = _("View as a hex dump");
             menu_insert("View::Hex", -10, "{$URI}&format=hex&page={$PageHex}", $text);
             $text = _("View as unformatted text");
             menu_insert("View::Text", -11, "{$URI}&format=text&page={$PageText}", $text);
             menu_insert("View::Formatted", -12);
             break;
         default:
             $text = _("View as a hex dump");
             menu_insert("View::Hex", -10, "{$URI}&format=hex&page={$PageHex}", $text);
             $text = _("View as unformatted text");
             menu_insert("View::Text", -11, "{$URI}&format=text&page={$PageText}", $text);
             $text = _("View as formatted text");
             menu_insert("View::Formatted", -12, "{$URI}&format=flow&page={$PageText}", $text);
             break;
     }
     $URI = Traceback_parm_keep(array("show", "format", "page", "upload", "item"));
     if (GetParm("mod", PARM_STRING) == $this->Name) {
         menu_insert("View::View", 2);
         menu_insert("View-Meta::View", 2);
     } else {
         $text = _("View file contents");
         menu_insert("View::View", 2, $this->Name . $URI, $text);
         menu_insert("View-Meta::View", 2, $this->Name . $URI, $text);
         menu_insert("Browse::View", -2, $this->Name . $URI, $text);
         menu_insert("Browse::[BREAK]", -1);
     }
 }
Пример #7
0
 private function mergeUserLoginVars(&$vars)
 {
     global $container;
     $dbManager = $container->get("db.manager");
     $vars['logOutUrl'] = Traceback_uri() . '?mod=' . (plugin_find_id('auth') >= 0 ? 'auth' : 'smauth');
     $vars['userName'] = $_SESSION[Auth::USER_NAME];
     $sql = 'SELECT group_pk, group_name FROM group_user_member LEFT JOIN groups ON group_fk=group_pk WHERE user_fk=$1';
     $stmt = __METHOD__ . '.availableGroups';
     $dbManager->prepare($stmt, $sql);
     $res = $dbManager->execute($stmt, array($_SESSION['UserId']));
     $allAssignedGroups = array();
     while ($row = $dbManager->fetchArray($res)) {
         $allAssignedGroups[$row['group_pk']] = $row['group_name'];
     }
     $dbManager->freeResult($res);
     if (count($allAssignedGroups) > 1) {
         $vars['backtraceUri'] = Traceback_uri() . "?mod=" . Traceback_parm();
         $vars['groupId'] = $_SESSION[Auth::GROUP_ID];
         $vars['allAssignedGroups'] = $allAssignedGroups;
     } else {
         $vars['singleGroup'] = @$_SESSION['GroupName'];
     }
 }