protected Entity validateLegalUsernameAndEmail(
      Entity entity, AdminUser adminInstance, boolean isAdd) {
    String login = entity.findProperty("login").getValue();
    String email = entity.findProperty("email").getValue();

    // We know the username/email is ok if we're doing an update and they're unchanged
    boolean skipLoginCheck = false;
    boolean skipEmailCheck = !getRequireUniqueEmailAddress();
    if (!isAdd) {
      if (StringUtils.equals(login, adminInstance.getLogin())) {
        skipLoginCheck = true;
      }

      if (!getRequireUniqueEmailAddress() || StringUtils.equals(email, adminInstance.getEmail())) {
        skipEmailCheck = true;
      }
    }

    if (!skipLoginCheck && adminSecurityService.readAdminUserByUserName(login) != null) {
      entity.addValidationError("login", "admin.nonUniqueUsernameError");
      return entity;
    }

    if (!skipEmailCheck
        && CollectionUtils.isNotEmpty(adminSecurityService.readAdminUsersByEmail(email))) {
      entity.addValidationError("email", "admin.nonUniqueEmailError");
      return entity;
    }

    return null;
  }