5a2f035ecc
CustomField policies: actor required, no system-actor fallback, error handling
...
- list_required_custom_fields: require actor (two clauses, no default)
- Member validation: use context.actor only, differentiate Forbidden vs transient errors
- stream_custom_fields: log + send flash on error instead of returning []
- GlobalSettingsLive: handle_info for custom_fields_load_error, put_flash
- Seeds: use Membership.update_member with actor, format
2026-01-29 16:10:12 +01:00
c9431caabe
Add gettext strings for custom field load error and not authorized
2026-01-29 16:10:12 +01:00
1d17c4f2dd
fix: CustomField policies, no system-actor fallback, guidelines
...
- Tests and UI pass actor for CustomField create/read/destroy; seeds use actor
- Member required-custom-fields validation uses context.actor only (no fallback)
- CODE_GUIDELINES: add rule forbidding system-actor fallbacks
2026-01-29 16:10:12 +01:00
ddc8335cc0
refactor: improve groups LiveView based on code review feedback
continuous-integration/drone/push Build is passing
2026-01-28 10:33:27 +01:00
3eb4cde0b7
Merge remote-tracking branch 'origin/main' into feature/372-groups-management
continuous-integration/drone/push Build is passing
2026-01-27 23:48:31 +01:00
5e0b6580ae
refactor: fix credo warnings, update gettext
continuous-integration/drone/push Build is failing
2026-01-27 22:32:37 +01:00
462bc21ec3
fix(migration): use INSERT..SELECT for system user role_id in CI
...
continuous-integration/drone/push Build is passing
Avoid nil/empty-string UUID when repo().one lags after role insert.
2026-01-27 17:47:05 +01:00
92ee7fcc63
fix(seeds): use :update_internal for system user admin-role
...
continuous-integration/drone/push Build is failing
:update is blocked for system-actor user; use :update_internal in bootstrap.
2026-01-27 17:39:04 +01:00
a10c770ca7
chore(migration): ensure_system_actor_user_exists
...
Use admin_role_id, consistent UUID and timestamps.
2026-01-27 17:39:04 +01:00
eb8d78f834
Add gettext strings for system actor show/edit redirect messages
...
German: Dieser Benutzer kann nicht angezeigt/bearbeitet werden.
2026-01-27 17:39:04 +01:00
acb33b9f3b
Ensure system actor user exists via migration
...
Creates user system@mila.local with Admin role if missing. Idempotent;
guarantees system actor in production without relying on seeds.
2026-01-27 17:39:04 +01:00
e92c98b559
refactor: fix review issues - member_count aggregate, migration down, docs, actor handling
continuous-integration/drone/push Build is passing
2026-01-27 17:09:07 +01:00
6db64bf996
feat: add groups resource #371
continuous-integration/drone/push Build is failing
2026-01-27 16:03:21 +01:00
1d0ac6d280
Improve CSV import error messages
...
Include email address in duplicate email error messages.
Add German translation for email uniqueness errors.
Ensure locale is set for translations in async tasks.
2026-01-25 18:33:28 +01:00
56f3054992
i18n: add translations
2026-01-25 17:31:49 +01:00
2d446f63ea
Add NOT NULL constraint to users.role_id and optimize default_role_id
...
continuous-integration/drone/push Build is passing
- Add database-level NOT NULL constraint for users.role_id
- Update SystemActor tests to verify NOT NULL constraint enforcement
- Add process dictionary caching for default_role_id/0 to reduce DB queries
2026-01-25 17:04:48 +01:00
a9b1d794d2
fix: bind role_name variable before using in Ash.Query.filter
...
Avoid macro pinning issues by binding role_data.name to role_name
before using it in the filter query.
2026-01-25 13:42:28 +01:00
e982271880
fix: improve migration to create 'Mitglied' role if missing
...
Make migration more robust by creating the 'Mitglied' role if it doesn't
exist, ensuring it works regardless of seed execution order.
2026-01-25 13:42:19 +01:00
9557d8ae6b
Update seeds to create all 5 authorization roles
2026-01-24 19:16:35 +01:00
c7e0181e02
Add migration to assign 'Mitglied' role to existing users
2026-01-24 19:14:51 +01:00
672b4a8250
Merge branch 'main' into feature/filter-boolean-custom-fields
continuous-integration/drone/push Build is failing
2026-01-23 14:41:48 +01:00
b4657cae23
fix: resolve pr remarks
2026-01-23 14:00:18 +01:00
079d270768
Fix authorization bypass in seeds and validations
...
continuous-integration/drone/push Build is passing
- Add authorize?: false to all bootstrap operations in seeds.exs
- Fix user-linking validation to respect authorize? context flag
- Prevents authorization errors during initial setup when no actor exists yet
2026-01-23 02:08:11 +01:00
1c5bd04661
Update gettext translations for new UI strings
continuous-integration/drone/push Build is passing
2026-01-21 08:09:34 +01:00
ea399612be
Make system actor email configurable via SYSTEM_ACTOR_EMAIL
...
Allow system user email to be configured via environment variable
with fallback to default 'system@mila.local'
2026-01-21 08:02:35 +01:00
f996aee6b2
feat: add new filter component to members view
continuous-integration/drone/push Build is passing
2026-01-21 00:47:01 +01:00
d993bd3913
Create system user in seeds
...
Add system@mila.local user with admin role for systemic operations.
This user is used by SystemActor helper for mandatory side effects.
2026-01-20 22:09:17 +01:00
c6dd0cd09d
i18n: Add missing German translations for member form errors
...
- Add translations for validation error messages
- Add translations for save failure messages
2026-01-20 16:30:43 +01:00
0d8141837e
chore: update gettext
2026-01-20 16:15:01 +01:00
d9b659e5ea
fix: linting + tests
2026-01-19 14:09:19 +01:00
bc4bcd0089
fix: change creation of admin user
2026-01-19 13:40:28 +01:00
24426c7786
Merge branch 'main' into feature/333_validation
2026-01-19 11:46:14 +01:00
14a8417fdf
i18n: adds translation
2026-01-19 11:24:51 +01:00
74af41c8ab
feat: reorder sidebar
2026-01-16 12:46:45 +01:00
b103ae3a5f
i18n: Update English translations
continuous-integration/drone/push Build is passing
2026-01-13 16:30:32 +01:00
4244779521
i18n: Complete German translations and standardize English msgstr
continuous-integration/drone/push Build is failing
2026-01-13 16:13:17 +01:00
70029f799e
i18n: Update POT and English translations
2026-01-13 15:22:24 +01:00
807e03d86b
fix: Correct Language headers in German .po files
2026-01-13 15:20:58 +01:00
881157bd10
i18n: Add German and English translations for UI strings
...
- Fill in empty msgstr entries in German translations
- Add translations for user actions, error messages, and form labels
- Ensure all UI strings are consistently translated
2026-01-13 15:20:17 +01:00
145a76348c
Pass actor parameter in seeds and update test setup
...
Ensure cycle generation in seeds uses admin actor and update test
to use global admin_user from ConnCase setup.
2026-01-13 15:17:05 +01:00
9ecfe784db
Add missing Gettext translations for member deletion errors
...
Add German and English translations for member deletion success and
error messages.
2026-01-13 15:17:03 +01:00
bc87893134
Integrate Member policies in LiveViews
...
- Add on_mount hook to ensure user role is loaded in all Member LiveViews
- Pass actor parameter to all Ash operations (read, get, create, update, destroy, load)
2026-01-13 15:12:24 +01:00
4fffeeaaa0
Fix: Seeds use admin actor instead of NoActor bypass
...
This ensures seeds work correctly with the new fail-closed NoActor
policy in production, using proper authorization instead of bypass.
2026-01-13 15:01:55 +01:00
469c4c0c1d
i18n: update translations
continuous-integration/drone/push Build is passing
2026-01-13 10:55:09 +01:00
720a43a38c
feat: added csv templates
continuous-integration/drone/push Build is failing
2026-01-12 17:36:15 +01:00
3fd6410bb4
style: fix linting
continuous-integration/drone/push Build is failing
2026-01-12 15:37:58 +01:00
8a1b14fc79
fix: fix tests and remove navbar remainings
continuous-integration/drone/push Build is failing
2026-01-12 15:16:31 +01:00
e7515b5450
Merge remote-tracking branch 'origin/main' into sidebar
2026-01-12 14:15:12 +01:00
922f9f93d0
Merge branch 'main' into feature/223_memberfields_settings
continuous-integration/drone/push Build is passing
2026-01-12 13:15:40 +01:00
e38de7d690
chore: rename custom to data field in the UI
continuous-integration/drone/push Build is failing
2026-01-12 09:50:51 +01:00