/** * Creates a new user with all required and filled out additional fields. * * @param string $username * @param string $email * @param string $password * @param mixed $groupIDs * @param array $userOptions * @param array $additionalFields * @param array $visibleLanguages * @param boolean $addDefaultGroups * @return UserEditor */ public static function create($username, $email, $password, $groupIDs, $userOptions = array(), $additionalFields = array(), $visibleLanguages = array(), $addDefaultGroups = true) { // insert main data $salt = StringUtil::getRandomID(); $password = StringUtil::getDoubleSaltedHash($password, $salt); $userID = self::insert($username, $email, $password, $salt, $additionalFields); // insert user options self::insertUserOptions($userID, $userOptions); // insert groups $user = new UserEditor($userID); $user->addToGroups($groupIDs, false, $addDefaultGroups); $user->addToLanguage($visibleLanguages); return $user; }