8a5f519099
Fix CSV upload file reading
...
Handle consume_uploaded_entries returning [content] directly
instead of [{:ok, content}]. Add locale support for translations
in background tasks.
2026-01-27 10:30:06 +01:00
64952d4ff4
Security: Require actor parameter in CSV import
...
Remove fallback to system_actor in process_chunk to prevent
unauthorized access. Actor must now be explicitly provided.
2026-01-27 10:30:05 +01:00
33dc8307c8
fix tests and linting
2026-01-27 10:30:05 +01:00
f2b363cca5
i18n: add translations
2026-01-27 10:30:05 +01:00
08534539aa
formatting
2026-01-27 10:23:31 +01:00
c914e25483
formatting and refactoring
2026-01-27 10:23:30 +01:00
0acdc82bcc
refactor
2026-01-27 10:23:29 +01:00
dd68d2efbc
refactor
2026-01-27 10:23:29 +01:00
79d0fa0376
fat: adds csv import live view to settings
2026-01-27 10:23:28 +01:00
dae9d039c1
test: adds live view csv import tests
2026-01-27 10:23:28 +01:00
793a66639a
Fix: Don't cache nil in default_role_id to prevent bootstrap issues
...
- Only cache non-nil role_id values to allow retry after role creation
- Prevents processes from being permanently stuck with nil if first call
happens before the 'Mitglied' role exists
- Update documentation to explain bootstrap safety mechanism
2026-01-27 10:23:27 +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
047b818ec5
chore: increase test timeout and cleanup unused code
2026-01-27 10:23:26 +01:00
93e966bc6b
test: adapt tests for attribute-level default solution
2026-01-27 10:23:26 +01:00
f984819508
refactor: remove AssignDefaultRole change module
...
The attribute-level default solution makes this change module obsolete.
All role assignment is now handled via the role_id attribute's default
function, which is more robust and works for all creation paths.
2026-01-27 10:23:26 +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
5164836d32
feat: implement attribute-level default for role_id assignment
...
Replace action-level changes with attribute default function to ensure
all users get the 'Mitglied' role regardless of creation path.
2026-01-27 10:23:25 +01:00
885fe613cb
Add comprehensive tests for default role assignment
2026-01-27 10:23:24 +01:00
d77eb4d55e
Add test support for default role assignment
2026-01-27 10:23:24 +01:00
cea68638e6
Update seeds to create all 5 authorization roles
2026-01-27 10:23:23 +01:00
aaced70b8e
Integrate AssignDefaultRole change into user creation actions
2026-01-27 10:23:23 +01:00
4ec90770a4
Add AssignDefaultRole change for automatic role assignment
...
- Assigns 'Mitglied' role to new users if no role is set
2026-01-27 10:23:23 +01:00
d320cdf14e
Fix HasPermission check to handle nil member_id gracefully
2026-01-27 10:23:22 +01:00
e30be4c228
Add Role helper function and create_role_with_system_flag action
...
- Add get_mitglied_role/0 helper to avoid code duplication
- Add create_role_with_system_flag action for seeds/migrations
- Allows setting is_system_role flag (required for 'Mitglied' role)
2026-01-27 10:23:22 +01:00
a7e6136648
Add migration to assign 'Mitglied' role to existing users
2026-01-27 10:23:22 +01:00
f426e853de
Remove unused allow_no_actor_bypass config option
2026-01-27 10:23:21 +01:00
ee50f312ee
Remove NoActor module, improve Member validation, update docs
2026-01-27 10:23:21 +01:00
da0b045771
Fix missing actor parameters and restore AshAuthentication bypass tests
2026-01-27 10:23:20 +01:00
31699b7c90
Fix rebase conflict: Add actor parameter to helper functions in index_test.exs
2026-01-27 10:23:20 +01:00
2d7461e36f
Use admin_user instead of system_actor in LiveView tests
2026-01-27 10:23:19 +01:00
d807577822
Fix test db connections: increase pool size and timeout
2026-01-27 10:23:19 +01:00
aedd29c118
Fix tests: Remove redundant system_actor and update test descriptions
2026-01-27 10:23:18 +01:00
0e6b464e0a
Fix tests: Add missing actor parameters to Ash operations
2026-01-27 10:23:18 +01:00
f993c64c42
Fix test helpers: Use actor parameter correctly
2026-01-27 10:23:18 +01:00
875abc693b
Fix tests: Remove duplicate actor keyword arguments
2026-01-27 10:23:17 +01:00
ba5c982368
Use authorize?: false for integrity checks in validations
2026-01-27 10:23:17 +01:00
b387897adb
Update documentation: Remove NoActor bypass references
2026-01-27 10:23:17 +01:00
c715a45277
Add actor parameter to all tests requiring authorization
...
This commit adds actor: system_actor to all Ash operations in tests that
require authorization.
2026-01-27 10:23:16 +01:00
0cedbe52f9
Add authorize?: false to SystemActor bootstrap operations
...
- Role lookup and creation (find_admin_role, create_admin_role)
- System user creation and role assignment
- Role loading during initialization
2026-01-27 10:23:16 +01:00
73dc05c6d4
Remove NoActor bypass from User and Member policies
...
This removes the NoActor bypass that was masking authorization bugs in tests.
All operations now require an explicit actor for authorization.
2026-01-27 10:23:15 +01:00
36edee6fcc
Fix: Ensure members are loaded in handle_params when signature unchanged
2026-01-27 10:23:15 +01:00
8f7f0de822
docs: add authorization bootstrap patterns section
...
Document the three authorization bypass mechanisms and when to use each:
- NoActor (test-only bypass)
- system_actor (systemic operations)
- authorize?: false (bootstrap scenarios)
2026-01-27 10:23:14 +01:00
21d8d65492
Fix OIDC account linking by using SystemActor in LinkOidcAccountLive
...
- Add SystemActor to all Ash operations in LinkOidcAccountLive
- Enables user lookup, reload, and oidc_id linking during OIDC flow
- User is not yet logged in during linking, so SystemActor provides authorization
2026-01-27 10:23:14 +01:00
fe07a4e955
Fix OIDC login by using SystemActor in OidcEmailCollision validation
...
- Add SystemActor to Ash.read_one() calls in OidcEmailCollision validation
- Prevents authorization failures during OIDC registration when no actor is logged in
- Enables proper email collision detection and account linking flow
2026-01-27 10:23:14 +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
ef4df57a6f
Restrict Actor.ensure_loaded to Mv.Accounts.User only
...
Pattern match on %Mv.Accounts.User{} instead of generic actor.
Clearer intention, prevents accidental authorization bypasses.
Non-User actors are returned as-is (no-op).
2026-01-27 10:23:13 +01:00
726f164b28
Fix remaining runtime guard references in CODE_GUIDELINES
...
Remove mentions of runtime guards - only compile-time config is used.
Clarify that production safety comes from config defaults.
2026-01-27 10:23:12 +01:00
921cc22c09
Update CODE_GUIDELINES for Application.compile_env pattern
...
Replace Mix.env example with config-based approach.
Remove outdated runtime guard documentation.
2026-01-27 10:23:12 +01:00
e6b22cff16
Remove skipped get_by_subject test, add explanation
...
Test removed - JWT flow tested via AshAuthentication integration.
Direct test would require JWT mocking without value.
2026-01-27 10:23:11 +01:00