Bug #17357

New page should have the same access group as the parent

Added by John Angel over 13 years ago. Updated about 9 years ago.

Status:
Closed
Priority:
Should have
Assignee:
-
Category:
-
Target version:
-
Start date:
2007-06-05
Due date:
% Done:

0%

TYPO3 Version:
4.1
PHP Version:
4.3
Tags:
Complexity:
Is Regression:
Sprint Focus:

Description

When creating the new page, Typo3 should set the same access group as it
is in the parent page. Instead, it uses default creator's group.

Ref: http://support.typo3.org:8080/jive/thread.jspa?threadID=97650&tstart=0
(issue imported from #M5743)

History

#1 Updated by Oliver Hader over 13 years ago

You could set this behaviour by Page TSconfig, e.g. like:
TCEMAIN.permissions.group = show,edit,delete,new,editcontent
TCEMAIN.permissions.groupid = 123

see: http://typo3.org/documentation/document-library/references/doc_core_tsconfig/4.1.0/view/1/3/

#2 Updated by John Angel over 13 years ago

New group shouldn't be specified (as in example: 123), but transferred from the parent page.

#3 Updated by Oliver Hader over 13 years ago

Thus, this would be a new feature. Unfortunately it's not possible to just change this in the current code - but to integrate a new property for TSconfig, like e.g. the following:
TCEMAIN.permissions.groupid = parent

#4 Updated by John Angel over 13 years ago

Right Oliver, and that should be default setting.

#5 Updated by John Angel about 13 years ago

This is very important issue, should be implemented v4.2.

#6 Updated by John Angel about 13 years ago

Here is the implementation for TCEMAIN.permissions.groupid = parent:

t3lib/class.t3lib_tcemain.php:730

FROM:

$fieldArray = $this->setTSconfigPermissions($fieldArray,$TSConfig['permissions.']);

TO:

$fieldArray = $this->setTSconfigPermissions($fieldArray,$TSConfig['permissions.'],$tscPID);


t3lib/class.t3lib_tcemain.php:5142

FROM:

function setTSconfigPermissions($fieldArray,$TSConfig_p)    {
if (strcmp($TSConfig_p['userid'],'')) $fieldArray['perms_userid']=intval($TSConfig_p['userid']);
if (strcmp($TSConfig_p['groupid'],'')) $fieldArray['perms_groupid']=intval($TSConfig_p['groupid']);

TO:

function setTSconfigPermissions($fieldArray,$TSConfig_p,$tscPID)    {
if (strcmp($TSConfig_p['userid'],'')) $fieldArray['perms_userid']=intval($TSConfig_p['userid']);
if (strcmp($TSConfig_p['groupid'],'')) {
if($TSConfig_p['groupid']=='parent') {
$record=t3lib_BEfunc::getRecord('pages',$tscPID,'perms_groupid');
$fieldArray['perms_groupid']=$record['perms_groupid'];
} else {
$fieldArray['perms_groupid']=intval($TSConfig_p['groupid']);
}
}

#7 Updated by John Angel about 13 years ago

Instead of:

if($TSConfig_p['groupid']=='parent') {

it's better:

if(strcasecmp($TSConfig_p['groupid'],'parent')==0) {

#8 Updated by Susanne Moog about 9 years ago

  • Status changed from Needs Feedback to Closed
  • Target version deleted (0)

I'm closing this issue as this would be a change of behavior that is not necessary in my eyes. If someone thinks this is needed please start a discussion on the TYPO3 v4 list and report it as a feature request again.

Also available in: Atom PDF