2013-06-08 2 views
2

Возможно ли создать или удалить пользователя программным способом (без SQL) в расширении typo3?TYPO3 - Создать пользователя программно

+0

Что вы имеете в виду без SQL? Пользователи TYPO3 хранятся в базе данных, поэтому для их создания или их удаления вам понадобится в конце SQL-команда. –

+0

Я думал, что можно использовать функцию TYPO3 для добавления пользователя? (TYPO3 API?) –

+0

Один вопрос для меня - «почему?» ... потому что я не думаю, что TYPO3 изменит db-структуру fe_users или be_users ... в противном случае много (и я действительно много знаю) расширения будут ломаться. – SimonSimCity

ответ

1

некоторые примеры кода:

function createUser() { 
    // TypoScript Template mit userid anlegen 
    // Neue Seite anlegen 
    $tmpId = 'NEWuser478d8d'; 
    $data['be_users'][$tmpId] = array(
     'username' => $this->email, 
     'password' => $this->password, 
     'admin' => 0, 
     'pid' => 0, 
     'usergroup' => $this->usergroup, 
     'lang' => 'de', 
     'email' => $this->email, 
     'db_mountpoints' => '', 
     'realName' => $this->realName, 
     'file_mountpoints' => '', 
     'fileoper_perms' => (int)$this->conf['fileoper_perms'], 
     'options' => '2', // mount from group: filemount, aber nicht dbmount 
     'db_mountpoints' => $this->dbMountPage, 
     'file_mountpoints' => $this->conf['file_mountpoints'], 
     'workspace_perms' => 0, 
     'workspace_id' => 0, 
     'workspace_preview' => 0 
    ); 
    $this->debug($data, 'beuser'); 
    $this->tce->start($data,array()); 
    $this->tce->process_datamap(); 
    $this->userid = $this->tce->substNEWwithIDs[$tmpId]; 
    // t3lib_div::debug('Neue Userid:'.$this->userid); 
    return true; 
} 

AFAIR вам нужно быть пользователю, который является активным, таким образом, создать один:

/** 
* Creates a Be-User 
* 
* @return  void 
*/ 
function setBeUser() { 
    global $BE_USER; 
    unset($BE_USER); 
    $BE_USER  = t3lib_div::makeInstance('t3lib_beUserAuth'); 
    $BE_USER->OS = TYPO3_OS; 
    $BE_USER->setBeUserByUid($this->conf['setBeUserByUid']); 
    $BE_USER->fetchGroupData(); 
    $BE_USER->backendSetUC(); 

    $GLOBALS['BE_USER'] = $BE_USER; 

    $GLOBALS['LANG'] = t3lib_div::makeInstance('language'); 
    $GLOBALS['LANG']->init($BE_USER->uc['lang']); 

    return $BE_USER; 
} 

инициализации т.у.т.:

$this->tce = t3lib_div::makeInstance('t3lib_TCEmain'); 
$this->tce->BE_USER = $this->setBeUser(); 
$this->tce->stripslashes_values = 0; 
$this->createUser(); 
+0

pa-ddy, мы здесь говорим о бэкэнде или внешнем пользователе? – SimonSimCity

+0

$ data ['be_users'] означает, что «Backend User» $ data ['fe_users'] будет означать пользователя Frontend, но затем отметьте поля – maholtz

2

К CRUD фронтэнда пользователи (fe_users) уже есть репозиторий и модель, которые вы можете использовать в своем расширении Extbase. Ниже ...

typo3/sysext/Extbase/Классы/Domain

вы можете найти модель и Repository классов.

Смежные вопросы