public function edit($userId, $userName, $userTypeId, $homePageId, $newUserWizard, $hideNavigation, $newPassword = '', $retypeNewPassword = '', $email= '', $libraryQuota = 0, $isPasswordChangeRequired = 0, $firstName = '', $lastName = '', $phone = '', $ref1 = '', $ref2 = '', $ref3 = '', $ref4 = '', $ref5 = '')
    {
        $this->userId = $userId;
        $this->userName = $userName;
        $this->userTypeId = $userTypeId;
        $this->homePageId = $homePageId;
        $this->newPassword = $newPassword;
        $this->retypeNewPassword = $retypeNewPassword;
        $this->newUserWizard = $newUserWizard;
        $this->hideNavigation = $hideNavigation;
        $this->email = $email;
        $this->libraryQuota = $libraryQuota;
        $this->isPasswordChangeRequired = $isPasswordChangeRequired;
        $this->firstName = $firstName;
        $this->lastName = $lastName;
        $this->phone = $phone;
        $this->ref1 = $ref1;
        $this->ref2 = $ref2;
        $this->ref3 = $ref3;
        $this->ref4 = $ref4;
        $this->ref5 = $ref5;

        $this->getLogger()->info('Editing User ID ' . $userId);
        $response = $this->doPut('/user/' . $userId, $this->toArray());

        $this->getLogger()->debug('Passing the response to Hydrate');
        /** @var XiboUser $user */
        $user = $this->hydrate($response);

        return $user;
    }