     isAdmin = AccountsUtil.isAdmin(@userId)
     config = AccountsUi.config()
     signUpAllowed = config.signUp.enabled
-    unless isAdmin || signUpAllowed
-      throw new Meteor.Error(403, 'SignUp not permitted.')
 
     modifier = Objects.flattenProperties(modifier)
     username = modifier.username

    @unblock()

    existingUser = Meteor.users.findOne(selector)
    if existingUser? && !options.allowUpdate
      throw new Meteor.Error(500, 'User already exists.')
    else if !isAdmin && existingUser? && existingUser._id != @userId
      throw new Meteor.Error(403, 'Not authorized to update other users.')
    unless existingUser
      modifier['profile.signUp.date'] = new Date()

    enabled = modifier.enabled
    if enabled? && !isAdmin
      throw new Meteor.Error(403, 'Only admins can enable/disable users.')
    else if existingUser? and AccountsUtil.isAdmin(existingUser) and enabled?
      throw new Meteor.Error(403, 'Admins cannot be enabled/disabled')
    unless existingUser
      # For users without the `enabled` field, enable them if we don't require sign-up approval
      # or the admin user is creating the new user.
      enabled ?= config.signUp.requireApproval == false || isAdmin
      modifier.enabled = enabled

    Meteor.users.upsert selector, $set: modifier

  user = attempt.user
  config = AccountsUi.config()
  signUp = config.signUp
  if (config.account.enabledByDefault and user.enabled != false) or
      AccountsUtil.isAdmin(user) or
      user.enabled == true
    return true
  else
