merged develop

This commit is contained in:
2026-09-27 14:58:07 +02:00
188 changed files with 7474 additions and 2558 deletions
@@ -11,6 +11,7 @@ import '../../api/marianumconnect/queries/auth_guardian/guardian_login_exception
import '../../auth_link/device_binding.dart';
import '../../auth_link/guardian_login_link.dart';
import '../../auth_link/pending_guardian_request.dart';
import '../../model/session_wipe.dart';
import '../../session/session.dart';
import '../../session/session_manager.dart';
import '../../widget_data/widget_sync.dart';
@@ -216,6 +217,9 @@ class GuardianLoginController extends ChangeNotifier {
}
static Future<void> _defaultSignIn(Session session) async {
// The previous account's wipe runs deferred; racing it would let it
// clear what this login stores.
await SessionWipe.done;
// Sign in first: the one-time code is already spent at this point, so a
// failing widget reset must not cost the session (the user would have to
// request a fresh mail for a login that actually succeeded).
+5
View File
@@ -10,6 +10,7 @@ import '../../api/marianumconnect/auth/device_token_name.dart';
import '../../api/marianumconnect/auth/token_storage.dart';
import '../../api/marianumconnect/queries/auth_login/auth_login.dart';
import '../../api/marianumconnect/queries/auth_logout/auth_logout.dart';
import '../../model/session_wipe.dart';
import '../../session/session.dart';
import '../../session/session_manager.dart';
import '../../widget_data/widget_sync.dart';
@@ -47,6 +48,10 @@ class LoginController extends ChangeNotifier {
_errorDetails = null;
notifyListeners();
// The previous account's wipe runs deferred; racing it would let it
// clear what this login stores (widget job, caches).
await SessionWipe.done;
final user = username.trim().toLowerCase();
// Demo login: the prefix enters local demo mode, password ignored, no
+2 -2
View File
@@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
/// Filled, borderless text field look shared by both login cards.
/// Filled, borderless text field look shared by the login cards.
InputDecoration loginInputDecoration(
ThemeData theme,
String label,
@@ -24,7 +24,7 @@ InputDecoration loginInputDecoration(
),
);
/// Card frame with heading and hint line shared by both login cards.
/// Card frame with heading and hint line shared by the login cards.
class LoginCardFrame extends StatelessWidget {
final String title;
final String hint;