/** * @param string $validationKey * @param array $params * @param Website $website * @throws \Exception * @return string $userId */ public static function updateFromRegistration($validationKey, $params, $website) { $user = new UserModelWithPassword(); if (!$user->readByProperty('validationKey', $validationKey)) { return false; } if (!$user->validate()) { throw new \Exception("Sorry, your registration link has expired."); } $params['id'] = $user->id->asString(); JsonDecoder::decode($user, $params); $user->setPassword($params['password']); $user->validate(); $user->role = SystemRoles::USER; $user->siteRole[$website->domain] = $website->userDefaultSiteRole; $user->active = true; return $user->write(); }