Commit graph

178 commits

Author SHA1 Message Date
f2b363cca5
i18n: add translations 2026-01-27 10:30:05 +01:00
8e519d643d
Add NOT NULL constraint to users.role_id and optimize default_role_id
- 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-27 10:23:27 +01:00
e906f22c4d
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-27 10:23:25 +01:00
35fbfe54da
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-27 10:23:25 +01:00
cea68638e6
Update seeds to create all 5 authorization roles 2026-01-27 10:23:23 +01:00
a7e6136648
Add migration to assign 'Mitglied' role to existing users 2026-01-27 10:23:22 +01:00
3051ac9e38
Fix authorization bypass in seeds and validations
- 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-27 10:23:13 +01:00
d893c0680a
Update gettext translations for new UI strings 2026-01-27 10:23:05 +01:00
15bf76ab25
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-27 10:14:06 +01:00
ffe5faa999
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-27 10:14:02 +01:00
0d244a4860
fix: resolve pr remarks 2026-01-27 10:14:01 +01:00
ca1300f46a
feat: add new filter component to members view 2026-01-27 10:13:59 +01:00
230fb695d1
i18n: Add missing German translations for member form errors
- Add translations for validation error messages
- Add translations for save failure messages
2026-01-27 10:13:57 +01:00
bed2df2d21
chore: update gettext 2026-01-27 10:13:57 +01:00
d8ab9a1015
fix: linting + tests 2026-01-27 10:13:52 +01:00
a161393ea1
fix: change creation of admin user 2026-01-27 10:13:51 +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
All checks were successful
continuous-integration/drone/push Build is passing
2026-01-13 16:30:32 +01:00
4244779521
i18n: Complete German translations and standardize English msgstr
Some checks failed
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
All checks were successful
continuous-integration/drone/push Build is passing
2026-01-13 10:55:09 +01:00
720a43a38c feat: added csv templates
Some checks failed
continuous-integration/drone/push Build is failing
2026-01-12 17:36:15 +01:00
3fd6410bb4
style: fix linting
Some checks failed
continuous-integration/drone/push Build is failing
2026-01-12 15:37:58 +01:00
8a1b14fc79
fix: fix tests and remove navbar remainings
Some checks failed
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
All checks were successful
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
Some checks failed
continuous-integration/drone/push Build is failing
2026-01-12 09:50:51 +01:00
675ab14fce
fix: correct German translations for role management
Fix incorrect translations:
- 'Listing Roles' -> 'Rollen auflisten' (was 'Benutzer*innen auflisten')
- 'Custom' -> 'Benutzerdefiniert' (was 'Benutzerdefinierte Felder')
2026-01-08 16:20:27 +01:00
37a2fc3e83
refactor: replace cond with if in handle_delete_role functions 2026-01-08 16:20:25 +01:00
03c1f747c5
chore: update gettext files and test cleanup
Update translation files after code changes and remove unused
debug logging code from tests.
2026-01-08 16:20:22 +01:00
b638a54bd6
feat: prevent deletion of roles with assigned users 2026-01-08 16:19:47 +01:00
a24bbc2188
feat: convert Settings to dropdown menu with sub-items
- Convert Settings menu item to dropdown (similar to Contributions)
- Add Global Settings and Roles as sub-items
- Update German translations: 'Global Settings' and 'Roles'
2026-01-08 16:19:00 +01:00
36858db97c
feat: add German translations for role management 2026-01-08 16:18:04 +01:00
2f03f7c00c
feat: assign admin role to admin user in seeds
- Create Admin role if it doesn't exist
- Assign Admin role to admin@mv.local user
- Remove separate create_admin_role script (integrated into seeds)
2026-01-08 16:16:54 +01:00
9a86e0ec01
feat: implement role management LiveViews
Add complete CRUD interface for role management under /admin/roles.

- Index page with table showing name, description, permission_set_name, is_system_role
- Show page for role details
- Form component for create/edit with permission_set_name dropdown
- System role badge and disabled delete button
- Flash messages for success/error
- Authorization checks using MvWeb.Authorization helpers
- Comprehensive test coverage (22 tests)

Routes added under /admin scope. All LiveViews load user role
for authorization checks. Form uses custom dropdown for permission sets.
2026-01-08 16:16:53 +01:00
47c46eaebf i18n: update translations 2026-01-08 11:40:04 +01:00
36776f8e28 fix tests and linting 2026-01-07 18:11:36 +01:00
df8c6a1854 Merge branch 'main' into feature/223_memberfields_settings
Some checks failed
continuous-integration/drone/push Build is failing
2026-01-07 11:42:54 +01:00
909d4af2a2 Merge branch 'main' into feature/223_memberfields_settings 2026-01-07 11:11:02 +01:00
0c8a255476 Merge branch 'main' into feature/273_member_fields
Some checks failed
continuous-integration/drone/push Build is failing
2026-01-07 10:22:18 +01:00
29a953c038 fix: prevent migration rollback failure when NULL values exist 2026-01-07 09:52:40 +01:00
5f13901ca5 security: remove is_system_role from public API
Remove is_system_role from accept lists in create_role and update_role
actions. This field should only be set via seeds or internal actions to
prevent users from creating unkillable roles through the public API.
2026-01-06 19:04:03 +01:00