Commit 393d9a4d authored by Benni Mack's avatar Benni Mack Committed by Oliver Hader
Browse files

[TASK] Mark various code related to Backend user / DataHandler internal

In order to build a stronger Permission Handling system and
a stronger API for TCA resolving in TYPO3 v11, several methods and public
properties have been marked as "internal". These continue to be working
as is for TYPO3 v10 LTS, but are now marked as internal - most of the code
has been coming from PHP4 where no visibility restrictions have been available
back then.

Resolves: #91095
Releases: master
Change-Id: Ibb47739a0cdec5eae19fafa2e376eeb609aa6c53
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/64162


Tested-by: default avatarTYPO3com <noreply@typo3.com>
Tested-by: Georg Ringer's avatarGeorg Ringer <georg.ringer@gmail.com>
Tested-by: Oliver Hader's avatarOliver Hader <oliver.hader@typo3.org>
Reviewed-by: Georg Ringer's avatarGeorg Ringer <georg.ringer@gmail.com>
Reviewed-by: Oliver Hader's avatarOliver Hader <oliver.hader@typo3.org>
parent 77a3e843
......@@ -167,6 +167,7 @@ class BackendUtility
*
* @param array $record
* @return array
* @internal should only be used from within TYPO3 Core
*/
public static function purgeComputedPropertiesFromRecord(array $record): array
{
......@@ -184,6 +185,7 @@ class BackendUtility
*
* @param array $propertyNames
* @return array
* @internal should only be used from within TYPO3 Core
*/
public static function purgeComputedPropertyNames(array $propertyNames): array
{
......@@ -201,6 +203,7 @@ class BackendUtility
*
* @param string $str [tablename]_[uid] string to explode
* @return array
* @internal should only be used from within TYPO3 Core
*/
public static function splitTable_Uid($str)
{
......@@ -217,6 +220,7 @@ class BackendUtility
* @param string $table The table from which to return enableFields WHERE clause. Table name must have a 'ctrl' section in $GLOBALS['TCA'].
* @param bool $inv Means that the query will select all records NOT VISIBLE records (inverted selection)
* @return string WHERE clause part
* @internal should only be used from within TYPO3 Core, but DefaultRestrictionHandler is recommended as alternative
*/
public static function BEenableFields($table, $inv = false)
{
......@@ -491,6 +495,7 @@ class BackendUtility
*
* @param int $pid Page id.
* @param bool $clearExpansion If set, then other open branches are closed.
* @internal should only be used from within TYPO3 Core
*/
public static function openPageTree($pid, $clearExpansion)
{
......@@ -796,6 +801,7 @@ class BackendUtility
* @param string $fields Optional $fields list (default: username,usergroup,usergroup_cached_list,uid) can be used to set the selected fields
* @param string $where Optional $where clause (fx. "AND username='pete'") can be used to limit query
* @return array
* @internal should only be used from within TYPO3 Core, use a direct SQL query instead to ensure proper DBAL where statements
*/
public static function getUserNames($fields = 'username,usergroup,usergroup_cached_list,uid', $where = '')
{
......@@ -813,6 +819,7 @@ class BackendUtility
* @param string $fields Field list
* @param string $where WHERE clause
* @return array
* @internal should only be used from within TYPO3 Core, use a direct SQL query instead to ensure proper DBAL where statements
*/
public static function getGroupNames($fields = 'title,uid', $where = '')
{
......@@ -877,6 +884,7 @@ class BackendUtility
* @param array $groupArray Group names
* @param bool $excludeBlindedFlag If $excludeBlindedFlag is set, then these records are unset from the array $usernames
* @return array User names, blinded
* @internal
*/
public static function blindUserNames($usernames, $groupArray, $excludeBlindedFlag = false)
{
......@@ -911,6 +919,7 @@ class BackendUtility
* @param array $groupArray Group names (reference)
* @param bool $excludeBlindedFlag If $excludeBlindedFlag is set, then these records are unset from the array $usernames
* @return array
* @internal
*/
public static function blindGroupNames($groups, $groupArray, $excludeBlindedFlag = false)
{
......@@ -2112,6 +2121,7 @@ class BackendUtility
* @param string $prefix Table prefix
* @param array $fields Preset fields (must include prefix if that is used)
* @return string List of fields.
* @internal should only be used from within TYPO3 Core
*/
public static function getCommonSelectFields($table, $prefix = '', $fields = [])
{
......@@ -2163,6 +2173,7 @@ class BackendUtility
* @param string $table Table name
* @param string $field Field name
* @return array With keys 'description' (raw, as available in locallang), 'title' (optional), 'moreInfo'
* @internal should only be used from within TYPO3 Core
*/
public static function helpTextArray($table, $field)
{
......@@ -2201,6 +2212,7 @@ class BackendUtility
* @param string $field Field name
* @return string HTML content for help text
* @see cshItem()
* @internal should only be used from within TYPO3 Core
*/
public static function helpText($table, $field)
{
......@@ -2233,6 +2245,7 @@ class BackendUtility
* @param string $text The text which should be wrapped with the help text
* @param array $overloadHelpText Array with text to overload help text
* @return string the HTML code ready to render
* @internal should only be used from within TYPO3 Core
*/
public static function wrapInHelp($table, $field, $text = '', array $overloadHelpText = [])
{
......@@ -3182,6 +3195,7 @@ class BackendUtility
*
* @param string $spKey softRef parser key
* @return mixed If available, returns Soft link parser object, otherwise false.
* @internal should only be used from within TYPO3 Core
*/
public static function softRefParserObj($spKey)
{
......@@ -3208,6 +3222,7 @@ class BackendUtility
* @param string $parserList softRef parser list
* @return array|bool Array where the parser key is the key and the value is the parameter string, FALSE if no parsers were found
* @throws \InvalidArgumentException
* @internal should only be used from within TYPO3 Core
*/
public static function explodeSoftRefParserList($parserList)
{
......@@ -3371,6 +3386,7 @@ class BackendUtility
* @param bool $includeDeletedRecords If set, deleted-flagged versions are included! (Only for clean-up script!)
* @param array $row The current record
* @return array|null Array of versions of table/uid
* @internal should only be used from within TYPO3 Core
*/
public static function selectVersionsOfRecord(
$table,
......@@ -3465,6 +3481,7 @@ class BackendUtility
* @param array $rr Record array passed by reference. As minimum, "pid" and "uid" fields must exist! "t3ver_oid" and "t3ver_wsid" is nice and will save you a DB query.
* @param bool $ignoreWorkspaceMatch Ignore workspace match
* @see PageRepository::fixVersioningPid()
* @internal should only be used from within TYPO3 Core
*/
public static function fixVersioningPid($table, &$rr, $ignoreWorkspaceMatch = false)
{
......@@ -3612,6 +3629,7 @@ class BackendUtility
* @param array $row Row (passed by reference) - must be online record!
* @return bool TRUE if overlay is made.
* @see PageRepository::movePlhOl()
* @internal should only be used from within TYPO3 Core
*/
public static function movePlhOL($table, &$row)
{
......@@ -3707,6 +3725,7 @@ class BackendUtility
* @param string $table Name of the table
* @param int $uid Uid of the offline/draft record
* @return int|null The id of the live version of the record (or NULL if nothing was found)
* @internal should only be used from within TYPO3 Core
*/
public static function getLiveVersionIdOfRecord($table, $uid)
{
......@@ -3729,6 +3748,7 @@ class BackendUtility
*
* @param string $table Table name
* @return string Where clause if applicable.
* @internal should only be used from within TYPO3 Core
*/
public static function versioningPlaceholderClause($table)
{
......@@ -3745,6 +3765,7 @@ class BackendUtility
* @param string $table Table name
* @param int $workspaceId Workspace ID
* @return string Workspace where clause
* @internal should only be used from within TYPO3 Core
*/
public static function getWorkspaceWhereClause($table, $workspaceId = null)
{
......@@ -3766,6 +3787,7 @@ class BackendUtility
* @param string $table Table name
* @param int $uid Record uid (of live record placeholder)
* @return int Uid of offline version if any, otherwise live uid.
* @internal should only be used from within TYPO3 Core
*/
public static function wsMapId($table, $uid)
{
......@@ -3789,6 +3811,7 @@ class BackendUtility
* @param string $fields Field list, default is *
* @param int|null $workspace The workspace to be used
* @return array|bool If found, the record, otherwise false
* @internal should only be used from within TYPO3 Core
*/
public static function getMovePlaceholder($table, $uid, $fields = '*', $workspace = null)
{
......@@ -3912,6 +3935,7 @@ class BackendUtility
*
* @param string $interface Name of the backend interface (backend, frontend) to look up the script name for. If no interface is given, the interface for the current backend user is used.
* @return string The name of the backend script relative to the TYPO3 main directory.
* @internal should only be used from within TYPO3 Core
*/
public static function getBackendScript($interface = '')
{
......
......@@ -142,6 +142,7 @@ class BackendUserAuthentication extends AbstractUserAuthentication
/**
* List of group_id's in the order they are processed.
* @var array
* @internal should only be used from within TYPO3 Core
*/
public $includeGroupArray = [];
......@@ -157,6 +158,7 @@ class BackendUserAuthentication extends AbstractUserAuthentication
/**
* Contains last error message
* @internal should only be used from within TYPO3 Core
* @var string
*/
public $errorMsg = '';
......@@ -255,11 +257,13 @@ class BackendUserAuthentication extends AbstractUserAuthentication
* The value must be at least 180 to avoid side effects.
*
* @var int
* @internal should only be used from within TYPO3 Core
*/
public $sessionTimeout = 28800;
/**
* @var int
* @internal should only be used from within TYPO3 Core
*/
public $firstMainGroup = 0;
......@@ -277,6 +281,7 @@ class BackendUserAuthentication extends AbstractUserAuthentication
* moduleData
* moduleSessionID
* @var array
* @internal should only be used from within TYPO3 Core
*/
public $uc_default = [
'interfaceSetup' => '',
......@@ -329,6 +334,7 @@ class BackendUserAuthentication extends AbstractUserAuthentication
*
* @param int $groupId Group ID to look for in $this->groupList
* @return bool
* @internal should only be used from within TYPO3 Core, use Context API for quicker access
*/
public function isMemberOfGroup($groupId)
{
......@@ -521,6 +527,7 @@ class BackendUserAuthentication extends AbstractUserAuthentication
*
* @param int $perms Permission mask to use, see function description
* @return string Part of where clause. Prefix " AND " to this.
* @internal should only be used from within TYPO3 Core, use PagePermissionDatabaseRestriction instead.
*/
public function getPagePermsClause($perms)
{
......@@ -631,6 +638,7 @@ class BackendUserAuthentication extends AbstractUserAuthentication
* Returns TRUE if the RTE (Rich Text Editor) is enabled for the user.
*
* @return bool
* @internal should only be used from within TYPO3 Core
*/
public function isRTE()
{
......@@ -800,6 +808,7 @@ class BackendUserAuthentication extends AbstractUserAuthentication
* @param bool $deletedRecord Set, if testing a deleted record array.
* @param bool $checkFullLanguageAccess Set, whenever access to all translations of the record is required
* @return bool TRUE if OK, otherwise FALSE
* @internal should only be used from within TYPO3 Core
*/
public function recordEditAccessInternals($table, $idOrRow, $newRecord = false, $deletedRecord = false, $checkFullLanguageAccess = false)
{
......@@ -915,6 +924,7 @@ class BackendUserAuthentication extends AbstractUserAuthentication
* @param string $table Table of record
* @param array|int $recData Integer (record uid) or array where fields are at least: pid, t3ver_wsid, t3ver_oid, t3ver_stage (if versioningWS is set)
* @return string String error code, telling the failure state. FALSE=All ok
* @internal should only be used from within TYPO3 Core
*/
public function workspaceCannotEditRecord($table, $recData)
{
......@@ -992,6 +1002,7 @@ class BackendUserAuthentication extends AbstractUserAuthentication
* @param int $pid PID value to check for. OBSOLETE!
* @param string $table Table name
* @return mixed Returns FALSE if a live record cannot be created and must be versionized in order to do so. 2 means a) Workspace is "Live" or workspace allows "live edit" of records from non-versionized tables (and the $table is not versionizable). 1 and -1 means the pid is inside a versionized branch where -1 means that the branch-point did NOT allow a new record according to its state.
* @internal should only be used from within TYPO3 Core
*/
public function workspaceAllowLiveRecordsInPID($pid, $table)
{
......@@ -1016,6 +1027,7 @@ class BackendUserAuthentication extends AbstractUserAuthentication
*
* @param string $table
* @return bool
* @internal should only be used from within TYPO3 Core
*/
public function workspaceAllowsLiveEditingInTable(string $table): bool
{
......@@ -1044,6 +1056,7 @@ class BackendUserAuthentication extends AbstractUserAuthentication
* @param int $pid Page id. This value must be the _ORIG_uid if available: So when you have pages versionized as "page" or "element" you must supply the id of the page version in the workspace!
* @param string $table Table name
* @return bool TRUE if OK.
* @internal should only be used from within TYPO3 Core
*/
public function workspaceCreateNewRecord($pid, $table)
{
......@@ -1062,6 +1075,7 @@ class BackendUserAuthentication extends AbstractUserAuthentication
*
* @param string $table Table name
* @return bool
* @internal should only be used from within TYPO3 Core
*/
public function workspaceCanCreateNewRecord(string $table): bool
{
......@@ -1082,6 +1096,7 @@ class BackendUserAuthentication extends AbstractUserAuthentication
* @param int $id UID of record
* @param int $recpid PID of record
* @return bool TRUE if ok.
* @internal should only be used from within TYPO3 Core
*/
public function workspaceAllowAutoCreation($table, $id, $recpid)
{
......@@ -1111,6 +1126,7 @@ class BackendUserAuthentication extends AbstractUserAuthentication
*
* @param int $stage Stage id from an element: -1,0 = editing, 1 = reviewer, >1 = owner
* @return bool TRUE if user is allowed access
* @internal should only be used from within TYPO3 Core
*/
public function workspaceCheckStageForCurrent($stage)
{
......@@ -2038,6 +2054,7 @@ TCAdefaults.sys_note.email = ' . $this->user['email'];
* Called from within this function, see fetchGroupData()
*
* @see fetchGroupData()
* @internal should only be used from within TYPO3 Core
*/
public function workspaceInit()
{
......@@ -2085,6 +2102,7 @@ TCAdefaults.sys_note.email = ' . $this->user['email'];
* @param mixed $wsRec If integer, workspace record is looked up, if array it is seen as a Workspace record with at least uid, title, members and adminusers columns. Can be faked for workspaces uid 0 and -1 (online and offline)
* @param string $fields List of fields to select. Default fields are all
* @return array Output will also show how access was granted. Admin users will have a true output regardless of input.
* @internal should only be used from within TYPO3 Core
*/
public function checkWorkspace($wsRec, $fields = '*')
{
......@@ -2155,6 +2173,7 @@ TCAdefaults.sys_note.email = ' . $this->user['email'];
*
* @return array See checkWorkspace()
* @see checkWorkspace()
* @internal should only be used from within TYPO3 Core
*/
public function checkWorkspaceCurrent()
{
......@@ -2168,6 +2187,7 @@ TCAdefaults.sys_note.email = ' . $this->user['email'];
* Setting workspace ID
*
* @param int $workspaceId ID of workspace to set for backend user. If not valid the default workspace for BE user is found and set.
* @internal should only be used from within TYPO3 Core
*/
public function setWorkspace($workspaceId)
{
......@@ -2194,6 +2214,7 @@ TCAdefaults.sys_note.email = ' . $this->user['email'];
*
* @param int $workspaceId
* @return bool
* @internal should only be used from within TYPO3 Core
*/
public function setTemporaryWorkspace($workspaceId)
{
......@@ -2211,6 +2232,7 @@ TCAdefaults.sys_note.email = ' . $this->user['email'];
/**
* Sets the default workspace in the context of the current backend user.
* @internal should only be used from within TYPO3 Core
*/
public function setDefaultWorkspace()
{
......@@ -2224,6 +2246,7 @@ TCAdefaults.sys_note.email = ' . $this->user['email'];
* Live workspace, if he has access to. If no workspace is available for the user, the workspace ID is set to "-99"
*
* @return int Default workspace id.
* @internal should only be used from within TYPO3 Core
*/
public function getDefaultWorkspace()
{
......@@ -2456,6 +2479,7 @@ TCAdefaults.sys_note.email = ' . $this->user['email'];
* then make an IP comparison with REMOTE_ADDR and check if the IP address matches
*
* @return bool TRUE, if IP address validates OK (or no check is done at all because no restriction is set)
* @internal should only be used from within TYPO3 Core
*/
public function checkLockToIP()
{
......
.. include:: ../../Includes.txt
============================================================================================
Important: #91095 - Various methods and properties of Backend-related Core APIs now internal
============================================================================================
See :issue:`91095`
Description
===========
Some cornerstones of TYPO3 Core have been kept and migrated since before TYPO3 v4.0. This was when PHP 5 and class visibility was not
even available.
Most classes contain various methods which have been marked as
"public", making it public API for TYPO3, even though their usages
should only be available for TYPO3 Core.
All methods are now marked as "@internal", as official Core API
should be used instead.
DataHandler properties and methods: Except for the public methods
that are still available, it is highly recommended to use DataHandler as defined in the official documentation.
The following properties and methods are now marked as internal:
* :php:`DataHandler->checkSimilar`
* :php:`DataHandler->bypassWorkspaceRestrictions`
* :php:`DataHandler->copyWhichTables`
* :php:`DataHandler->defaultValues`
* :php:`DataHandler->overrideValues`
* :php:`DataHandler->data_disableFields`
* :php:`DataHandler->callBackObj`
* :php:`DataHandler->autoVersionIdMap`
* :php:`DataHandler->substNEWwithIDs_table`
* :php:`DataHandler->newRelatedIDs`
* :php:`DataHandler->copyMappingArray_merged`
* :php:`DataHandler->errorLog`
* :php:`DataHandler->pagetreeRefreshFieldsFromPages`
* :php:`DataHandler->pagetreeNeedsRefresh`
* :php:`DataHandler->userid`
* :php:`DataHandler->username`
* :php:`DataHandler->admin`
* :php:`DataHandler->sortIntervals`
* :php:`DataHandler->dbAnalysisStore`
* :php:`DataHandler->registerDBList`
* :php:`DataHandler->registerDBPids`
* :php:`DataHandler->copyMappingArray`
* :php:`DataHandler->remapStack`
* :php:`DataHandler->remapStackRecords`
* :php:`DataHandler->updateRefIndexStack`
* :php:`DataHandler->callFromImpExp`
* :php:`DataHandler->checkValue_currentRecord`
* :php:`DataHandler->setControl()`
* :php:`DataHandler->setMirror()`
* :php:`DataHandler->setDefaultsFromUserTS()`
* :php:`DataHandler->hook_processDatamap_afterDatabaseOperations()`
* :php:`DataHandler->placeholderShadowing()`
* :php:`DataHandler->getPlaceholderTitleForTableLabel()`
* :php:`DataHandler->fillInFieldArray()`
* :php:`DataHandler->checkValue()`
* :php:`DataHandler->checkValue_SW()`
* :php:`DataHandler->checkValue_flexArray2Xml()`
* :php:`DataHandler->checkValue_inline()`
* :php:`DataHandler->checkValueForInline()`
* :php:`DataHandler->checkValue_checkMax()`
* :php:`DataHandler->getUnique()`
* :php:`DataHandler->getRecordsWithSameValue()`
* :php:`DataHandler->checkValue_text_Eval()`
* :php:`DataHandler->checkValue_input_Eval()`
* :php:`DataHandler->checkValue_group_select_processDBdata()`
* :php:`DataHandler->checkValue_group_select_explodeSelectGroupValue()`
* :php:`DataHandler->checkValue_flex_procInData()`
* :php:`DataHandler->checkValue_flex_procInData_travDS()`
* :php:`DataHandler->copyRecord()`
* :php:`DataHandler->copyPages()`
* :php:`DataHandler->copySpecificPage()`
* :php:`DataHandler->copyRecord_raw()`
* :php:`DataHandler->insertNewCopyVersion()`
* :php:`DataHandler->copyRecord_flexFormCallBack()`
* :php:`DataHandler->copyL10nOverlayRecords()`
* :php:`DataHandler->moveRecord()`
* :php:`DataHandler->moveRecord_raw()`
* :php:`DataHandler->moveRecord_procFields()`
* :php:`DataHandler->moveRecord_procBasedOnFieldType()`
* :php:`DataHandler->moveL10nOverlayRecords()`
* :php:`DataHandler->localize()`
* :php:`DataHandler->deleteAction()`
* :php:`DataHandler->deleteEl()`
* :php:`DataHandler->deleteVersionsForRecord()`
* :php:`DataHandler->undeleteRecord()`
* :php:`DataHandler->deleteRecord()`
* :php:`DataHandler->deletePages()`
* :php:`DataHandler->canDeletePage()`
* :php:`DataHandler->cannotDeleteRecord()`
* :php:`DataHandler->isRecordUndeletable()`
* :php:`DataHandler->deleteRecord_procFields()`
* :php:`DataHandler->deleteRecord_procBasedOnFieldType()`
* :php:`DataHandler->deleteL10nOverlayRecords()`
* :php:`DataHandler->versionizeRecord()`
* :php:`DataHandler->version_remapMMForVersionSwap()`
* :php:`DataHandler->version_remapMMForVersionSwap_flexFormCallBack()`
* :php:`DataHandler->version_remapMMForVersionSwap_execSwap()`
* :php:`DataHandler->remapListedDBRecords()`
* :php:`DataHandler->remapListedDBRecords_flexFormCallBack()`
* :php:`DataHandler->remapListedDBRecords_procDBRefs()`
* :php:`DataHandler->remapListedDBRecords_procInline()`
* :php:`DataHandler->processRemapStack()`
* :php:`DataHandler->addRemapAction()`
* :php:`DataHandler->addRemapStackRefIndex()`
* :php:`DataHandler->getVersionizedIncomingFieldArray()`
* :php:`DataHandler->checkModifyAccessList()`
* :php:`DataHandler->isRecordInWebMount()`
* :php:`DataHandler->isInWebMount()`
* :php:`DataHandler->checkRecordUpdateAccess()`
* :php:`DataHandler->checkRecordInsertAccess()`
* :php:`DataHandler->isTableAllowedForThisPage()`
* :php:`DataHandler->doesRecordExist()`
* :php:`DataHandler->doesBranchExist()`
* :php:`DataHandler->tableReadOnly()`
* :php:`DataHandler->tableAdminOnly()`
* :php:`DataHandler->destNotInsideSelf()`
* :php:`DataHandler->getExcludeListArray()`
* :php:`DataHandler->doesPageHaveUnallowedTables()`
* :php:`DataHandler->pageInfo()`
* :php:`DataHandler->recordInfo()`
* :php:`DataHandler->getRecordProperties()`
* :php:`DataHandler->getRecordPropertiesFromRow()`
* :php:`DataHandler->eventPid()`
* :php:`DataHandler->updateDB()`
* :php:`DataHandler->insertDB()`
* :php:`DataHandler->checkStoredRecord()`
* :php:`DataHandler->setHistory()`
* :php:`DataHandler->updateRefIndex()`
* :php:`DataHandler->getSortNumber()`
* :php:`DataHandler->newFieldArray()`
* :php:`DataHandler->addDefaultPermittedLanguageIfNotSet()`
* :php:`DataHandler->overrideFieldArray()`
* :php:`DataHandler->compareFieldArrayWithCurrentAndUnset()`
* :php:`DataHandler->convNumEntityToByteValue()`
* :php:`DataHandler->deleteClause()`
* :php:`DataHandler->getTableEntries()`
* :php:`DataHandler->getPID()`
* :php:`DataHandler->dbAnalysisStoreExec()`
* :php:`DataHandler->int_pageTreeInfo()`
* :php:`DataHandler->compileAdminTables()`
* :php:`DataHandler->fixUniqueInPid()`
* :php:`DataHandler->fixCopyAfterDuplFields()`
* :php:`DataHandler->isReferenceField()`
* :php:`DataHandler->getInlineFieldType()`
* :php:`DataHandler->getCopyHeader()`
* :php:`DataHandler->prependLabel()`
* :php:`DataHandler->resolvePid()`
* :php:`DataHandler->clearPrefixFromValue()`
* :php:`DataHandler->isRecordCopied()`
* :php:`DataHandler->log()`
* :php:`DataHandler->newlog()`
* :php:`DataHandler->printLogErrorMessages()`
* :php:`DataHandler->insertUpdateDB_preprocessBasedOnFieldType()`
* :php:`DataHandler->hasDeletedRecord()`
* :php:`DataHandler->getAutoVersionId()`
* :php:`DataHandler->getHistoryRecords()`
The reason for this long list is this: If the DataHandler API is
not called via `start()` and the process_* methods, but rather
the methods would be called directly, certain hooks would be disabled completely, resulting in a huge data inconsistency.
At this point, it is highly recommended to use the official API
of DataHandler as written in the main documentation.
Various BackendUtility methods are called statically, but cannot
guarantee any Context. Short-hand functions for TCA or Database
Queries are now better suited by using the appropriate Database
Restrictions.
* :php:`BackendUtility::purgeComputedPropertiesFromRecord()`
* :php:`BackendUtility::purgeComputedPropertyNames()`
* :php:`BackendUtility::splitTable_Uid()`
* :php:`BackendUtility::BEenableFields()`
* :php:`BackendUtility::openPageTree()`
* :php:`BackendUtility::getUserNames()`
* :php:`BackendUtility::getGroupNames()`
* :php:`BackendUtility::blindUserNames()`
* :php:`BackendUtility::blindGroupNames()`
* :php:`BackendUtility::getCommonSelectFields()`
* :php:`BackendUtility::helpTextArray()`
* :php:`BackendUtility::helpText()`
* :php:`BackendUtility::wrapInHelp()`
* :php:`BackendUtility::softRefParserObj()`
* :php:`BackendUtility::explodeSoftRefParserList()`
* :php:`BackendUtility::selectVersionsOfRecord()`
* :php:`BackendUtility::fixVersioningPid()`
* :php:`BackendUtility::movePlhOL()`
* :php:`BackendUtility::getLiveVersionIdOfRecord()`
* :php:`BackendUtility::versioningPlaceholderClause()`
* :php:`BackendUtility::getWorkspaceWhereClause()`
* :php:`BackendUtility::wsMapId()`
* :php:`BackendUtility::getMovePlaceholder()`
* :php:`BackendUtility::getBackendScript()`
* :php:`BackendUtility::getWorkspaceWhereClause()`
BackendUserAuthentication a.k.a. :php:`$GLOBALS['BE_USER']` contains a lot of internal calls and properties which are only
used for within TYPO3 Core or to keep state. This should not
be exposed in the future anymore, especially when a more flexible
permission system might get introduced. The affected properties
and methods are:
* :php:`BackendUserAuthentication->includeGroupArray`
* :php:`BackendUserAuthentication->errorMsg`
* :php:`BackendUserAuthentication->sessionTimeout`
* :php:`BackendUserAuthentication->firstMainGroup`
* :php:`BackendUserAuthentication->uc_default`
* :php:`BackendUserAuthentication->isMemberOfGroup()`
* :php:`BackendUserAuthentication->getPagePermsClause()`
* :php:`BackendUserAuthentication->isRTE()`
* :php:`BackendUserAuthentication->recordEditAccessInternals()`
* :php:`BackendUserAuthentication->workspaceCannotEditRecord()`
* :php:`BackendUserAuthentication->workspaceAllowLiveRecordsInPID()`
* :php:`BackendUserAuthentication->workspaceAllowsLiveEditingInTable()`
* :php:`BackendUserAuthentication->workspaceCreateNewRecord()`
* :php:`BackendUserAuthentication->workspaceCanCreateNewRecord()`
* :php:`BackendUserAuthentication->workspaceAllowAutoCreation()`
* :php:`BackendUserAuthentication->workspaceCheckStageForCurrent()`
* :php:`BackendUserAuthentication->workspaceInit()`
* :php:`BackendUserAuthentication->checkWorkspace()`
* :php:`BackendUserAuthentication->checkWorkspaceCurrent()`
* :php:`BackendUserAuthentication->setWorkspace()`
* :php:`BackendUserAuthentication->setTemporaryWorkspace()`
* :php:`BackendUserAuthentication->setDefaultWorkspace()`
* :php:`BackendUserAuthentication->getDefaultWorkspace()`
* :php:`BackendUserAuthentication->checkLockToIP()`
.. index:: Backend, PHP-API, ext:backend
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment