Refactor/organization details - #757
Open
s0582346 wants to merge 26 commits into
Open
Conversation
…anization-related classes
…e for improved readability and flexibility
…stency and clarity
… in OrganizationDetailsSettingsView
…ated translations
…UserInKeycloak tests
19 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Rebuilds organization details page (
/admin/ngo-details) into a full admin surface for a Verein.What changed
Frontend — page rewritten as section cards (general · legal · contact · users) with a sticky header whose
save/discard actions appear only once something is dirty. Logo picking only stages the file; the upload happens on
save. Users section lists members with position, email and a status pill, plus an Add user dialog.
Logo —
OrganizationLogoServicestores the image in S3, keeping onlylogoKey/logoContentTypeon theorganization (
@JsonIgnore). Clients get a derivedhasLogoand fetch bytes separately.Invitations —
POST /organization/my/membersprovisions a Keycloak account, assigns the member role and hasKeycloak email a password-setup link.
INVITEDif the mail went out,INVITATION_FAILEDif not. The account exists either way, which is why that's a status and not an error. An existing Keycloak user for that emailis linked rather than failing.
Member status —
NO_ACCESS→INVITED/INVITATION_FAILED→ACTIVE. Keycloak never reports a completedinvitation, so the flip to
ACTIVEhappens on the first request carrying the person's token.Organization.type— nestedOrganization.TYPE→ top-levelOrganizationTypewith the legal forms the UI offers.The column moves from an ordinal
smallint check (type between 0 and 1)to the enum name, which unblocks new legalforms and stops tying stored data to enum declaration order.
Local dev — mailpit in docker-compose (SMTP 1025, UI http://localhost:8025) catches invitation mails;
quarkus-realm.jsonpoints SMTP athost.docker.internal:1025and gains theorg-adminrole for invited people.