diff -ru trunk.orig/t3lib/class.t3lib_userauthgroup.php trunk.new/t3lib/class.t3lib_userauthgroup.php --- trunk.orig/t3lib/class.t3lib_userauthgroup.php 2008-04-07 23:07:20.000000000 +0400 +++ trunk.new/t3lib/class.t3lib_userauthgroup.php 2008-04-07 23:40:10.000000000 +0400 @@ -1425,7 +1425,35 @@ if ($this->workspace>0 && trim($this->workspaceRec['file_mountpoints'])!=='') { // Processing filemounts - $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('*', 'sys_filemounts', 'deleted=0 AND hidden=0 AND pid=0 AND uid IN ('.$GLOBALS['TYPO3_DB']->cleanIntList($this->workspaceRec['file_mountpoints']).')'); + $paradigm = $this->getTSConfigVal('options.folderTree.WSFilemountsMode'); + $wsFilemounts = $GLOBALS['TYPO3_DB']->cleanIntList($this->workspaceRec['file_mountpoints']); + $userFilemounts = $this->dataLists['filemount_list']; + switch($paradigm){ + case 'ignoreWS': + $filemountUidList = $userFilemounts; + break; + case 'intersect': + $wsArr = t3lib_div::intExplode(',',$wsFilemounts); + $userArr = t3lib_div::intExplode(',',$userFilemounts); + $resultArr = array_intersect($wsArr,$userArr); + $filemountUidList = implode(',',$resultArr); + break; + case 'combine': + $wsArr = t3lib_div::intExplode(',',$wsFilemounts); + $userArr = t3lib_div::intExplode(',',$userFilemounts); + $resultArr = array_unique(array_merge($wsArr,$userArr)); + $filemountUidList = implode(',',$resultArr); + break; + case 'ignoreUser': + default: + $filemountUidList = $wsFilemounts;//default old behaviour + } + if ($filemountUidList){ + $andWhere = 'AND uid IN ('.$filemountUidList.')'; + }else{ + $andWhere = 'AND 0'; + } + $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('*', 'sys_filemounts', 'deleted=0 AND hidden=0 AND pid=0 '.$andWhere); while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) { $this->addFileMount($row['title'], $row['path'], $row['path'], $row['base']?1:0, ''); } diff -ru trunk.orig/typo3/sysext/lang/locallang_csh_sysws.xml trunk.new/typo3/sysext/lang/locallang_csh_sysws.xml --- trunk.orig/typo3/sysext/lang/locallang_csh_sysws.xml 2008-04-07 23:11:10.000000000 +0400 +++ trunk.new/typo3/sysext/lang/locallang_csh_sysws.xml 2008-04-07 22:52:44.000000000 +0400 @@ -25,7 +25,8 @@ + However, for specific projects this violation might be acceptable or necessary and therefore you can add a filemount. This will be forced upon any user in the workspace regardless of his filemounts inherited from his groups and user profile! + Also, see the "options.folderTree.WSFilemountsMode" User TS Config option for information about how you can change that behaviour.