mirror of
https://git.selfprivacy.org/kherel/selfprivacy.org.app.git
synced 2025-01-08 00:51:20 +00:00
Merge pull request 'fix(validations): Make validations and errors text more specific' (#135) from validations into master
Reviewed-on: https://git.selfprivacy.org/kherel/selfprivacy.org.app/pulls/135 Reviewed-by: Inex Code <inex.code@selfprivacy.org>
This commit is contained in:
commit
90dd3beae0
|
@ -20,7 +20,7 @@
|
||||||
"connect": "Connect",
|
"connect": "Connect",
|
||||||
"domain": "Domain",
|
"domain": "Domain",
|
||||||
"saving": "Saving…",
|
"saving": "Saving…",
|
||||||
"nickname": "Nickname",
|
"username": "Username",
|
||||||
"loading": "Loading…",
|
"loading": "Loading…",
|
||||||
"later": "Skip to setup later",
|
"later": "Skip to setup later",
|
||||||
"connect_to_existing": "Connect to an existing server",
|
"connect_to_existing": "Connect to an existing server",
|
||||||
|
@ -258,6 +258,7 @@
|
||||||
"could_not_create_user": "Couldn't create user",
|
"could_not_create_user": "Couldn't create user",
|
||||||
"could_not_delete_user": "Couldn't delete user",
|
"could_not_delete_user": "Couldn't delete user",
|
||||||
"could_not_add_ssh_key": "Couldn't add SSH key",
|
"could_not_add_ssh_key": "Couldn't add SSH key",
|
||||||
|
"username_rule": "Username must contain only lowercase latin letters, digits and underscores, should not start with a digit",
|
||||||
"email_login": "Email login",
|
"email_login": "Email login",
|
||||||
"no_ssh_notice": "Only email and SSH accounts are created for this user. Single Sign On for all services is coming soon."
|
"no_ssh_notice": "Only email and SSH accounts are created for this user. Single Sign On for all services is coming soon."
|
||||||
},
|
},
|
||||||
|
@ -286,7 +287,7 @@
|
||||||
"check": "Check",
|
"check": "Check",
|
||||||
"one_more_restart": "One more restart to apply your security certificates.",
|
"one_more_restart": "One more restart to apply your security certificates.",
|
||||||
"create_master_account": "Create master account",
|
"create_master_account": "Create master account",
|
||||||
"enter_nickname_and_password": "Enter a nickname and strong password",
|
"enter_username_and_password": "Enter username and strong password",
|
||||||
"finish": "Everything is initialized",
|
"finish": "Everything is initialized",
|
||||||
"checks": "Checks have been completed \n{} out of {}"
|
"checks": "Checks have been completed \n{} out of {}"
|
||||||
},
|
},
|
||||||
|
@ -418,13 +419,13 @@
|
||||||
"reset_user_password": "Reset password of user"
|
"reset_user_password": "Reset password of user"
|
||||||
},
|
},
|
||||||
"validations": {
|
"validations": {
|
||||||
"required": "Required.",
|
"required": "Required",
|
||||||
"invalid_format": "Invalid format.",
|
"already_exist": "Already exists",
|
||||||
"root_name": "User name cannot be 'root'.",
|
"invalid_format": "Invalid format",
|
||||||
"key_format": "Invalid key format.",
|
"invalid_format_password": "Must not contain empty characters",
|
||||||
"length_not_equal": "Length is []. Should be {}.",
|
"invalid_format_ssh": "Must follow the SSH key format",
|
||||||
"length_longer": "Length is []. Should be shorter than or equal to {}.",
|
"root_name": "Cannot be 'root'",
|
||||||
"user_already_exist": "This user already exists.",
|
"length_not_equal": "Length is [], should be {}",
|
||||||
"key_already_exists": "This key already exists."
|
"length_longer": "Length is [], should be shorter than or equal to {}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
"connect": "Подключить",
|
"connect": "Подключить",
|
||||||
"domain": "Домен",
|
"domain": "Домен",
|
||||||
"saving": "Сохранение…",
|
"saving": "Сохранение…",
|
||||||
"nickname": "Никнейм",
|
"username": "Имя пользователя",
|
||||||
"loading": "Загрузка…",
|
"loading": "Загрузка…",
|
||||||
"later": "Пропустить и настроить потом",
|
"later": "Пропустить и настроить потом",
|
||||||
"connect_to_existing": "Подключиться к существующему серверу",
|
"connect_to_existing": "Подключиться к существующему серверу",
|
||||||
|
@ -258,6 +258,7 @@
|
||||||
"could_not_create_user": "Не удалось создать пользователя",
|
"could_not_create_user": "Не удалось создать пользователя",
|
||||||
"could_not_delete_user": "Не удалось стереть пользователя",
|
"could_not_delete_user": "Не удалось стереть пользователя",
|
||||||
"could_not_add_ssh_key": "Не удалось создать SSH ключить",
|
"could_not_add_ssh_key": "Не удалось создать SSH ключить",
|
||||||
|
"username_rule": "Имя может содержать только маленькие латинские буквы, цифры, подчёркивания, не может начинаться с цифр",
|
||||||
"email_login": "Авторизация по Email",
|
"email_login": "Авторизация по Email",
|
||||||
"no_ssh_notice": "Для этого пользователя созданы только SSH и Email аккаунты. Единая авторизация для всех сервисов ещё не реализована."
|
"no_ssh_notice": "Для этого пользователя созданы только SSH и Email аккаунты. Единая авторизация для всех сервисов ещё не реализована."
|
||||||
},
|
},
|
||||||
|
@ -286,7 +287,7 @@
|
||||||
"check": "Проверка",
|
"check": "Проверка",
|
||||||
"one_more_restart": "Сейчас будет дополнительная перезагрузка для активации сертификатов безопасности.",
|
"one_more_restart": "Сейчас будет дополнительная перезагрузка для активации сертификатов безопасности.",
|
||||||
"create_master_account": "Создайте главную учетную запись",
|
"create_master_account": "Создайте главную учетную запись",
|
||||||
"enter_nickname_and_password": "Введите никнейм и сложный пароль",
|
"enter_username_and_password": "Введите имя пользователя и сложный пароль",
|
||||||
"finish": "Всё инициализировано",
|
"finish": "Всё инициализировано",
|
||||||
"checks": "Проверок выполнено: \n{} / {}"
|
"checks": "Проверок выполнено: \n{} / {}"
|
||||||
},
|
},
|
||||||
|
@ -419,13 +420,13 @@
|
||||||
"reset_user_password": "Сбросить пароль пользователя"
|
"reset_user_password": "Сбросить пароль пользователя"
|
||||||
},
|
},
|
||||||
"validations": {
|
"validations": {
|
||||||
"required": "Обязательное поле.",
|
"required": "Обязательное поле",
|
||||||
"invalid_format": "Неверный формат.",
|
"already_exist": "Уже существует",
|
||||||
"root_name": "Имя пользователя не может быть 'root'.",
|
"invalid_format": "Неверный формат",
|
||||||
"key_format": "Неверный формат.",
|
"invalid_format_password": "Должен не содержать пустые символы",
|
||||||
"length_not_equal": "Длина строки []. Должно быть равно {}.",
|
"invalid_format_ssh": "Должен следовать формату SSH ключей",
|
||||||
"length_longer": "Длина строки []. Должно быть меньше либо равно {}.",
|
"root_name": "Имя пользователя не может быть 'root'",
|
||||||
"user_already_exist": "Имя уже используется.",
|
"length_not_equal": "Длина строки [], должно быть равно {}",
|
||||||
"key_already_exists": "Этот ключ уже добавлен."
|
"length_longer": "Длина строки [], должно быть меньше либо равно {}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,7 +28,7 @@ class FieldCubitFactory {
|
||||||
ValidationModel(
|
ValidationModel(
|
||||||
(final String login) =>
|
(final String login) =>
|
||||||
context.read<UsersCubit>().state.isLoginRegistered(login),
|
context.read<UsersCubit>().state.isLoginRegistered(login),
|
||||||
'validations.user_already_exist'.tr(),
|
'validations.already_exist'.tr(),
|
||||||
),
|
),
|
||||||
RequiredStringValidation('validations.required'.tr()),
|
RequiredStringValidation('validations.required'.tr()),
|
||||||
LengthStringLongerValidation(userMaxLength),
|
LengthStringLongerValidation(userMaxLength),
|
||||||
|
@ -52,7 +52,7 @@ class FieldCubitFactory {
|
||||||
RequiredStringValidation('validations.required'.tr()),
|
RequiredStringValidation('validations.required'.tr()),
|
||||||
ValidationModel<String>(
|
ValidationModel<String>(
|
||||||
passwordForbiddenRegExp.hasMatch,
|
passwordForbiddenRegExp.hasMatch,
|
||||||
'validations.invalid_format'.tr(),
|
'validations.invalid_format_password'.tr(),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
|
|
|
@ -14,7 +14,7 @@ class DnsProviderFormCubit extends FormCubit {
|
||||||
RequiredStringValidation('validations.required'.tr()),
|
RequiredStringValidation('validations.required'.tr()),
|
||||||
ValidationModel<String>(
|
ValidationModel<String>(
|
||||||
regExp.hasMatch,
|
regExp.hasMatch,
|
||||||
'validations.key_format'.tr(),
|
'validations.invalid_format'.tr(),
|
||||||
),
|
),
|
||||||
LengthStringNotEqualValidation(40)
|
LengthStringNotEqualValidation(40)
|
||||||
],
|
],
|
||||||
|
|
|
@ -15,7 +15,7 @@ class ProviderFormCubit extends FormCubit {
|
||||||
RequiredStringValidation('validations.required'.tr()),
|
RequiredStringValidation('validations.required'.tr()),
|
||||||
ValidationModel<String>(
|
ValidationModel<String>(
|
||||||
regExp.hasMatch,
|
regExp.hasMatch,
|
||||||
'validations.key_format'.tr(),
|
'validations.invalid_format'.tr(),
|
||||||
),
|
),
|
||||||
LengthStringNotEqualValidation(64)
|
LengthStringNotEqualValidation(64)
|
||||||
],
|
],
|
||||||
|
|
|
@ -21,7 +21,7 @@ class SshFormCubit extends FormCubit {
|
||||||
ValidationModel(
|
ValidationModel(
|
||||||
(final String newKey) =>
|
(final String newKey) =>
|
||||||
user.sshKeys.any((final String key) => key == newKey),
|
user.sshKeys.any((final String key) => key == newKey),
|
||||||
'validations.key_already_exists'.tr(),
|
'validations.already_exists'.tr(),
|
||||||
),
|
),
|
||||||
RequiredStringValidation('validations.required'.tr()),
|
RequiredStringValidation('validations.required'.tr()),
|
||||||
ValidationModel<String>(
|
ValidationModel<String>(
|
||||||
|
@ -30,7 +30,7 @@ class SshFormCubit extends FormCubit {
|
||||||
print(keyRegExp.hasMatch(s));
|
print(keyRegExp.hasMatch(s));
|
||||||
return !keyRegExp.hasMatch(s);
|
return !keyRegExp.hasMatch(s);
|
||||||
},
|
},
|
||||||
'validations.invalid_format'.tr(),
|
'validations.invalid_format_ssh'.tr(),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
|
|
|
@ -415,15 +415,23 @@ class InitializingPage extends StatelessWidget {
|
||||||
BrandText.h2('initializing.create_master_account'.tr()),
|
BrandText.h2('initializing.create_master_account'.tr()),
|
||||||
const SizedBox(height: 10),
|
const SizedBox(height: 10),
|
||||||
BrandText.body2(
|
BrandText.body2(
|
||||||
'initializing.enter_nickname_and_password'.tr(),
|
'initializing.enter_username_and_password'.tr(),
|
||||||
),
|
),
|
||||||
const Spacer(),
|
const Spacer(),
|
||||||
|
if (formCubitState.isErrorShown)
|
||||||
|
Text(
|
||||||
|
'users.username_rule'.tr(),
|
||||||
|
style: TextStyle(
|
||||||
|
color: Theme.of(context).colorScheme.error,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
const SizedBox(height: 10),
|
||||||
CubitFormTextField(
|
CubitFormTextField(
|
||||||
formFieldCubit: context.read<RootUserFormCubit>().userName,
|
formFieldCubit: context.read<RootUserFormCubit>().userName,
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
scrollPadding: const EdgeInsets.only(bottom: 70),
|
scrollPadding: const EdgeInsets.only(bottom: 70),
|
||||||
decoration: InputDecoration(
|
decoration: InputDecoration(
|
||||||
hintText: 'basis.nickname'.tr(),
|
hintText: 'basis.username'.tr(),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
const SizedBox(height: 10),
|
const SizedBox(height: 10),
|
||||||
|
|
|
@ -55,6 +55,14 @@ class NewUser extends StatelessWidget {
|
||||||
child: Column(
|
child: Column(
|
||||||
mainAxisSize: MainAxisSize.min,
|
mainAxisSize: MainAxisSize.min,
|
||||||
children: [
|
children: [
|
||||||
|
if (formCubitState.isErrorShown)
|
||||||
|
Text(
|
||||||
|
'users.username_rule'.tr(),
|
||||||
|
style: TextStyle(
|
||||||
|
color: Theme.of(context).colorScheme.error,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
const SizedBox(width: 14),
|
||||||
IntrinsicHeight(
|
IntrinsicHeight(
|
||||||
child: CubitFormTextField(
|
child: CubitFormTextField(
|
||||||
formFieldCubit: context.read<UserFormCubit>().login,
|
formFieldCubit: context.read<UserFormCubit>().login,
|
||||||
|
|
Loading…
Reference in a new issue