f53a3ce3cc
refactor: integrate approval ui review changes
continuous-integration/drone/push Build was killed
continuous-integration/drone/promote/production Build is failing
2026-03-11 02:20:29 +01:00
50433e607f
test: add tests for approval ui
2026-03-10 23:21:57 +01:00
021b709e6a
refactor: address review comments for join view
continuous-integration/drone/push Build was killed
continuous-integration/drone/promote/production Build is passing
2026-03-10 22:54:41 +01:00
eadf90b5fc
test: add tests for join request page
2026-03-10 17:18:14 +01:00
fa738aae88
feat: add join form settings
continuous-integration/drone/push Build is failing
2026-03-10 14:29:49 +01:00
b7a83d9298
test: add tests for join form settings
2026-03-10 12:18:36 +01:00
5deb102e45
refactor: adress review comments
continuous-integration/drone/push Build is passing
2026-03-09 18:54:40 +01:00
6385fbc831
feat: add join confirmation and mail templating
continuous-integration/drone/push Build is passing
2026-03-09 18:15:12 +01:00
3672ef0d03
test: add tests for join mail confirmation
continuous-integration/drone/push Build is failing
2026-03-09 17:02:30 +01:00
ad6ef169ac
Merge remote-tracking branch 'origin/main' into feature/308-web-form
continuous-integration/drone/push Build is passing
continuous-integration/drone/promote/production Build is passing
2026-03-09 15:40:02 +01:00
a41d8498ac
refactor: apply review changes to joinrequest
continuous-integration/drone/push Build is passing
2026-03-09 15:36:19 +01:00
d032f1ca0c
Run bootstrap seeds in production; add RUN_DEV_SEEDS support
continuous-integration/drone/push Build was killed
continuous-integration/drone/promote/production Build is passing
2026-03-09 15:16:02 +01:00
2515a679b8
feat: add join request resource
continuous-integration/drone/push Build is passing
2026-03-09 14:44:45 +01:00
5595dc322c
docs: add join concept #308
continuous-integration/drone/push Build is passing
2026-03-09 13:28:46 +01:00
01b9ebd74b
Vereinfacht client: email normalization, multi-match warning, Bypass tests, doc note
...
continuous-integration/drone/push Build is passing
continuous-integration/drone/promote/production Build is passing
- Normalize email (trim + downcase) before filter lookup
- Log warning when API returns multiple contacts for same email
- Add Bypass tests for find_contact_by_email (query params, empty/single response parsing)
- Document vereinfacht_required_field? as legacy/unused in vereinfacht-api.md
- Add bypass dependency (dev+test) for HTTP stubbing
2026-03-04 20:55:59 +01:00
9f169b9835
Vereinfacht: sync country with finance contact API
continuous-integration/drone/push Build is passing
2026-03-04 20:21:51 +01:00
fbc3fc2a4d
Docs: Vereinfacht API integration and guidelines
...
- CODE_GUIDELINES: add vereinfacht/ to project structure, required-fields note, link to vereinfacht-api
- docs/vereinfacht-api.md: filter API, minimal create payload, no extra required fields
- feature-roadmap: member-contact sync implemented, link to doc
2026-03-04 20:21:51 +01:00
edd8657c92
Split seeds into bootstrap and dev-only
2026-03-04 16:21:14 +01:00
73382c2c3f
Merge branch 'main' into feat/421_accessibility
continuous-integration/drone/push Build is failing
2026-02-26 08:49:55 +01:00
d0b8cb672a
style: consistent badges with sufficient color contrast
2026-02-26 08:33:52 +01:00
c7c082b867
Merge branch 'main' into feat/447_concistency
continuous-integration/drone/push Build is passing
continuous-integration/drone/promote/production Build is passing
2026-02-25 16:52:59 +01:00
ff9f98f8e7
style: consitent flash messages
2026-02-25 09:45:10 +01:00
bfc078d5aa
Merge branch 'main' into feat/299_plz
continuous-integration/drone/push Build is passing
continuous-integration/drone/promote/production Build is passing
2026-02-24 16:02:56 +01:00
c8d7dd3e55
Merge branch 'main' into feat/299_plz
continuous-integration/drone/push Build is passing
continuous-integration/drone/promote/production Build is failing
2026-02-24 15:38:50 +01:00
2d1d1c62dc
Docs and .env.example: document OIDC_ONLY
2026-02-24 15:13:17 +01:00
12419c5237
docs: fix remaining rauthy references after oidc rename
...
Update action names (register_with_rauthy → register_with_oidc,
sign_in_with_rauthy → sign_in_with_oidc) and strategy name
(:rauthy → :oidc) in docs, code comments and guidelines.
2026-02-24 11:51:01 +01:00
339d37937a
Rename OIDC strategy from :rauthy to :oidc, update callback path
...
- Rename AshAuthentication strategy from :oidc :rauthy to :oidc :oidc;
generated actions are now register_with_oidc / sign_in_with_oidc.
- Update config keys (:rauthy → :oidc) in dev.exs and runtime.exs.
- Update default_redirect_uri to /auth/user/oidc/callback everywhere.
- Rename Mv.Accounts helper functions accordingly.
- Update Mv.Secrets, AuthController, link_oidc_account_live and all tests.
- Update docker-compose.prod.yml, .env.example, README and docs.
IMPORTANT: OIDC providers must be updated to use the new redirect URI
/auth/user/oidc/callback instead of /auth/user/rauthy/callback.
2026-02-24 11:51:00 +01:00
e7668f1ef4
docs: adds country
2026-02-24 09:35:00 +01:00
056fd04ddf
feat: remove postal code validation
2026-02-23 16:24:20 +01:00
63b8e70e62
fix: adress review comments
continuous-integration/drone/push Build is failing
2026-02-18 13:05:31 +01:00
f6575319f7
feat: add groups to search vector
...
continuous-integration/drone/push Build was killed
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-18 12:47:23 +01:00
911f308a67
fix: address review comments
continuous-integration/drone/push Build is failing
continuous-integration/drone/promote/production Build is passing
2026-02-17 15:30:23 +01:00
b1a9eb8b1d
feat: add groups to member detail view #374
continuous-integration/drone/push Build is passing
2026-02-17 14:15:43 +01:00
6831ba046f
Merge remote-tracking branch 'origin/main' into feature/member-overview-groups
continuous-integration/drone/push Build is passing
continuous-integration/drone/promote/production Build is passing
2026-02-16 15:57:57 +01:00
5fd7c0e7f6
feat: improve groups fillter
continuous-integration/drone/push Build is failing
2026-02-13 17:45:51 +01:00
22458cd52b
Merge branch 'main' into feature/286_export_pdf
continuous-integration/drone/push Build is passing
continuous-integration/drone/promote/production Build is passing
2026-02-13 17:40:39 +01:00
2beceb539b
Update docs and guidelines for statistics feature
...
- CODE_GUIDELINES.md and feature-roadmap.md
- Add statistics-page-implementation-plan.md
2026-02-12 19:35:48 +01:00
919a8e4ebd
Add statistics route, permissions, and sidebar entry
...
- /statistics route and PagePaths.statistics
- Permission sets: viewer and admin can access /statistics
- Sidebar link with can_access_page check
- Plug and sidebar tests updated
2026-02-12 19:35:48 +01:00
2f8a6a2768
Merge remote-tracking branch 'origin/main' into feature/ui-for-adding-members-groups
continuous-integration/drone/push Build is failing
continuous-integration/drone/promote/production Build is passing
2026-02-12 15:16:35 +01:00
900f322422
fix: pr comments
continuous-integration/drone/push Build is passing
2026-02-12 15:08:40 +01:00
f6b35f03a5
feat: adds pdf export with imprintor
continuous-integration/drone/push Build is failing
2026-02-11 11:47:26 +01:00
80fe73a561
docs: update docs
2026-02-09 14:08:04 +01:00
c5f1fdce0a
Code-review follow-ups: policy, docs, seed_admin behaviour
...
continuous-integration/drone/push Build is passing
- Use OidcRoleSyncContext for set_role_from_oidc_sync; document JWT peek risk.
- seed_admin without password sets Admin role on existing user (OIDC-only); update docs and test.
- Fix DE translation for 'access this page'; add get? true comment in User.
2026-02-04 19:44:43 +01:00
55fef5a993
Docs and .env.example for admin bootstrap and OIDC role sync
...
Documents ADMIN_EMAIL/PASSWORD, seed_admin, entrypoint; OIDC_ADMIN_GROUP_NAME,
OIDC_GROUPS_CLAIM and role sync on register/sign-in.
2026-02-04 18:13:30 +01:00
3415faeb21
Merge branch 'main' into feature/337_polish_import
continuous-integration/drone/push Build is failing
2026-02-04 16:28:55 +01:00
5194b20b5c
Fix unlink-by-omission: on_missing :ignore, test, doc, string-key
...
continuous-integration/drone/push Build is failing
- Member update_member: on_missing :unrelate → :ignore (no unlink when :user omitted)
- Test: normal_user update linked member without :user keeps link
- Doc: unlink only explicit (user: nil), admin-only; Actor.admin?(nil) note
- Check: defense-in-depth for "user" string key
2026-02-04 14:07:39 +01:00
543fded102
Harden member user-link check: argument presence, nil actor, policy scope
...
- Forbid on :user argument presence (not value) to block unlink via nil/empty
- Defensive nil actor handling; policy restricted to create/update only
- Test: Ash.load with actor; test non-admin cannot unlink via user: nil
- Docs: unlink behaviour and policy split
2026-02-04 14:07:39 +01:00
54e419ed4c
Docs: permission hardening Role and member user link
...
Role: Ash policies (HasPermission); read for all, create/update/destroy admin only.
User–member link: only admins may set :user on Member create/update (ForbidMemberUserLinkUnlessAdmin).
2026-02-04 14:07:39 +01:00
503401f2e6
Setting: remove unused actor in default_fee_type validation
...
- Docs: Regenerate Cycles server-side enforcement note in membership-fee-architecture.
2026-02-04 11:40:19 +01:00
c035d0f141
Docs: groups and roles/permissions architecture, Group moduledoc
...
continuous-integration/drone/push Build is passing
- groups-architecture: normal_user and admin can manage groups.
- roles-and-permissions: matrix and MembershipFeeCycle :linked for own_data.
- group_policies_test: update moduledoc.
2026-02-04 09:20:26 +01:00