94 lines
2.6 KiB
Dart
94 lines
2.6 KiB
Dart
import 'dart:io';
|
|
|
|
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 '../../data/accountModel.dart';
|
|
|
|
class Login extends StatefulWidget {
|
|
const Login({Key? key}) : super(key: key);
|
|
|
|
@override
|
|
State<Login> createState() => _LoginState();
|
|
}
|
|
|
|
class _LoginState extends State<Login> {
|
|
Duration get loginTime => const Duration(milliseconds: 2250);
|
|
|
|
final Future<SharedPreferences> _storage = SharedPreferences.getInstance();
|
|
|
|
String? checkInput(value){
|
|
return (value ?? "").length < 5 ? "Eingabe zu kurz" : null;
|
|
}
|
|
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return FlutterLogin(
|
|
logo: Image.file(File("assets/logo/icon.png")).image,
|
|
|
|
userValidator: checkInput,
|
|
passwordValidator: checkInput,
|
|
|
|
onLogin: _authUser,
|
|
onSignup: null,
|
|
onRecoverPassword: _recoverPassword,
|
|
|
|
theme: LoginTheme(
|
|
primaryColor: Theme.of(context).primaryColor,
|
|
cardTheme: const CardTheme(
|
|
elevation: 10,
|
|
shape: InputBorder.none,
|
|
),
|
|
),
|
|
|
|
messages: LoginMessages(
|
|
loginButton: "Anmelden",
|
|
userHint: "Nutzername",
|
|
passwordHint: "Passwort",
|
|
),
|
|
|
|
disableCustomPageTransformer: true,
|
|
|
|
headerWidget: const Padding(
|
|
padding: EdgeInsets.only(bottom: 10),
|
|
child: Center(
|
|
child: Text(
|
|
"Dies ist ein Inoffizieller Nextclient & Webuntis Client und wird nicht vom Marianum selbst betrieben.\nBitte bedenke, dass deine persönlichen Anmelde & Infodaten durch dritte, nicht vom Marianum betriebene, Systeme geleitet werden!",
|
|
textAlign: TextAlign.center,
|
|
),
|
|
),
|
|
),
|
|
|
|
footer: "Marianum Fulda - Die persönliche Schule!",
|
|
title: "Marianum",
|
|
|
|
hideForgotPasswordButton: true,
|
|
userType: LoginUserType.name,
|
|
|
|
);
|
|
}
|
|
|
|
Future<String?> _authUser(LoginData data) async {
|
|
final SharedPreferences preferences = await _storage;
|
|
preferences.setBool("loggedIn", true);
|
|
preferences.setString("username", data.name);
|
|
preferences.setString("password", data.password);
|
|
|
|
debugPrint('Name: ${data.name}, Password: ${data.password}');
|
|
return Future.delayed(loginTime).then((_) {
|
|
Provider.of<AccountModel>(context, listen: false).login();
|
|
return null;
|
|
});
|
|
}
|
|
|
|
Future<String> _recoverPassword(String name) {
|
|
return Future.delayed(loginTime).then((_) {
|
|
return "Diese Funktion steht nicht zur Verfügung!";
|
|
});
|
|
}
|
|
|
|
}
|