Index: t3lib/class.t3lib_frontendedit.php =================================================================== --- t3lib/class.t3lib_frontendedit.php (revision 4443) +++ t3lib/class.t3lib_frontendedit.php (working copy) @@ -680,7 +680,18 @@ $types = t3lib_div::trimExplode(',', t3lib_div::strtolower($conf['allow']),1); $allow = array_flip($types); - $perms = $GLOBALS['BE_USER']->calcPerms($GLOBALS['TSFE']->page); + if ($conf['permissionCheckOnPid'] == 'pid' || $permsCheckPid = intval($conf['permissionCheckOnPid'])) { + // permissions may be based not only on the current page, but either + // - on the page, where the record is stored at (permissionCheckOnPid = 'pid') or + // - on some configured page with uid INTEGER (permissionCheckOnPid = INTEGER) + $editpanelPermissionPage = ($conf['permissionCheckOnPid'] == 'pid') ? + $GLOBALS['TSFE']->sys_page->getPage_noCheck($dataArray['pid']) : + $GLOBALS['TSFE']->sys_page->getPage_noCheck($permsCheckPid); + } else { + $editpanelPermissionPage = $GLOBALS['TSFE']->page; + } + $perms = $GLOBALS['BE_USER']->calcPerms($editpanelPermissionPage); + if ($table == 'pages') { $allow = $this->getAllowedEditActions($table, $conf, $dataArray['pid'], $allow);