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.