diff --git a/backend/src/main/java/de/svencarstensen/muh/domain/AppUser.java b/backend/src/main/java/de/svencarstensen/muh/domain/AppUser.java index 40af62c..2712491 100644 --- a/backend/src/main/java/de/svencarstensen/muh/domain/AppUser.java +++ b/backend/src/main/java/de/svencarstensen/muh/domain/AppUser.java @@ -19,6 +19,10 @@ public record AppUser( String city, String email, String phoneNumber, + String accountHolder, + String bankName, + String iban, + String bic, String passwordHash, boolean active, UserRole role, diff --git a/backend/src/main/java/de/svencarstensen/muh/service/CatalogService.java b/backend/src/main/java/de/svencarstensen/muh/service/CatalogService.java index aa2f117..2008967 100644 --- a/backend/src/main/java/de/svencarstensen/muh/service/CatalogService.java +++ b/backend/src/main/java/de/svencarstensen/muh/service/CatalogService.java @@ -436,6 +436,10 @@ public class CatalogService { adminManaged ? blankToNull(mutation.city()) : null, normalizeEmail(mutation.email()), adminManaged ? blankToNull(mutation.phoneNumber()) : null, + adminManaged ? blankToNull(mutation.accountHolder()) : null, + adminManaged ? blankToNull(mutation.bankName()) : null, + adminManaged ? blankToNull(mutation.iban()) : null, + adminManaged ? blankToNull(mutation.bic()) : null, encodeIfPresent(mutation.password()), mutation.active(), adminManaged ? normalizeManagedRole(mutation.role()) : UserRole.CUSTOMER, @@ -467,6 +471,10 @@ public class CatalogService { isPrimaryUser(existing) || actor.role() == UserRole.ADMIN ? blankToNull(mutation.city()) : existing.city(), normalizeEmail(mutation.email()), isPrimaryUser(existing) || actor.role() == UserRole.ADMIN ? blankToNull(mutation.phoneNumber()) : existing.phoneNumber(), + isPrimaryUser(existing) || actor.role() == UserRole.ADMIN ? blankToNull(mutation.accountHolder()) : existing.accountHolder(), + isPrimaryUser(existing) || actor.role() == UserRole.ADMIN ? blankToNull(mutation.bankName()) : existing.bankName(), + isPrimaryUser(existing) || actor.role() == UserRole.ADMIN ? blankToNull(mutation.iban()) : existing.iban(), + isPrimaryUser(existing) || actor.role() == UserRole.ADMIN ? blankToNull(mutation.bic()) : existing.bic(), isBlank(mutation.password()) ? existing.passwordHash() : passwordEncoder.encode(mutation.password()), mutation.active(), actor.role() == UserRole.ADMIN @@ -516,6 +524,10 @@ public class CatalogService { existing.city(), existing.email(), existing.phoneNumber(), + existing.accountHolder(), + existing.bankName(), + existing.iban(), + existing.bic(), passwordEncoder.encode(newPassword), existing.active(), existing.role(), @@ -580,6 +592,10 @@ public class CatalogService { city, normalizedEmail, phoneNumber, + null, + null, + null, + null, passwordEncoder.encode(mutation.password()), false, UserRole.CUSTOMER, @@ -600,6 +616,10 @@ public class CatalogService { created.city(), created.email(), created.phoneNumber(), + created.accountHolder(), + created.bankName(), + created.iban(), + created.bic(), created.passwordHash(), false, created.role(), @@ -708,6 +728,10 @@ public class CatalogService { user.city(), user.email(), user.phoneNumber(), + user.accountHolder(), + user.bankName(), + user.iban(), + user.bic(), user.active(), normalizeStoredRole(user.role()), user.updatedAt() @@ -743,6 +767,10 @@ public class CatalogService { user.city(), user.email(), user.phoneNumber(), + user.accountHolder(), + user.bankName(), + user.iban(), + user.bic(), normalizeStoredRole(user.role()) ); } @@ -835,6 +863,10 @@ public class CatalogService { user.city(), user.email(), user.phoneNumber(), + user.accountHolder(), + user.bankName(), + user.iban(), + user.bic(), user.passwordHash(), user.active(), normalizeStoredRole(user.role()), @@ -870,6 +902,10 @@ public class CatalogService { null, email, null, + null, + null, + null, + null, passwordEncoder.encode(rawPassword), true, role, @@ -997,6 +1033,10 @@ public class CatalogService { String city, String email, String phoneNumber, + String accountHolder, + String bankName, + String iban, + String bic, UserRole role ) { } @@ -1066,6 +1106,10 @@ public class CatalogService { String city, String email, String phoneNumber, + String accountHolder, + String bankName, + String iban, + String bic, boolean active, UserRole role, LocalDateTime updatedAt @@ -1083,6 +1127,10 @@ public class CatalogService { String city, String email, String phoneNumber, + String accountHolder, + String bankName, + String iban, + String bic, String password, boolean active, UserRole role diff --git a/frontend/src/lib/types.ts b/frontend/src/lib/types.ts index 0827db6..45eca78 100644 --- a/frontend/src/lib/types.ts +++ b/frontend/src/lib/types.ts @@ -62,6 +62,10 @@ export interface UserOption { city: string | null; email: string | null; phoneNumber: string | null; + accountHolder: string | null; + bankName: string | null; + iban: string | null; + bic: string | null; role: UserRole; } diff --git a/frontend/src/pages/AdminProfilePage.tsx b/frontend/src/pages/AdminProfilePage.tsx index 93f222d..0d43d8d 100644 --- a/frontend/src/pages/AdminProfilePage.tsx +++ b/frontend/src/pages/AdminProfilePage.tsx @@ -18,6 +18,10 @@ export default function AdminProfilePage() { city: "", email: "", phoneNumber: "", + accountHolder: "", + bankName: "", + iban: "", + bic: "", }); // Load current user data @@ -36,6 +40,10 @@ export default function AdminProfilePage() { city: currentUser.city || "", email: currentUser.email || "", phoneNumber: currentUser.phoneNumber || "", + accountHolder: currentUser.accountHolder || "", + bankName: currentUser.bankName || "", + iban: currentUser.iban || "", + bic: currentUser.bic || "", }); } } catch (error) { @@ -77,6 +85,10 @@ export default function AdminProfilePage() { city: formData.city.trim() || null, email: formData.email.trim(), phoneNumber: formData.phoneNumber.trim() || null, + accountHolder: formData.accountHolder.trim() || null, + bankName: formData.bankName.trim() || null, + iban: formData.iban.trim() || null, + bic: formData.bic.trim() || null, active: true, }); @@ -92,6 +104,10 @@ export default function AdminProfilePage() { city: response.city, email: response.email, phoneNumber: response.phoneNumber, + accountHolder: response.accountHolder, + bankName: response.bankName, + iban: response.iban, + bic: response.bic, }); } @@ -122,7 +138,7 @@ export default function AdminProfilePage() {
Stammdaten
- Verwalten Sie hier Ihre persönlichen und Unternehmensdaten. + Verwalten Sie hier Ihre persönlichen, Unternehmens- und Bankdaten.
@@ -140,12 +156,12 @@ export default function AdminProfilePage() { )} - {/* Stammdaten-Formular */} + {/* Persönliche Daten */}Profil
-Zahlung
+