Enhance member transfer service and dialog for improved credential handling
Updated the MemberTransferService to better manage login credentials, ensuring that saved credentials are utilized when none are provided. Improved error handling during login attempts by extracting detailed error messages and adjusting status codes to prevent user logout. Refined the MemberTransferDialog to clear login credentials when no club is selected and to only include non-empty values in the login credentials object, enhancing user experience and validation logic.
This commit is contained in:
@@ -179,9 +179,24 @@ export default {
|
||||
methods: {
|
||||
async loadSavedConfig() {
|
||||
if (!this.currentClub) {
|
||||
// Login-Credentials leeren, auch wenn kein Club vorhanden
|
||||
this.loginCredentials = {
|
||||
username: '',
|
||||
password: '',
|
||||
additionalField1: '',
|
||||
additionalField2: ''
|
||||
};
|
||||
return;
|
||||
}
|
||||
|
||||
// WICHTIG: Login-Credentials sofort leeren, damit sie nicht vorausgefüllt werden
|
||||
this.loginCredentials = {
|
||||
username: '',
|
||||
password: '',
|
||||
additionalField1: '',
|
||||
additionalField2: ''
|
||||
};
|
||||
|
||||
this.loadingConfig = true;
|
||||
try {
|
||||
const response = await apiClient.get(`/member-transfer-config/${this.currentClub}`);
|
||||
@@ -200,13 +215,8 @@ export default {
|
||||
this.config.useBulkMode = savedConfig.useBulkMode || false;
|
||||
this.config.bulkWrapperTemplate = savedConfig.bulkWrapperTemplate || '';
|
||||
|
||||
// Login-Credentials zurücksetzen (werden nur verwendet, wenn im Dialog eingegeben)
|
||||
this.loginCredentials = {
|
||||
username: '',
|
||||
password: '',
|
||||
additionalField1: '',
|
||||
additionalField2: ''
|
||||
};
|
||||
// Login-Credentials bleiben leer (werden nur verwendet, wenn im Dialog eingegeben)
|
||||
// Gespeicherte Credentials werden vom Backend verwendet, wenn keine eingegeben werden
|
||||
}
|
||||
} catch (error) {
|
||||
// Keine Konfiguration vorhanden - das ist OK, Dialog bleibt leer
|
||||
@@ -214,6 +224,13 @@ export default {
|
||||
console.error('Fehler beim Laden der gespeicherten Konfiguration:', error);
|
||||
}
|
||||
} finally {
|
||||
// Sicherstellen, dass Login-Credentials leer sind
|
||||
this.loginCredentials = {
|
||||
username: '',
|
||||
password: '',
|
||||
additionalField1: '',
|
||||
additionalField2: ''
|
||||
};
|
||||
this.loadingConfig = false;
|
||||
}
|
||||
},
|
||||
@@ -252,28 +269,37 @@ export default {
|
||||
|
||||
try {
|
||||
// Login-Credentials zusammenstellen
|
||||
// WICHTIG: Nur nicht-leere Werte hinzufügen (nach Trimmen)
|
||||
// Leere Strings würden die gespeicherten Credentials überschreiben
|
||||
const loginCredentials = {};
|
||||
if (this.loginCredentials.username) {
|
||||
loginCredentials.username = this.loginCredentials.username;
|
||||
const trimmedUsername = this.loginCredentials.username?.trim();
|
||||
const trimmedPassword = this.loginCredentials.password?.trim();
|
||||
|
||||
if (trimmedUsername) {
|
||||
loginCredentials.username = trimmedUsername;
|
||||
}
|
||||
if (this.loginCredentials.password) {
|
||||
loginCredentials.password = this.loginCredentials.password;
|
||||
if (trimmedPassword) {
|
||||
loginCredentials.password = trimmedPassword;
|
||||
}
|
||||
|
||||
// Zusätzliche Felder verarbeiten
|
||||
if (this.loginCredentials.additionalField1) {
|
||||
const parts1 = this.loginCredentials.additionalField1.split(':').map(s => s.trim());
|
||||
if (parts1.length === 2) {
|
||||
// Zusätzliche Felder verarbeiten (nur wenn nicht leer)
|
||||
const trimmedAdditional1 = this.loginCredentials.additionalField1?.trim();
|
||||
if (trimmedAdditional1) {
|
||||
const parts1 = trimmedAdditional1.split(':').map(s => s.trim());
|
||||
if (parts1.length === 2 && parts1[0] && parts1[1]) {
|
||||
loginCredentials[parts1[0]] = parts1[1];
|
||||
} else {
|
||||
} else if (parts1.length === 1 && parts1[0]) {
|
||||
// Falls kein Doppelpunkt, verwende den gesamten Wert als Feldname
|
||||
loginCredentials[parts1[0]] = parts1[0];
|
||||
}
|
||||
}
|
||||
if (this.loginCredentials.additionalField2) {
|
||||
const parts2 = this.loginCredentials.additionalField2.split(':').map(s => s.trim());
|
||||
if (parts2.length === 2) {
|
||||
|
||||
const trimmedAdditional2 = this.loginCredentials.additionalField2?.trim();
|
||||
if (trimmedAdditional2) {
|
||||
const parts2 = trimmedAdditional2.split(':').map(s => s.trim());
|
||||
if (parts2.length === 2 && parts2[0] && parts2[1]) {
|
||||
loginCredentials[parts2[0]] = parts2[1];
|
||||
} else {
|
||||
} else if (parts2.length === 1 && parts2[0]) {
|
||||
loginCredentials[parts2[0]] = parts2[0];
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user