diff --git a/lib/models/server.dart b/lib/models/server.dart index 162cef7..6c50164 100644 --- a/lib/models/server.dart +++ b/lib/models/server.dart @@ -5,10 +5,10 @@ class Server { String domain; String? path; int? port; - String user; - String password; + String? user; + String? password; bool defaultServer; - String authToken; + String? authToken; bool runningOnHa; Server({ @@ -18,10 +18,10 @@ class Server { required this.domain, this.path, this.port, - required this.user, - required this.password, + this.user, + this.password, required this.defaultServer, - required this.authToken, + this.authToken, required this.runningOnHa, }); } \ No newline at end of file diff --git a/lib/services/http_requests.dart b/lib/services/http_requests.dart index 5e249e9..1647526 100644 --- a/lib/services/http_requests.dart +++ b/lib/services/http_requests.dart @@ -35,7 +35,9 @@ Future> apiRequest({ HttpClient httpClient = HttpClient(); if (method == 'get') { HttpClientRequest request = await httpClient.getUrl(Uri.parse(connectionString)); - request.headers.set('Authorization', 'Basic ${server.authToken}'); + if (server.authToken != null) { + request.headers.set('Authorization', 'Basic ${server.authToken}'); + } HttpClientResponse response = overrideTimeout == true ? await request.close() : await request.close().timeout(const Duration(seconds: 10)); @@ -60,7 +62,9 @@ Future> apiRequest({ } else if (method == 'post') { HttpClientRequest request = await httpClient.postUrl(Uri.parse(connectionString)); - request.headers.set('Authorization', 'Basic ${server.authToken}'); + if (server.authToken != null) { + request.headers.set('Authorization', 'Basic ${server.authToken}'); + } request.headers.set('content-type', 'application/json'); request.add(utf8.encode(json.encode(body))); HttpClientResponse response = overrideTimeout == true diff --git a/lib/widgets/add_server_modal.dart b/lib/widgets/add_server_modal.dart index e6a7c75..9c81da4 100644 --- a/lib/widgets/add_server_modal.dart +++ b/lib/widgets/add_server_modal.dart @@ -44,10 +44,8 @@ class _AddServerModalState extends State { String? portError; final TextEditingController userController = TextEditingController(); - String? userError; final TextEditingController passwordController = TextEditingController(); - String? passwordError; bool defaultServer = false; @@ -114,9 +112,7 @@ class _AddServerModalState extends State { ipDomainController.text != '' && ipDomainError == null && pathError == null && - portError == null && - userController.text != '' && - passwordController.text != '' + portError == null ) { setState(() { allDataValid = true; @@ -196,34 +192,6 @@ class _AddServerModalState extends State { checkDataValid(); } - void validateUser(String? value) { - if (value != null && value != '') { - setState(() { - userError = null; - }); - } - else { - setState(() { - userError = AppLocalizations.of(context)!.userNotEmpty; - }); - } - checkDataValid(); - } - - void validatePassword(String? value) { - if (value != null && value != '') { - setState(() { - passwordError = null; - }); - } - else { - setState(() { - passwordError = AppLocalizations.of(context)!.passwordNotEmpty; - }); - } - checkDataValid(); - } - @override void initState() { if (widget.server != null) { @@ -232,8 +200,8 @@ class _AddServerModalState extends State { ipDomainController.text = widget.server!.domain; pathController.text = widget.server!.path ?? ''; portController.text = widget.server!.port != null ? widget.server!.port.toString() : ""; - userController.text = widget.server!.user; - passwordController.text = widget.server!.password; + userController.text = widget.server!.user ?? ""; + passwordController.text = widget.server!.password ?? ""; defaultServer = widget.server!.defaultServer; homeAssistant = widget.server!.runningOnHa; } @@ -255,12 +223,12 @@ class _AddServerModalState extends State { connectionMethod: connectionType.name, domain: ipDomainController.text, port: portController.text != '' ? int.parse(portController.text) : null, - user: userController.text, - password: passwordController.text, + user: userController.text != "" ? userController.text : null, + password: passwordController.text != "" ? passwordController.text : null, defaultServer: defaultServer, authToken: homeAssistant == true ? encodeBase64UserPass(userController.text, passwordController.text) - : '', + : null, runningOnHa: homeAssistant ); setState(() => isConnecting = true); @@ -272,7 +240,9 @@ class _AddServerModalState extends State { setState(() => isConnecting = false); if (result['result'] == 'success') { - serverObj.authToken = encodeBase64UserPass(serverObj.user, serverObj.password); + if (serverObj.user != null && serverObj.password != null) { + serverObj.authToken = encodeBase64UserPass(serverObj.user!, serverObj.password!); + } final serverCreated = await serversProvider.createServer(serverObj); if (serverCreated == null) { serversProvider.setServerStatusLoad(0); @@ -366,12 +336,12 @@ class _AddServerModalState extends State { connectionMethod: connectionType.name, domain: ipDomainController.text, port: portController.text != '' ? int.parse(portController.text) : null, - user: userController.text, - password: passwordController.text, + user: userController.text != "" ? userController.text : null, + password: passwordController.text != "" ? passwordController.text : null, defaultServer: defaultServer, authToken: homeAssistant == true ? encodeBase64UserPass(userController.text, passwordController.text) - : '', + : null, runningOnHa: homeAssistant ); @@ -380,7 +350,9 @@ class _AddServerModalState extends State { : await login(serverObj); if (result['result'] == 'success') { - serverObj.authToken = encodeBase64UserPass(serverObj.user, serverObj.password); + if (serverObj.user != null && serverObj.password != null) { + serverObj.authToken = encodeBase64UserPass(serverObj.user!, serverObj.password!); + } final serverSaved = await serversProvider.editServer(serverObj); if (serverSaved == null) { Navigator.pop(context); @@ -576,8 +548,6 @@ class _AddServerModalState extends State { label: AppLocalizations.of(context)!.username, controller: userController, icon: Icons.person_rounded, - onChanged: validateUser, - error: userError ), const SizedBox(height: 20), textField( @@ -585,8 +555,6 @@ class _AddServerModalState extends State { controller: passwordController, icon: Icons.lock_rounded, keyboardType: TextInputType.visiblePassword, - onChanged: validatePassword, - error: passwordError, obscureText: true ), sectionLabel(AppLocalizations.of(context)!.other),