/**
  * @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();
 }