passwordRequires method

String passwordRequires(
  1. BuildContext context,
  2. PasswordProtectionSettings requirements
)

Returns the text displayed when a password input does match the password requirements defined in the amplify configuration.

Implementation

String passwordRequires(
  BuildContext context,
  PasswordProtectionSettings requirements,
) {
  final minLength = requirements.passwordPolicyMinLength;
  final characterReqs = requirements.passwordPolicyCharacters;
  if (minLength == null && (characterReqs.isEmpty)) {
    return '';
  }
  final sb = StringBuffer()
    ..writeln(
      AuthenticatorLocalizations.inputsOf(context)
          .passwordRequirementsPreamble,
    );
  if (minLength != null) {
    final atLeast = AuthenticatorLocalizations.inputsOf(context)
        .passwordRequirementsAtLeast(minLength, '');
    sb.writeln('* $atLeast');
  }
  for (final characterReq in characterReqs) {
    final characterType = AuthenticatorLocalizations.inputsOf(context)
        .passwordRequirementsCharacterType(characterReq.name);
    final atLeast = AuthenticatorLocalizations.inputsOf(context)
        .passwordRequirementsAtLeast(1, characterType);
    sb.writeln('* $atLeast');
  }
  return sb.toString();
}