Added central user credentials management

This commit is contained in:
2023-06-11 18:18:37 +02:00
parent 04c244503e
commit 1521056217
22 changed files with 207 additions and 159 deletions

View File

@ -1,15 +1,11 @@
import 'dart:developer';
import 'package:flutter/material.dart';
import 'package:flutter_login/flutter_login.dart';
import 'package:provider/provider.dart';
import 'package:shared_preferences/shared_preferences.dart';
import '../../api/apiError.dart';
import '../../api/webuntis/queries/authenticate/authenticateParams.dart';
import '../../api/webuntis/queries/authenticate/authenticate.dart';
import '../../api/webuntis/webuntisError.dart';
import '../../model/accountData.dart';
import '../../model/accountModel.dart';
class Login extends StatefulWidget {
@ -27,8 +23,7 @@ class _LoginState extends State<Login> {
}
Future<String?> _login(LoginData data) async {
SharedPreferences preferences = await SharedPreferences.getInstance();
preferences.setBool("loggedIn", false);
AccountData().removeData(context);
try {
await Authenticate(
@ -36,23 +31,17 @@ class _LoginState extends State<Login> {
user: data.name,
password: data.password,
)
).run().then((value) => {
log(value.sessionId)
).run().then((value) async {
await AccountData().setData(context, data.name, data.password);
setState(() {
displayDisclaimerText = false;
});
});
} on WebuntisError catch(e) {
return e.toString();
} on ApiError catch(e) {
} catch(e) {
return e.toString();
}
setState(() {
displayDisclaimerText = false;
});
preferences.setBool("loggedIn", true);
preferences.setString("username", data.name);
preferences.setString("password", data.password);
return null;
}
@ -69,7 +58,7 @@ class _LoginState extends State<Login> {
userValidator: _checkInput,
passwordValidator: _checkInput,
onSubmitAnimationCompleted: () => Provider.of<AccountModel>(context, listen: false).login(),
onSubmitAnimationCompleted: () => Provider.of<AccountModel>(context, listen: false).setState(AccountModelState.loggedIn),
onLogin: _login,
onSignup: null,