add validation for login form's server url

This commit is contained in:
Connery Noble
2023-01-14 00:14:09 -08:00
parent 075d603829
commit a485bb2010
20 changed files with 37 additions and 8 deletions
+10 -1
View File
@@ -13,6 +13,7 @@ import 'package:immich_mobile/shared/providers/asset.provider.dart';
import 'package:immich_mobile/modules/login/providers/authentication.provider.dart';
import 'package:immich_mobile/modules/backup/providers/backup.provider.dart';
import 'package:immich_mobile/shared/ui/immich_toast.dart';
import 'package:immich_mobile/utils/url_helper.dart';
import 'package:openapi/api.dart';
class LoginForm extends HookConsumerWidget {
@@ -215,7 +216,15 @@ class ServerEndpointInput extends StatelessWidget {
}) : super(key: key);
String? _validateInput(String? url) {
// Can we do any other validation here instead?
if (url == null || url.isEmpty) return null;
final validate = Uri.tryParse(sanitizeUrl(url));
if (validate == null ||
!validate.isAbsolute ||
!validate.scheme.startsWith("http") ||
validate.host.isEmpty) {
return 'login_form_err_invalid_url'.tr();
}
return null;
}