Fixed bug in EM: Insecure extensions were still displayed (patch by Karsten Dambekalns)
authorMichael Stucki <michael.stucki@typo3.org>
Tue, 20 Feb 2007 20:36:50 +0000 (20:36 +0000)
committerMichael Stucki <michael.stucki@typo3.org>
Tue, 20 Feb 2007 20:36:50 +0000 (20:36 +0000)
Fixed a typo in class.em_xmlhandler.php

git-svn-id: https://svn.typo3.org/TYPO3v4/Core/trunk@2056 709f56b5-9817-0410-a4d7-c38de5d9e867

ChangeLog
t3lib/stddb/tables.sql
typo3/mod/tools/em/class.em_index.php
typo3/mod/tools/em/class.em_xmlhandler.php

index 86ef683..b133da9 100755 (executable)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2007-02-20  Michael Stucki  <michael@typo3.org>
+
+       * Fixed bug in EM: Insecure extensions were still displayed (patch by Karsten Dambekalns)
+       * Fixed a typo in class.em_xmlhandler.php
+
 2007-02-20  Oliver Hader  <oh@inpublica.de>
 
        * Fixed bug #4202: be_groups - fields restricted by a low maxitems value
index b0e3636..aaebbd0 100755 (executable)
@@ -106,7 +106,7 @@ CREATE TABLE cache_extensions (
   title varchar(150) NOT NULL default '',
   description mediumtext NOT NULL,
   state int(4) NOT NULL default '0',
-  reviewstate int(4) unsigned NOT NULL default '0',
+  reviewstate int(4) NOT NULL default '0',
   category int(4) NOT NULL default '0',
   lastuploaddate int(11) unsigned NOT NULL default '0',
   dependencies mediumtext NOT NULL,
index c0e18fd..bc1565c 100644 (file)
@@ -859,7 +859,7 @@ EXTENSION KEYS:
                                                reset($this->inst_keys);
                                                while(list($extKey)=each($this->inst_keys))     {
                                                        $this->xmlhandler->searchExtensionsXML($extKey, '', '', true);
-                                                       if((strlen($this->listRemote_search) && !stristr($extKey,$this->listRemote_search)) || isset($this->xmlhandler->extensionsXML[$extKey])) continue;      
+                                                       if((strlen($this->listRemote_search) && !stristr($extKey,$this->listRemote_search)) || isset($this->xmlhandler->extensionsXML[$extKey])) continue;
 
                                                        $loadUnloadLink = t3lib_extMgm::isLoaded($extKey)?
                                                        '<a href="'.htmlspecialchars('index.php?CMD[showExt]='.$extKey.'&CMD[remove]=1&CMD[clrCmd]=1&SET[singleDetails]=info').'">'.$this->removeButton().'</a>':
index 139b6ba..73393f0 100644 (file)
@@ -52,23 +52,32 @@ class SC_mod_tools_em_xmlhandler {
        /**
         * Reduces the entries in $this->extensionsXML to the latest version per extension and removes entries not matching the search parameter
         *
-        * @param       string          $search The list of extensions is reduced to entries matching this. If empty, the full list is returned.
-        * @param       boolean         $latest If true, only the latest version is kept in the list
-        * @return      [type]          ...
+        * @param       string          $search The list of extensions is reduced to entries matching this. If empty, the full list is returned.
+        * @param       string          $owner  If set only extensions of that user are fetched
+        * @param       string          $order  A field to order the result by
+        * @param       boolean         $allExt If set also unreviewed and obsolete extensions are shown
+        * @param       boolean         $allVer If set returns all version of an extension, otherwise only the last
+        * @param       integer         $offset Offset to return result from (goes into LIMIT clause)
+        * @param       integer         $limit  Maximum number of entries to return (goes into LIMIT clause)
+        * @return      void
         */
-       function searchExtensionsXML($search, $owner='', $order = '', $allExt = false, $allVer = false, $offset = 0, $limit = 500) {
+       function searchExtensionsXML($search, $owner='', $order='', $allExt=false, $allVer=false, $offset=0, $limit=500)        {
                $where = '1=1';
                if ($search)    {
-                       $where .= ' AND extkey LIKE \'%'.$GLOBALS['TYPO3_DB']->quoteStr($GLOBALS['TYPO3_DB']->escapeStrForLike($search, 'cache_extensions'), 'cache_extensions').'%\'';
+                       $where.= ' AND extkey LIKE \'%'.$GLOBALS['TYPO3_DB']->quoteStr($GLOBALS['TYPO3_DB']->escapeStrForLike($search, 'cache_extensions'), 'cache_extensions').'%\'';
                }
                if ($owner)     {
-                       $where .= ' AND ownerusername='.$GLOBALS['TYPO3_DB']->fullQuoteStr($owner, 'cache_extensions');
+                       $where.= ' AND ownerusername='.$GLOBALS['TYPO3_DB']->fullQuoteStr($owner, 'cache_extensions');
                }
-               if(!(strlen($owner) || $this->useUnchecked || $allExt)) {
-                       $where .= ' AND reviewstate>0';
+               if (strlen($owner) || $this->useUnchecked || $allExt)   {
+                                       // do never show extensions marked as insecure
+                       $where.= ' AND NOT reviewstate < 0';
+               } else {
+                               // show extensions without review or that have passed review
+                       $where.= ' AND reviewstate > 0';
                }
-               if(!($this->useObsolete || $allExt))    {
-                       $where .= ' AND state!=5';              // 5 == obsolete
+               if (!$this->useObsolete && !$allExt)    {
+                       $where.= ' AND state!=5';               // 5 == obsolete
                }
                switch ($order) {
                        case 'author_company':
@@ -82,7 +91,7 @@ class SC_mod_tools_em_xmlhandler {
                                $forder = 'category';
                        break;
                }
-               $order = $forder.', title';                     
+               $order = $forder.', title';
                if (!$allVer)   {
                        if ($this->useUnchecked)        {
                                $where .= ' AND lastversion>0';
@@ -171,7 +180,7 @@ class SC_mod_tools_em_xmlhandler {
        }
 
        /**
-+       * Returns the reviewstate of a specific extension-key/version
+        * Returns the reviewstate of a specific extension-key/version
         *
         * @param       string          $extKey
         * @param       string          $version: ...