registerUserLogin method
Future<RegisterUserSession>
registerUserLogin({
- required String ownerUid,
- required String deviceId,
- required String deviceSecret,
- required String userId,
- required String pin,
- required String cashregisterId,
- bool takeover = false,
- RegisterClientInfo? client,
- RegisterGeo? geo,
Kassen-Benutzer per PIN anmelden.
Das Backend prüft in dieser Reihenfolge: Gerät, Benutzer, Sperre, PIN, Kassenzuweisung, Kopplungsbindung, Lizenzplatz. Fehlversuche zählen und sperren gestaffelt. Das PIN-Format prüft dieses Paket nicht — eine zu strenge Prüfung im Client sperrte Benutzer aus, deren PIN das Panel anders gesetzt hat.
Implementation
Future<RegisterUserSession> registerUserLogin({
required String ownerUid,
required String deviceId,
required String deviceSecret,
required String userId,
required String pin,
required String cashregisterId,
bool takeover = false,
RegisterClientInfo? client,
RegisterGeo? geo,
}) async {
const name = 'registerUserLogin';
_ausweisPflicht(name, ownerUid, deviceId, deviceSecret);
_pflicht(name, 'userId', userId);
_pflicht(name, 'pin', pin);
_pflicht(name, 'cashregisterId', cashregisterId);
final daten = await _rufen(name, {
'ownerUid': ownerUid,
'deviceId': deviceId,
'deviceSecret': deviceSecret,
'userId': userId,
'pin': pin,
'cashregisterId': cashregisterId,
// Nur die ausdrückliche Übernahme geht mit: das Backend prüft auf `true`,
// ein mitgesendetes `false` wäre nur Rauschen.
if (takeover) 'takeover': true,
if (client != null) 'client': client.toJson(),
if (geo != null) 'geo': geo.toJson(),
});
return _sitzung(name, daten);
}