Added central user credentials management
This commit is contained in:
@ -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,
|
||||
|
@ -4,8 +4,6 @@ import 'dart:io';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:loader_overlay/loader_overlay.dart';
|
||||
import 'package:marianum_mobile/storage/base/settingsProvider.dart';
|
||||
import 'package:marianum_mobile/widget/loadingSpinner.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
import '../../../api/marianumcloud/webdav/queries/listFiles/cacheableFile.dart';
|
||||
@ -13,7 +11,9 @@ import '../../../api/marianumcloud/webdav/queries/listFiles/listFilesCache.dart'
|
||||
import '../../../api/marianumcloud/webdav/queries/listFiles/listFilesResponse.dart';
|
||||
import '../../../api/marianumcloud/webdav/webdavApi.dart';
|
||||
import '../../../model/files/filesProps.dart';
|
||||
import '../../../widget/errorView.dart';
|
||||
import '../../../storage/base/settingsProvider.dart';
|
||||
import '../../../widget/loadingSpinner.dart';
|
||||
import '../../../widget/placeholderView.dart';
|
||||
import '../../../widget/filePick.dart';
|
||||
import 'fileUploadDialog.dart';
|
||||
import 'fileElement.dart';
|
||||
@ -224,7 +224,7 @@ class _FilesState extends State<Files> {
|
||||
},
|
||||
child: const Icon(Icons.add),
|
||||
),
|
||||
body: data == null ? const LoadingSpinner() : data!.files.isEmpty ? const ErrorView(icon: Icons.folder_off_rounded, text: "Der Ordner ist leer") : LoaderOverlay(
|
||||
body: data == null ? const LoadingSpinner() : data!.files.isEmpty ? const PlaceholderView(icon: Icons.folder_off_rounded, text: "Der Ordner ist leer") : LoaderOverlay(
|
||||
child: RefreshIndicator(
|
||||
onRefresh: () {
|
||||
_query();
|
||||
|
@ -1,10 +1,9 @@
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:marianum_mobile/widget/loadingSpinner.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
import '../../../../api/mhsl/message/getMessages/getMessagesResponse.dart';
|
||||
import '../../../../model/message/messageProps.dart';
|
||||
import '../../../../widget/loadingSpinner.dart';
|
||||
import 'messageView.dart';
|
||||
|
||||
|
||||
|
@ -4,12 +4,12 @@ import 'package:flowder/flowder.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:jiffy/jiffy.dart';
|
||||
import 'package:marianum_mobile/api/marianumcloud/talk/deleteMessage/deleteMessage.dart';
|
||||
import 'package:marianum_mobile/model/chatList/chatProps.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
import '../../../api/marianumcloud/talk/chat/getChatResponse.dart';
|
||||
import '../../../api/marianumcloud/talk/deleteMessage/deleteMessage.dart';
|
||||
import '../../../api/marianumcloud/talk/room/getRoomResponse.dart';
|
||||
import '../../../model/chatList/chatProps.dart';
|
||||
import '../../../theming/appTheme.dart';
|
||||
import '../../../widget/debug/debugTile.dart';
|
||||
import '../files/fileElement.dart';
|
||||
|
@ -1,14 +1,14 @@
|
||||
|
||||
import 'dart:async';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:marianum_mobile/api/marianumcloud/talk/createRoom/createRoomParams.dart';
|
||||
import 'package:marianum_mobile/widget/confirmDialog.dart';
|
||||
import 'package:marianum_mobile/widget/loadingSpinner.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
import '../../../api/marianumcloud/talk/createRoom/createRoom.dart';
|
||||
import '../../../api/marianumcloud/talk/createRoom/createRoomParams.dart';
|
||||
import '../../../model/chatList/chatListProps.dart';
|
||||
import '../../../storage/base/settingsProvider.dart';
|
||||
import '../../../widget/confirmDialog.dart';
|
||||
import '../../../widget/loadingSpinner.dart';
|
||||
import 'chatTile.dart';
|
||||
import 'joinChat.dart';
|
||||
import 'searchChat.dart';
|
||||
|
@ -2,13 +2,13 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:jiffy/jiffy.dart';
|
||||
import 'package:loader_overlay/loader_overlay.dart';
|
||||
import 'package:marianum_mobile/widget/loadingSpinner.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
import '../../../api/marianumcloud/talk/chat/getChatResponse.dart';
|
||||
import '../../../api/marianumcloud/talk/room/getRoomResponse.dart';
|
||||
import '../../../theming/appTheme.dart';
|
||||
import '../../../model/chatList/chatProps.dart';
|
||||
import '../../../widget/loadingSpinner.dart';
|
||||
import 'chatBubble.dart';
|
||||
import 'chatTextfield.dart';
|
||||
|
||||
|
@ -5,7 +5,7 @@ import 'package:flutter/material.dart';
|
||||
|
||||
import '../../../api/marianumcloud/autocomplete/autocompleteApi.dart';
|
||||
import '../../../api/marianumcloud/autocomplete/autocompleteResponse.dart';
|
||||
import '../../../widget/errorView.dart';
|
||||
import '../../../widget/placeholderView.dart';
|
||||
|
||||
class JoinChat extends SearchDelegate<String> {
|
||||
CancelableOperation<AutocompleteResponse>? future;
|
||||
@ -47,7 +47,7 @@ class JoinChat extends SearchDelegate<String> {
|
||||
if(future != null) future!.cancel();
|
||||
|
||||
if(query.isEmpty) {
|
||||
return const ErrorView(
|
||||
return const PlaceholderView(
|
||||
text: "Suche nach benutzern",
|
||||
icon: Icons.person_search_outlined,
|
||||
);
|
||||
@ -81,7 +81,7 @@ class JoinChat extends SearchDelegate<String> {
|
||||
);
|
||||
} else if(snapshot.hasError) {
|
||||
log(snapshot.error.toString());
|
||||
return ErrorView(text: snapshot.error.toString());
|
||||
return PlaceholderView(icon: Icons.search_off, text: snapshot.error.toString());
|
||||
}
|
||||
|
||||
return const Center(child: CircularProgressIndicator());
|
||||
|
@ -2,7 +2,6 @@
|
||||
import 'dart:developer';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:marianum_mobile/widget/loadingSpinner.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:syncfusion_flutter_calendar/calendar.dart';
|
||||
|
||||
@ -11,7 +10,8 @@ import '../../../api/webuntis/queries/getRooms/getRoomsResponse.dart';
|
||||
import '../../../api/webuntis/queries/getSubjects/getSubjectsResponse.dart';
|
||||
import '../../../model/timetable/timetableProps.dart';
|
||||
import '../../../storage/base/settingsProvider.dart';
|
||||
import '../../../widget/errorView.dart';
|
||||
import '../../../widget/loadingSpinner.dart';
|
||||
import '../../../widget/placeholderView.dart';
|
||||
import 'appointmenetComponent.dart';
|
||||
import 'appointmentDetails.dart';
|
||||
import 'timeRegionComponent.dart';
|
||||
@ -68,7 +68,7 @@ class _TimetableState extends State<Timetable> {
|
||||
GetHolidaysResponse holidays = value.getHolidaysResponse;
|
||||
|
||||
if(value.hasError) {
|
||||
return ErrorView(
|
||||
return PlaceholderView(
|
||||
icon: Icons.calendar_month,
|
||||
text: "Webuntis error: ${value.error.toString()}",
|
||||
);
|
||||
|
@ -5,7 +5,7 @@ import 'package:package_info/package_info.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
|
||||
import '../../model/accountModel.dart';
|
||||
import '../../model/accountData.dart';
|
||||
import '../../storage/base/settingsProvider.dart';
|
||||
import '../../theming/appTheme.dart';
|
||||
import '../../widget/confirmDialog.dart';
|
||||
@ -52,9 +52,9 @@ class _SettingsState extends State<Settings> {
|
||||
onConfirm: () {
|
||||
SharedPreferences.getInstance().then((value) => {
|
||||
value.clear(),
|
||||
}).then((value) => {
|
||||
Provider.of<AccountModel>(context, listen: false).logout(),
|
||||
Navigator.popUntil(context, (route) => !Navigator.canPop(context)),
|
||||
}).then((value) {
|
||||
AccountData().removeData(context);
|
||||
Navigator.popUntil(context, (route) => !Navigator.canPop(context));
|
||||
});
|
||||
},
|
||||
),
|
||||
|
Reference in New Issue
Block a user