it-swarm.com.de

Wie erstelle ich einen Super Admin über JUicer?

Ich versuche über JUser einen neuen SuperAdmin zu erstellen:

    $user = new \JUser(0);
    $user->set('password',\JUserHelper::hashPassword($password));
    $user->set('username','administrator');
    $user->set('groups',array(8));
    $user->groups = array(8);
    $user->save();

Ist das der richtige Weg? Oder sollte ich es anders versuchen?

1
xcidar

Sie haben die E-Mail vergessen, aber ansonsten würde es wahrscheinlich funktionieren. Sie sollten die Eigenschaft groups nicht direkt festlegen, der Setter direkt darüber ist in Ordnung. Außerdem würde ich empfehlen, die Methode getInstance von juser zu verwenden, anstatt manuell neu zu starten. Außerdem sollten Sie Fehler abfangen, falls es eine doppelte E-Mail oder etwas gibt. Es besteht auch die Möglichkeit, dass die Benutzergruppen durcheinander gebracht wurden, z. B. wenn dies für eine verteilte Komponente war, aber wenn Sie wissen, dass der Superuser noch die ID 8 hat, ist dies in Ordnung.

$user = \JUser::getInstance();
$user->set('id',0);
$user->set('password',\JUserHelper::hashPassword($password));
$user->set('username',$username);
$user->set('email', $email);
$user->set('usertype', 'deprecated');
$user->set('groups',array(8));
if (!$user->save()) {
    $error = $user->getError();
}

Hier ist die API-Referenz für alle, die dies lesen: https://api.joomla.org/cms-3/classes/JUser.html

2
jamesgarrett