Index: t3lib/class.t3lib_foldertree.php
===================================================================
--- t3lib/class.t3lib_foldertree.php	(révision 4108)
+++ t3lib/class.t3lib_foldertree.php	(copie de travail)
@@ -202,6 +202,7 @@
 			switch($val['type'])	{
 				case 'user':	$icon = 'gfx/i/_icon_ftp_user.gif';	break;
 				case 'group':	$icon = 'gfx/i/_icon_ftp_group.gif'; break;
+				case 'readonly':	$icon = 'gfx/i/_icon_ftp_readonly.gif'; break;
 				default:		$icon = 'gfx/i/_icon_ftp.gif'; break;
 			}
 
@@ -219,7 +220,7 @@
 			if ($isOpen)	{
 					// Set depth:
 				$depthD='<img'.t3lib_iconWorks::skinImg($this->backPath,'gfx/ol/blank.gif','width="18" height="16"').' alt="" />';
-				$this->getFolderTree($val['path'],999,$depthD);
+				$this->getFolderTree($val['path'], 999, $depthD, $val['type']);
 			}
 
 				// Add tree:
@@ -237,7 +238,7 @@
 	 * @return	integer		The count of items on the level
 	 * @see getBrowsableTree()
 	 */
-	function getFolderTree($files_path, $depth=999, $depthData='')	{
+	function getFolderTree($files_path, $depth=999, $depthData='', $type='')	{
 
 			// This generates the directory tree
 		$dirs = t3lib_div::get_dirs($files_path);
@@ -274,7 +275,8 @@
 					$nextCount=$this->getFolderTree(
 						$path,
 						$depth-1,
-						$this->makeHTML ? $depthData.'<img'.t3lib_iconWorks::skinImg($this->backPath,'gfx/ol/'.$LN.'.gif','width="18" height="16"').' alt="" />' : ''
+						$this->makeHTML ? $depthData.'<img'.t3lib_iconWorks::skinImg($this->backPath,'gfx/ol/'.$LN.'.gif','width="18" height="16"').' alt="" />' : '',
+						$type
 					);
 					$exp=1;		// Set "did expand" flag
 				} else {
@@ -286,7 +288,7 @@
 				if ($this->makeHTML)	{
 					$HTML=$depthData.$this->PMicon($row,$a,$c,$nextCount,$exp);
 
-					$icon = 'gfx/i/_icon_'.$webpath.'folders.gif';
+					$icon = 'gfx/i/_icon_' .$webpath . 'folders' . ($type == 'readonly' ? '_ro' : '') . '.gif';
 					if ($val=='_temp_')	{
 						$icon = 'gfx/i/sysf.gif';
 						$row['title']='TEMP';
@@ -365,4 +367,4 @@
 if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['t3lib/class.t3lib_foldertree.php'])	{
 	include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['t3lib/class.t3lib_foldertree.php']);
 }
-?>
\ No newline at end of file
+?>
Index: typo3/browse_links.php
===================================================================
--- typo3/browse_links.php	(révision 4108)
+++ typo3/browse_links.php	(copie de travail)
@@ -146,23 +146,20 @@
 				if ($altMountPoints) {
 					$GLOBALS['BE_USER']->groupData['webmounts'] = implode(',', array_unique(t3lib_div::intExplode(',', $altMountPoints)));
 					$GLOBALS['WEBMOUNTS'] = $GLOBALS['BE_USER']->returnWebmounts();
-					$browser_readOnly = true;
 				}
-			break;
 			case 'file':
 			case 'filedrag':
 			case 'folder':
-					// Setting alternative browsing mounts (ONLY local to browse_links.php this script so they stay "read-only")
+					// Setting additional read-only browsing file mounts
 				$altMountPoints = trim($GLOBALS['BE_USER']->getTSConfigVal('options.folderTree.altElementBrowserMountPoints'));
 				if ($altMountPoints) {
 					$altMountPoints = t3lib_div::trimExplode(',', $altMountPoints);
 					foreach($altMountPoints as $filePathRelativeToFileadmindir)	{
-						$GLOBALS['BE_USER']->addFileMount('', $filePathRelativeToFileadmindir, $filePathRelativeToFileadmindir, 1, 0);
+						$GLOBALS['BE_USER']->addFileMount('', $filePathRelativeToFileadmindir, $filePathRelativeToFileadmindir, 1, 'readonly');
 					}
 					$GLOBALS['FILEMOUNTS'] = $GLOBALS['BE_USER']->returnFilemounts();
-					$browser_readOnly = true;
 				}
-			break;
+				break;
 		}
 			
 			
@@ -183,20 +180,12 @@
 
 			// if type was not rendered use default rendering functions
 		if(!$browserRendered) {
-
 			$this->browser = t3lib_div::makeInstance('browse_links');
 			$this->browser->init();
-			if ($browser_readOnly) {
-				$this->browser->readOnly = true;	
-			}
 			$modData = $GLOBALS['BE_USER']->getModuleData('browse_links.php', 'ses');
 			list($modData, $store) = $this->browser->processSessionData($modData);
 			$GLOBALS['BE_USER']->pushModuleData('browse_links.php', $modData);
 
-
-			
-
-
 				// Output the correct content according to $this->mode
 			switch((string)$this->mode)	{
 				case 'rte':
Index: typo3/class.browse_links.php
===================================================================
--- typo3/class.browse_links.php	(révision 4108)
+++ typo3/class.browse_links.php	(copie de travail)
@@ -810,6 +810,10 @@
 			// the script to link to
 		$this->thisScript = t3lib_div::getIndpEnv('SCRIPT_NAME');
 
+			// init fileProcessor
+		$this->fileProcessor = t3lib_div::makeInstance('t3lib_basicFileFunctions');
+		$this->fileProcessor->init($GLOBALS['FILEMOUNTS'], $GLOBALS['TYPO3_CONF_VARS']['BE']['fileExtensions']);
+
 			// CurrentUrl - the current link url must be passed around if it exists
 		if ($this->mode == 'wizard')	{
 			$currentLinkParts = t3lib_div::trimExplode(' ',$this->P['currentValue']);
@@ -1611,13 +1615,11 @@
 		$pArr = explode('|',$this->bparams);
 
 			// Create upload/create folder forms, if a path is given:
-		$fileProcessor = t3lib_div::makeInstance('t3lib_basicFileFunctions');
-		$fileProcessor->init($GLOBALS['FILEMOUNTS'], $GLOBALS['TYPO3_CONF_VARS']['BE']['fileExtensions']);
 		$path=$this->expandFolder;
 		if (!$path || !@is_dir($path))	{
-			$path = $fileProcessor->findTempFolder().'/';	// The closest TEMP-path is found
+			$path = $this->fileProcessor->findTempFolder().'/';	// The closest TEMP-path is found
 		}
-		if ($path!='/' && @is_dir($path) && !$this->readOnly && count($GLOBALS['FILEMOUNTS']))	{
+		if ($path!='/' && @is_dir($path)) {
 			$uploadForm=$this->uploadForm($path);
 			$createFolder=$this->createFolder($path);
 		} else {
@@ -1701,15 +1703,9 @@
 		$parameters = explode('|', $this->bparams);
 
 			// Create upload/create folder forms, if a path is given:
-		$fileProcessor = t3lib_div::makeInstance('t3lib_basicFileFunctions');
-		$fileProcessor->init(
-			$GLOBALS['FILEMOUNTS'],
-			$GLOBALS['TYPO3_CONF_VARS']['BE']['fileExtensions']
-		);
-
 		$path = $this->expandFolder;
 		if(!$path || !@is_dir($path)) {
-			$path = $fileProcessor->findTempFolder().'/';	// The closest TEMP-path is found
+			$path = $this->fileProcessor->findTempFolder().'/';	// The closest TEMP-path is found
 		}
 		if($path != '/' && @is_dir($path)) {
 			$createFolder = $this->createFolder($path);
@@ -2380,7 +2376,7 @@
 							<td colspan="2">'.$this->getMsgBox($GLOBALS['LANG']->getLL('findDragDrop')).'</td>
 						</tr>';
 
-		 				// Fraverse files:
+		 				// Traverse files:
 					while(list(,$filepath)=each($files))	{
 						$fI = pathinfo($filepath);
 
@@ -2493,13 +2489,20 @@
 	 * @return	boolean		If the input path is found in the backend users filemounts, then return true.
 	 */
 	function checkFolder($folder)	{
-		$fileProcessor = t3lib_div::makeInstance('t3lib_basicFileFunctions');
-		$fileProcessor->init($GLOBALS['FILEMOUNTS'], $GLOBALS['TYPO3_CONF_VARS']['BE']['fileExtensions']);
-
-		return $fileProcessor->checkPathAgainstMounts(ereg_replace('\/$','',$folder).'/') ? TRUE : FALSE;
+		return $this->fileProcessor->checkPathAgainstMounts(ereg_replace('\/$', '', $folder) . '/') ? true : false;
 	}
 
 	/**
+	 * Checks, if a path is within a read-only mountpoint of the backend user
+	 *
+	 * @param	string		Absolute filepath
+	 * @return	boolean		If the input path is found in the backend users filemounts and if the filemount is of type readonly, then return true.
+	 */
+	function isReadOnlyFolder($folder) {
+		return ($GLOBALS['FILEMOUNTS'][$this->fileProcessor->checkPathAgainstMounts(ereg_replace('\/$', '', $folder) . '/')]['type'] == 'readonly');
+ 	}
+
+	/**
 	 * Prints a 'header' where string is in a tablecell
 	 *
 	 * @param	string		The string to print in the header. The value is htmlspecialchars()'ed before output.
@@ -2642,6 +2645,8 @@
 		global $BACK_PATH;
 		$count=3;
 
+		if ($this->isReadOnlyFolder($path)) return '';
+
 			// Create header, showing upload path:
 		$header = t3lib_div::isFirstPartOfStr($path,PATH_site)?substr($path,strlen(PATH_site)):$path;
 		$code=$this->barheader($GLOBALS['LANG']->getLL('uploadImage').':');
@@ -2694,6 +2699,9 @@
 	 */
 	function createFolder($path)	{
 		global $BACK_PATH;
+
+		if ($this->isReadOnlyFolder($path)) return '';
+
 			// Create header, showing upload path:
 		$header = t3lib_div::isFirstPartOfStr($path,PATH_site)?substr($path,strlen(PATH_site)):$path;
 		$code=$this->barheader($GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.php:file_newfolder.php.pagetitle').':');
Index: typo3/class.filelistfoldertree.php
===================================================================
--- typo3/class.filelistfoldertree.php	(révision 4108)
+++ typo3/class.filelistfoldertree.php	(copie de travail)
@@ -314,6 +314,7 @@
 			switch($val['type'])	{
 				case 'user':	$icon = 'gfx/i/_icon_ftp_user.gif';	break;
 				case 'group':	$icon = 'gfx/i/_icon_ftp_group.gif'; break;
+				case 'readonly':	$icon = 'gfx/i/_icon_ftp_readonly.gif'; break;
 				default:		$icon = 'gfx/i/_icon_ftp.gif'; break;
 			}
 
@@ -329,7 +330,7 @@
 
 				// If the mount is expanded, go down:
 			if ($isOpen)
-				$this->getFolderTree($val['path'], 999);
+				$this->getFolderTree($val['path'], 999, $val['type']);
 
 				// Add tree:
 			$treeArr = array_merge($treeArr, $this->tree);
@@ -347,7 +348,7 @@
 	 * @return	integer		The count of items on the level
 	 * @see getBrowsableTree()
 	 */
-	function getFolderTree($files_path, $depth=999)	{
+	function getFolderTree($files_path, $depth=999, $type='')	{
 
 			// This generates the directory tree
 		$dirs = t3lib_div::get_dirs($files_path);
@@ -383,7 +384,8 @@
 				$nextCount = $this->getFolderTree(
 					$path,
 					$depth-1,
-					$this->makeHTML ? '<img'.t3lib_iconWorks::skinImg($this->backPath,'gfx/ol/'.($a == $c ? 'blank' : 'line').'.gif','width="18" height="16"').' alt="" />' : ''
+					$this->makeHTML ? '<img'.t3lib_iconWorks::skinImg($this->backPath,'gfx/ol/'.($a == $c ? 'blank' : 'line').'.gif','width="18" height="16"').' alt="" />' : '',
+					$type
 				);
 				$exp = 1;	// Set "did expand" flag
 			} else {
@@ -395,7 +397,7 @@
 			if ($this->makeHTML)	{
 				$HTML = $this->PMicon($row,$a,$c,$nextCount,$exp);
 
-				$icon = 'gfx/i/_icon_'.t3lib_BEfunc::getPathType_web_nonweb($path).'folders.gif';
+				$icon = 'gfx/i/_icon_' .$webpath . 'folders' . ($type == 'readonly' ? '_ro' : '') . '.gif';
 				if ($val == '_temp_')	{
 					$icon = 'gfx/i/sysf.gif';
 					$row['title']='TEMP';
Index: typo3/gfx/i/_icon_ftp_readonly.gif
===================================================================
Impossible d'afficher : fichier considéré comme binaire.
svn:mime-type = application/octet-stream

Modification de propriétés sur typo3\gfx\i\_icon_ftp_readonly.gif
___________________________________________________________________
Ajouté : svn:mime-type
   + application/octet-stream

Index: typo3/sysext/rtehtmlarea/mod3/browse_links.php
===================================================================
--- typo3/sysext/rtehtmlarea/mod3/browse_links.php	(révision 4108)
+++ typo3/sysext/rtehtmlarea/mod3/browse_links.php	(copie de travail)
@@ -57,7 +57,6 @@
 class tx_rtehtmlarea_SC_browse_links {
 	public $mode = 'rte';
 	public $button = 'link';
-	public $readOnly = false;
 	protected $content = '';
 
 	/**
@@ -71,17 +70,15 @@
 		if ($altMountPoints) {
 			$GLOBALS['BE_USER']->groupData['webmounts'] = implode(',', array_unique(t3lib_div::intExplode(',', $altMountPoints)));
 			$GLOBALS['WEBMOUNTS'] = $GLOBALS['BE_USER']->returnWebmounts();
-			$this->readOnly = true;
 		}
 			// Setting alternative file browsing mounts (ONLY local to browse_links.php this script so they stay "read-only")
 		$altMountPoints = trim($GLOBALS['BE_USER']->getTSConfigVal('options.folderTree.altElementBrowserMountPoints'));
 		if ($altMountPoints) {
 			$altMountPoints = t3lib_div::trimExplode(',', $altMountPoints);
 			foreach ($altMountPoints as $filePathRelativeToFileadmindir) {
-				$GLOBALS['BE_USER']->addFileMount('', $filePathRelativeToFileadmindir, $filePathRelativeToFileadmindir, 1, 0);
+				$GLOBALS['BE_USER']->addFileMount('', $filePathRelativeToFileadmindir, $filePathRelativeToFileadmindir, 1, 'readonly');
 			}
 			$GLOBALS['FILEMOUNTS'] = $GLOBALS['BE_USER']->returnFilemounts();
-			$this->readOnly = true;
 		}
 			// Render type by user function
 		$browserRendered = false;
@@ -90,7 +87,6 @@
 				$browserRenderObj = t3lib_div::getUserObj($classRef);
 				if (is_object($browserRenderObj) && method_exists($browserRenderObj, 'isValid') && method_exists($browserRenderObj, 'render'))	{
 					if ($browserRenderObj->isValid($this->mode, $this)) {
-						$browserRenderObj->readOnly = $this->readOnly;
 						$this->content .=  $browserRenderObj->render($this->mode, $this);
 						$browserRendered = true;
 						break;
@@ -101,7 +97,6 @@
 			// If type was not rendered, use default rendering functions
 		if (!$browserRendered) {
 			$GLOBALS['SOBE']->browser = t3lib_div::makeInstance('tx_rtehtmlarea_browse_links');
-			$GLOBALS['SOBE']->browser->readOnly = $this->readOnly;
 			$GLOBALS['SOBE']->browser->init();
 			$modData = $GLOBALS['BE_USER']->getModuleData('browse_links.php','ses');
 			list($modData, $store) = $GLOBALS['SOBE']->browser->processSessionData($modData);
Index: typo3/sysext/rtehtmlarea/mod3/class.tx_rtehtmlarea_browse_links.php
===================================================================
--- typo3/sysext/rtehtmlarea/mod3/class.tx_rtehtmlarea_browse_links.php	(révision 4108)
+++ typo3/sysext/rtehtmlarea/mod3/class.tx_rtehtmlarea_browse_links.php	(copie de travail)
@@ -377,6 +377,10 @@
 		
 			// the script to link to
 		$this->thisScript = t3lib_div::getIndpEnv('SCRIPT_NAME');
+		
+			// Init fileProcessor
+		$this->fileProcessor = t3lib_div::makeInstance('t3lib_basicFileFunctions');
+		$this->fileProcessor->init($GLOBALS['FILEMOUNTS'], $GLOBALS['TYPO3_CONF_VARS']['BE']['fileExtensions']);
 	}
 
 	/**
@@ -796,13 +800,11 @@
 
 					// Create upload/create folder forms, if a path is given:
 				if ($BE_USER->getTSConfigVal('options.uploadFieldsInTopOfEB')) {
-					$fileProcessor = t3lib_div::makeInstance('t3lib_basicFileFunctions');
-					$fileProcessor->init($GLOBALS['FILEMOUNTS'], $GLOBALS['TYPO3_CONF_VARS']['BE']['fileExtensions']);
 					$path=$this->expandFolder;
 					if (!$path || !@is_dir($path))	{
-						$path = $fileProcessor->findTempFolder().'/';	// The closest TEMP-path is found
+						$path = $this->fileProcessor->findTempFolder().'/';	// The closest TEMP-path is found
 					}
-					if ($path!='/' && @is_dir($path) && !$this->readOnly && count($GLOBALS['FILEMOUNTS']))	{ 
+					if ($path!='/' && @is_dir($path)) { 
 						$uploadForm=$this->uploadForm($path);
 						$createFolder=$this->createFolder($path);
 					} else {
@@ -1110,6 +1112,8 @@
 		global $BACK_PATH;
 		$count=3;
 
+		if ($this->isReadOnlyFolder($path)) return '';
+
 			// Create header, showing upload path:
 		$header = t3lib_div::isFirstPartOfStr($path,PATH_site)?substr($path,strlen(PATH_site)):$path;
 		$code=$this->barheader($GLOBALS['LANG']->getLL('uploadImage').':');
@@ -1162,6 +1166,9 @@
 	 */
 	function createFolder($path)	{
 		global $BACK_PATH;
+		
+		if ($this->isReadOnlyFolder($path)) return '';
+		
 			// Create header, showing upload path:
 		$header = t3lib_div::isFirstPartOfStr($path,PATH_site)?substr($path,strlen(PATH_site)):$path;
 		$code=$this->barheader($GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.php:file_newfolder.php.pagetitle').':');
Index: typo3/sysext/rtehtmlarea/mod3/class.tx_rtehtmlarea_dam_browse_links.php
===================================================================
--- typo3/sysext/rtehtmlarea/mod3/class.tx_rtehtmlarea_dam_browse_links.php	(révision 4108)
+++ typo3/sysext/rtehtmlarea/mod3/class.tx_rtehtmlarea_dam_browse_links.php	(copie de travail)
@@ -154,6 +154,10 @@
 			$this->mode='rte';
 		}
 
+			// init fileProcessor
+		$this->fileProcessor = t3lib_div::makeInstance('t3lib_basicFileFunctions');
+		$this->fileProcessor->init($GLOBALS['FILEMOUNTS'], $GLOBALS['TYPO3_CONF_VARS']['BE']['fileExtensions']);
+		
 			// init hook objects:
 		$this->hookObjects = array();
 		if (is_array($TYPO3_CONF_VARS['SC_OPTIONS']['typo3/class.browse_links.php']['browseLinksHook'])) {
@@ -506,6 +510,9 @@
 			// Initializing the action value, possibly removing blinded values etc:
 		$this->allowedItems = explode(',','page,file,url,mail,spec,upload');
 
+		if ($this->isReadOnlyFolder(tx_dam::path_makeAbsolute($this->damSC->path))) {
+			$this->allowedItems = array_diff($this->allowedItems, array('upload'));  //remuve upload if filemount is readonly
+		} 
 			//call hook for extra options
 		foreach($this->hookObjects as $hookObject) {
 			$this->allowedItems = $hookObject->addAllowedItems($this->allowedItems);
@@ -945,4 +952,4 @@
 	include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/rtehtmlarea/mod3/class.tx_rtehtmlarea_dam_browse_links.php']);
 }
 
-?>
\ No newline at end of file
+?>
Index: typo3/sysext/rtehtmlarea/mod4/class.tx_rtehtmlarea_dam_browse_media.php
===================================================================
--- typo3/sysext/rtehtmlarea/mod4/class.tx_rtehtmlarea_dam_browse_media.php	(révision 4108)
+++ typo3/sysext/rtehtmlarea/mod4/class.tx_rtehtmlarea_dam_browse_media.php	(copie de travail)
@@ -160,6 +160,11 @@
 			$this->act='magic';
 		}
 
+			// init fileProcessor
+		$this->fileProcessor = t3lib_div::makeInstance('t3lib_basicFileFunctions');
+		$this->fileProcessor->init($GLOBALS['FILEMOUNTS'], $GLOBALS['TYPO3_CONF_VARS']['BE']['fileExtensions']);
+		
+		
 		$RTEtsConfigParts = explode(':', $this->RTEtsConfigParams);
 		$RTEsetup = $BE_USER->getTSConfig('RTE',t3lib_BEfunc::getPagesTSconfig($RTEtsConfigParts[5]));
 		$this->thisConfig = t3lib_BEfunc::RTEsetup($RTEsetup['properties'],$RTEtsConfigParts[0],$RTEtsConfigParts[2],$RTEtsConfigParts[4]);
@@ -848,7 +853,7 @@
 		global $TYPO3_CONF_VARS, $TYPO3_DB;
 
 		$filearray = array();
- 		//
+		//
 		// Use the current selection to create a query and count selected records
 		//
 
@@ -904,7 +909,7 @@
 		}
 
 		return $filearray;
- 	}
+	}
 
 	/**
 	 * [Describe function...]
@@ -916,10 +921,11 @@
 
 		$path = tx_dam::path_makeAbsolute($this->damSC->path);
 		if (!$path OR !@is_dir($path))	{
-			$fileProcessor = t3lib_div::makeInstance('t3lib_basicFileFunctions');
-			$fileProcessor->init($GLOBALS['FILEMOUNTS'], $GLOBALS['TYPO3_CONF_VARS']['BE']['fileExtensions']);
-			$path = $fileProcessor->findTempFolder().'/';	// The closest TEMP-path is found
+			$path = $this->fileProcessor->findTempFolder().'/';	// The closest TEMP-path is found
 		}
+		if ($this->isReadOnlyFolder($path)) {
+			$this->allowedItems = array_diff($this->allowedItems, array('upload')); //remuve upload if filemount is readonly
+		} 
 		$this->damSC->path = tx_dam::path_makeRelative($path); // mabe not needed
 
 			// Starting content:
@@ -1074,4 +1080,4 @@
 	include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/rtehtmlarea/mod4/class.tx_rtehtmlarea_dam_browse_media.php']);
 }
 
-?>
\ No newline at end of file
+?>
Index: typo3/sysext/rtehtmlarea/mod4/class.tx_rtehtmlarea_select_image.php
===================================================================
--- typo3/sysext/rtehtmlarea/mod4/class.tx_rtehtmlarea_select_image.php	(révision 4108)
+++ typo3/sysext/rtehtmlarea/mod4/class.tx_rtehtmlarea_select_image.php	(copie de travail)
@@ -176,6 +176,10 @@
 			// the script to link to
 		$this->thisScript = t3lib_div::getIndpEnv('SCRIPT_NAME');
 
+			// init fileProcessor
+		$this->fileProcessor = t3lib_div::makeInstance('t3lib_basicFileFunctions');
+		$this->fileProcessor->init($GLOBALS['FILEMOUNTS'], $GLOBALS['TYPO3_CONF_VARS']['BE']['fileExtensions']);
+
 		if (!$this->act)	{
 			$this->act='magic';
 		}
@@ -692,13 +696,11 @@
 			// ***************************
 				// Create upload/create folder forms, if a path is given:
 			if ($GLOBALS['BE_USER']->getTSConfigVal('options.uploadFieldsInTopOfEB') && !$this->readOnly && count($GLOBALS['FILEMOUNTS'])) {
-				$fileProcessor = t3lib_div::makeInstance('t3lib_basicFileFunctions');
-				$fileProcessor->init($GLOBALS['FILEMOUNTS'], $GLOBALS['TYPO3_CONF_VARS']['BE']['fileExtensions']);
 				$path=$this->expandFolder;
 				if (!$path || !@is_dir($path))	{
-					$path = $fileProcessor->findTempFolder().'/';	// The closest TEMP-path is found
+					$path = $this->fileProcessor->findTempFolder().'/';	// The closest TEMP-path is found
 				}
-				if ($path!='/' && @is_dir($path))	{
+				if ($path!='/' && @is_dir($path)) {
 					$uploadForm=$this->uploadForm($path);
 					$createFolder=$this->createFolder($path);
 				} else {
@@ -857,6 +859,8 @@
 		global $BACK_PATH;
 		$count=3;
 
+		if ($this->isReadOnlyFolder($path)) return '';
+
 			// Create header, showing upload path:
 		$header = t3lib_div::isFirstPartOfStr($path,PATH_site)?substr($path,strlen(PATH_site)):$path;
 		$code=$this->barheader($GLOBALS['LANG']->getLL('uploadImage').':');
@@ -910,6 +914,9 @@
 	 */
 	function createFolder($path)	{
 		global $BACK_PATH;
+
+		if ($this->isReadOnlyFolder($path)) return '';
+
 			// Create header, showing upload path:
 		$header = t3lib_div::isFirstPartOfStr($path,PATH_site)?substr($path,strlen(PATH_site)):$path;
 		$code=$this->barheader($GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.php:file_newfolder.php.pagetitle').':');
@@ -979,7 +986,7 @@
 							<td colspan="2">'.$this->getMsgBox($GLOBALS['LANG']->getLL('findDragDrop')).'</td>
 						</tr>';
 
-		 				// Fraverse files:
+		 				// Traverse files:
 					while(list(,$filepath)=each($files))	{
 						$fI = pathinfo($filepath);
 
Index: typo3/sysext/rtehtmlarea/mod4/select_image.php
===================================================================
--- typo3/sysext/rtehtmlarea/mod4/select_image.php	(révision 4108)
+++ typo3/sysext/rtehtmlarea/mod4/select_image.php	(copie de travail)
@@ -54,7 +54,6 @@
 class tx_rtehtmlarea_SC_select_image {
 	public $mode = 'rte';
 	public $button = 'image';
-	public $readOnly = false;
 	protected $content = '';
 
 	/**
@@ -68,10 +67,9 @@
 		if ($altMountPoints) {
 			$altMountPoints = t3lib_div::trimExplode(',', $altMountPoints);
 			foreach ($altMountPoints as $filePathRelativeToFileadmindir) {
-				$GLOBALS['BE_USER']->addFileMount('', $filePathRelativeToFileadmindir, $filePathRelativeToFileadmindir, 1, 0);
+				$GLOBALS['BE_USER']->addFileMount('', $filePathRelativeToFileadmindir, $filePathRelativeToFileadmindir, 1, 'readonly');
 			}
 			$GLOBALS['FILEMOUNTS'] = $GLOBALS['BE_USER']->returnFilemounts();
-			$this->readOnly = true;
 		}
 			// Rendering type by user function
 		$browserRendered = false;
@@ -80,7 +78,6 @@
 				$browserRenderObj = t3lib_div::getUserObj($classRef);
 				if (is_object($browserRenderObj) && method_exists($browserRenderObj, 'isValid') && method_exists($browserRenderObj, 'render')) {
 					if ($browserRenderObj->isValid($this->mode, $this)) {
-						$browserRenderObj->readOnly = $this->readOnly;
 						$this->content .=  $browserRenderObj->render($this->mode, $this);
 						$browserRendered = true;
 						break;
@@ -91,7 +88,6 @@
 			// If type was not rendered, use default rendering functions
 		if (!$browserRendered) {
 			$GLOBALS['SOBE']->browser = t3lib_div::makeInstance('tx_rtehtmlarea_select_image');
-			$GLOBALS['SOBE']->browser->readOnly = $this->readOnly;
 			$GLOBALS['SOBE']->browser->init();
 			$modData = $GLOBALS['BE_USER']->getModuleData('select_image.php','ses');
 			list($modData, $store) = $GLOBALS['SOBE']->browser->processSessionData($modData);
Index: typo3/sysext/t3skin/icons/gfx/i/_icon_ftp_readonly.gif
===================================================================
Impossible d'afficher : fichier considéré comme binaire.
svn:mime-type = application/octet-stream

Modification de propriétés sur typo3\sysext\t3skin\icons\gfx\i\_icon_ftp_readonly.gif
___________________________________________________________________
Ajouté : svn:mime-type
   + application/octet-stream

