Feature #19529 » feature_bug_request_9682.diff
typo3/sysext/lang/locallang_tca.xml (working copy) | ||
---|---|---|
<label index="sys_workspace.vtypes">Disable Versioning Types for members and reviewers:</label>
|
||
<label index="sys_workspace.publish_access">Publish access:</label>
|
||
<label index="sys_workspace.stagechg_notification">Stage change notification by email:</label>
|
||
<label index="sys_workspace.use_user_db_mounts">Use DB mounts from user/group:</label>
|
||
<label index="sys_workspace.use_user_file_mounts">Use File mounts from user/group:</label>
|
||
<label index="pages">Page</label>
|
||
<label index="doktype.I.0">Standard</label>
|
||
<label index="doktype.I.1">SysFolder</label>
|
typo3/mod/user/ws/index.php (working copy) | ||
---|---|---|
// here only if obtaining mount points for custom workspaces
|
||
// Warning: all fields needed for t3lib_iconWorks::getIconImage()!
|
||
$MPs = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows('*', 'pages', 'deleted=0 AND uid IN (' . $GLOBALS['TYPO3_DB']->cleanIntList($wksp['db_mountpoints']) . ')', '', 'title');
|
||
if($GLOBALS['BE_USER']->workspaceRec['use_user_db_mounts'] == 1) {
|
||
$MPs = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows('*', 'pages', 'deleted=0 AND uid IN (' . $GLOBALS['TYPO3_DB']->cleanIntList($GLOBALS['BE_USER']->groupData['webmounts']) . ')', '', 'title');
|
||
} else {
|
||
$MPs = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows('*', 'pages', 'deleted=0 AND uid IN (' . $GLOBALS['TYPO3_DB']->cleanIntList($wksp['db_mountpoints']) . ')', '', 'title');
|
||
}
|
||
$content_array = array();
|
||
if (count($MPs) > 0) {
|
||
$isAdmin = $GLOBALS['BE_USER']->isAdmin();
|
||
... | ... | |
// Here if displaying information for custom workspace
|
||
// Warning: all fields needed for t3lib_iconWorks::getIconImage()!
|
||
$MPs = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows('*', 'sys_filemounts', 'deleted=0 AND hidden=0 AND uid IN (' . $GLOBALS['TYPO3_DB']->cleanIntList($wksp['file_mountpoints']) . ')', '', 'title');
|
||
// Use the user/group mountpoints instead of workspace mountpoints if the checkbox in workspace configuration isset
|
||
if($GLOBALS['BE_USER']->workspaceRec['use_user_file_mounts'] == 1) {
|
||
$MPs = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows('*', 'sys_filemounts', 'deleted=0 AND hidden=0 AND uid IN (' . $GLOBALS['TYPO3_DB']->cleanIntList($GLOBALS['BE_USER']->dataLists['filemount_list']) . ')', '', 'title');
|
||
} else {
|
||
$MPs = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows('*', 'sys_filemounts', 'deleted=0 AND hidden=0 AND uid IN (' . $GLOBALS['TYPO3_DB']->cleanIntList($wksp['file_mountpoints']) . ')', '', 'title');
|
||
}
|
||
if (count($MPs) != 0) {
|
||
// Has mount points
|
||
$isAdmin = $GLOBALS['BE_USER']->isAdmin();
|
t3lib/class.t3lib_userauthgroup.php (working copy) | ||
---|---|---|
$this->setWorkspace($this->user['workspace_id']);
|
||
// Setting up the db mount points of the (custom) workspace, if any:
|
||
if ($this->workspace>0 && trim($this->workspaceRec['db_mountpoints'])!=='') {
|
||
if ($this->workspace>0 && trim($this->workspaceRec['db_mountpoints'])!=='' && ($this->workspaceRec['use_user_db_mounts']== 0)) {
|
||
// Initialize:
|
||
$newMounts = array();
|
||
... | ... | |
}
|
||
// Setting up the file mount points of the (custom) workspace, if any:
|
||
if ($this->workspace!==0) $this->groupData['filemounts'] = array();
|
||
if ($this->workspace>0 && trim($this->workspaceRec['file_mountpoints'])!=='') {
|
||
if ($this->workspace!==0 && ($this->workspaceRec['use_user_file_mounts']== 0)) $this->groupData['filemounts'] = array();
|
||
if ($this->workspace>0 && trim($this->workspaceRec['file_mountpoints'])!=='' && ($this->workspaceRec['use_user_file_mounts']== 0)) {
|
||
// 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']).')');
|
||
while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
|
||
$this->addFileMount($row['title'], $row['path'], $row['path'], $row['base']?1:0, '');
|
||
}
|
||
} elseif($this->workspace>0 && trim($this->workspaceRec['file_mountpoints'])!=='' && ($this->workspaceRec['use_user_file_mounts']== 1)) {
|
||
// The configuration checkbox isset, so use the user/group filemounts to add
|
||
foreach ($this->groupData['filemounts'] as $key => $filemount) {
|
||
$this->addFileMount($filemount['name'], $filemount['path'], $filemount['path'], $filemount['type']?1:0, '');
|
||
}
|
||
}
|
||
}
|
||
t3lib/stddb/tables.sql (working copy) | ||
---|---|---|
swap_modes tinyint(3) DEFAULT '0' NOT NULL,
|
||
publish_access tinyint(3) DEFAULT '0' NOT NULL,
|
||
stagechg_notification tinyint(3) DEFAULT '0' NOT NULL,
|
||
use_user_db_mounts tinyint(3) DEFAULT '0' NOT NULL,
|
||
use_user_file_mounts tinyint(3) DEFAULT '0' NOT NULL,
|
||
PRIMARY KEY (uid),
|
||
KEY parent (pid)
|
t3lib/stddb/tbl_be.php (working copy) | ||
---|---|---|
),
|
||
)
|
||
),
|
||
'use_user_db_mounts' => array (
|
||
'label' => 'LLL:EXT:lang/locallang_tca.xml:sys_workspace.use_user_db_mounts',
|
||
'config' => array (
|
||
'type' => 'check',
|
||
)
|
||
),
|
||
'use_user_file_mounts' => array (
|
||
'label' => 'LLL:EXT:lang/locallang_tca.xml:sys_workspace.use_user_file_mounts',
|
||
'config' => array (
|
||
'type' => 'check',
|
||
)
|
||
),
|
||
),
|
||
'types' => array(
|
||
'0' => array('showitem' => 'title,description,
|
||
--div--;LLL:EXT:lang/locallang_tca.xml:sys_filemounts.tabs.users,adminusers,members,reviewers,stagechg_notification,
|
||
--div--;LLL:EXT:lang/locallang_tca.xml:sys_filemounts.tabs.mountpoints,db_mountpoints,file_mountpoints,
|
||
--div--;LLL:EXT:lang/locallang_tca.xml:sys_filemounts.tabs.mountpoints,db_mountpoints,use_user_db_mounts,file_mountpoints,
|
||
--div--;LLL:EXT:lang/locallang_tca.xml:sys_filemounts.tabs.publishing,publish_time,unpublish_time,
|
||
--div--;LLL:EXT:lang/locallang_tca.xml:sys_filemounts.tabs.other,freeze,live_edit,review_stage_edit,disable_autocreate,swap_modes,vtypes,publish_access'
|
||
)
|
typo3/sysext/lang/locallang_csh_sysws.xml (working copy) | ||
---|---|---|
"Notify all users on any change" : All users in workspace are notified regardless of change.</label>
|
||
<label index="db_mountpoints.description">If one or more DB mounts are specified the page tree of the backend will be locked into these root points during work in the workspace.</label>
|
||
<label index="db_mountpoints.details">Any DB mount specified here must be inside the DB mount set for the backend user who logs in. If that is not the case the workspace DB mount will simply not be mounted for the user. If no DB mounts are specified for the workspace the users will access the DB mounts of their user profile.</label>
|
||
<label index="use_user_db_mounts.description">To use the DB mounts from the user/group configuration activate this option. Then the workspace DB mounts are not used!</label>
|
||
<label index="use_user_db_mounts.details">If there are several users with different DB mounts but the same workspace, this option is helpful. If this option is activated the DB mounts of the workspace configuration are not used. Instead of them the user/group DB mounts are used.</label>
|
||
<label index="file_mountpoints.description">Filemounts available for workspace users. Please see details for security information!</label>
|
||
<label index="file_mountpoints.details">IMPORTANT: By default a draft workspace has all filemounts disabled! This is because versioning does not apply to any files edited through filemounts in TYPO3. Hence any access to those files would violate the principle that no content managed in a draft workspace will be live before published.
|
||
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!</label>
|
||
<label index="publish_time.description">Specify a time of publication of the workspace content.</label>
|
||
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!</label><label index="publish_time.description">Specify a time of publication of the workspace content.</label>
|
||
<label index="publish_time.details">The publish and unpublish times are active only if "mod/user/ws/cli/ws_cli.phpsh" is set up as a cronjob running every minute. Example configuration could be "* * * * * /[ABSOLUTE PATH TO TYPO3 SITE]/typo3/mod/user/ws/cli/ws_cli.phpsh"</label>
|
||
<label index="_publish_time.seeAlso">sys_workspace:unpublish_time</label>
|
||
<label index="unpublish_time.description">Specify an additional time of (un)publication of the workspace content.</label>
|
typo3/sysext/beuser/mod/index.php (working copy) | ||
---|---|---|
}
|
||
// Add custom workspaces (selecting all, filtering by BE_USER check):
|
||
$workspaces = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows('uid,title,adminusers,members,reviewers,db_mountpoints','sys_workspace','pid=0'.t3lib_BEfunc::deleteClause('sys_workspace'),'','title');
|
||
$workspaces = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows('uid,title,adminusers,members,reviewers,db_mountpoints,use_user_db_mounts','sys_workspace','pid=0'.t3lib_BEfunc::deleteClause('sys_workspace'),'','title');
|
||
if (count($workspaces)) {
|
||
foreach ($workspaces as $rec) {
|
||
if ($this->checkWorkspace($rec)) {
|
||
$options[$rec['uid']] = $rec['uid'].': '.$rec['title'];
|
||
// Check if all mount points are accessible, otherwise show error:
|
||
if (trim($rec['db_mountpoints'])!=='') {
|
||
if (trim($rec['db_mountpoints'])!=='' && ($rec['use_user_db_mounts'] == 0)) {
|
||
$mountPoints = t3lib_div::intExplode(',',$this->workspaceRec['db_mountpoints'],1);
|
||
foreach ($mountPoints as $mpId) {
|
||
if (!$this->isInWebMount($mpId,'1=1')) {
|
- « Previous
- 1
- 2
- 3
- Next »