ff8b29cffe
feat: implement filter logic for boolean ustom fields
continuous-integration/drone/push Build is failing
2026-01-20 18:08:41 +01:00
37e1553a02
feat: add custom boolean field state & URL-Parameter
2026-01-20 15:55:08 +01:00
b84431879c
Merge pull request 'fix admin database seeding closes #357 ' ( #358 ) from bugfix/reseeding-database-not-working into main
...
Reviewed-on: #358
2026-01-19 14:17:12 +01:00
d9b659e5ea
fix: linting + tests
2026-01-19 14:09:19 +01:00
584442076e
fix: add error message to form
2026-01-19 12:47:17 +01:00
ac0e272cca
refactor: change length for performance
2026-01-19 12:37:39 +01:00
b70dd3d98f
formatting
2026-01-19 12:02:34 +01:00
3cbd90ecdd
feat: adds error capping
2026-01-19 12:02:28 +01:00
24426c7786
Merge branch 'main' into feature/333_validation
2026-01-19 11:46:14 +01:00
7da037d81d
refactor: adds schemales changeset and validation constant
2026-01-19 11:43:51 +01:00
8b3cc6a6b2
feat: adds row validation
2026-01-19 11:22:11 +01:00
54d96136b7
fix: link/button semantics
2026-01-16 17:16:06 +01:00
c86ae6aa9d
fix: sidebar accessibility
2026-01-16 14:17:15 +01:00
c3515b4105
feat: adjust display of submenu
2026-01-16 13:53:31 +01:00
74af41c8ab
feat: reorder sidebar
2026-01-16 12:46:45 +01:00
6dc398fa5a
refactor: reduce complexity
2026-01-15 17:00:17 +01:00
67072f0c52
feat: adds header header normalization
2026-01-15 16:11:09 +01:00
8a5d012895
refactor parser
2026-01-15 12:15:22 +01:00
3bbe9895ee
fix: improve CSV parser error handling
2026-01-15 11:08:22 +01:00
68e19bea18
feat: add csv parser
2026-01-15 10:10:02 +01:00
4b41ab37bb
Merge branch 'main' into feature/330_import_service_skeleton
2026-01-14 12:30:40 +01:00
fb71b7ddb1
fix struct inconsistencies
continuous-integration/drone/push Build is failing
2026-01-14 09:49:40 +01:00
b103ae3a5f
i18n: Update English translations
continuous-integration/drone/push Build is passing
2026-01-13 16:30:32 +01:00
89fbd55250
refactor: Reduce nesting depth in UserLive.Form.load_members_for_linking
2026-01-13 15:21:00 +01:00
fba0ea5ec0
fix: Replace Ash.read! with error handling in CustomFieldValueLive.Index
...
- Replace Ash.read! with Ash.read and proper error handling in mount/3
2026-01-13 15:21:00 +01:00
eb81d5f7cb
refactor: Simplify UserLive.Form handle_event and improve error handling
...
- Extract handle_member_linking, perform_member_link_action helpers
- Extract handle_save_success, get_action_name, handle_member_link_error
- Replace hardcoded strings with gettext translations
- Use submit_form wrapper for consistent actor handling
- Group all handle_event/3 clauses together
- Add early return in load_members_for_linking if actor is nil
2026-01-13 15:17:07 +01:00
a22081f288
refactor: Replace bang calls with error handling in Index LiveViews
...
- Replace Ash.get!/Ash.destroy! with Ash.get/Ash.destroy
- Add case statements for Forbidden, NotFound, and generic errors
- Display user-friendly flash messages for all error cases
- Use Enum.map_join/3 for efficient error formatting
2026-01-13 15:17:07 +01:00
77ae5c4888
refactor: Use submit_form wrapper in all LiveView forms
...
- Replace AshPhoenix.Form.submit with submit_form/3 wrapper
- Import current_actor and submit_form from LiveHelpers
- Consistent actor handling in all form submissions
2026-01-13 15:17:06 +01:00
897677a782
refactor: Replace actor option patterns with ash_actor_opts helper
...
- Replace if actor, do: [actor: actor], else: [] with Mv.Helpers.ash_actor_opts/1
- Update email_sync/loader.ex, member validations, member.ex, cycle_generator.ex
- Consistent actor handling across non-LiveView modules
2026-01-13 15:17:06 +01:00
555ae15173
feat: Add shared helper functions for actor handling
...
- Add Mv.Helpers module with ash_actor_opts/1 helper
- Add current_actor/1 with @spec to LiveHelpers
- Add ash_actor_opts/1 delegate and submit_form/3 wrapper to LiveHelpers
- Standardize actor access pattern across LiveViews
2026-01-13 15:17:06 +01:00
351eac4c02
Fix error handling and actor access in MemberLive.Index
...
Replace bang calls with proper error handling and use current_actor/1
helper for consistent actor access.
2026-01-13 15:17:05 +01:00
cd7e6b0843
Use current_actor/1 helper in all LiveViews
...
Replace inconsistent actor access patterns with current_actor/1 helper
and ensure actor is passed to all Ash operations for proper authorization.
2026-01-13 15:16:00 +01:00
74fe60f768
Pass actor parameter to member email validation
...
Extract actor from changeset context and pass it to Ash.read and
Ash.load calls in email uniqueness validation.
2026-01-13 15:16:00 +01:00
5ffd2b334e
Pass actor parameter through email sync operations
...
Extract actor from changeset context and pass it to all email sync
loader functions to ensure proper authorization when loading linked
users and members.
2026-01-13 15:16:00 +01:00
dbd79075f5
Pass actor parameter through cycle generation
...
Extract actor from changeset context in Member hooks and pass it
through all cycle generation functions to ensure proper authorization.
2026-01-13 15:15:59 +01:00
01cc5aa3a1
Add current_actor/1 helper for consistent actor access
...
Provides a single function to access current_user from socket assigns
across all LiveViews, ensuring consistent access pattern.
2026-01-13 15:15:59 +01:00
075a06ba6f
Refactor test setup: use global setup and fix MembershipFees domain alias
...
- Remove redundant setup blocks from member_live tests
- Add build_unauthenticated_conn helper for AuthController tests
- Add global setup in conn_case.ex
2026-01-13 15:15:56 +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
dc3268cbf4
Fix: Update comment in auto_filter to reflect expr(false) usage
...
Update comment from 'id IN [] = never matches' to 'expr(false) = match none'
to match the actual implementation of deny_filter().
2026-01-13 15:01:56 +01:00
c95a6fac69
Improve: Make deny_filter robust and add regression test
...
- Change deny_filter from [id: {:in, []}] to expr(false)
- Add regression test to ensure deny-filter matches 0 records
2026-01-13 15:01:55 +01:00
42a463f422
Security: Fix critical deny-filter bug and improve authorization
...
CRITICAL FIX: Deny-filter was allowing all records instead of denying
Fix: User validation in Member now uses actor from changeset.context
2026-01-13 15:01:55 +01:00
6846363132
Refactor: NoActor to SimpleCheck with compile-time environment check
...
This prevents security issues where :create/:read without actor would
be allowed in production. Now all operations require an actor in production.
2026-01-13 15:01:54 +01:00
70729bdd73
Fix: HasPermission auto_filter and strict_check implementation
...
Fixes security issue where auto_filter returned nil instead of proper
filter expressions, which could lead to incorrect authorization behavior.
2026-01-13 15:01:54 +01:00
4192922fd3
feat: implement authorization policies for Member resource
2026-01-13 15:01:53 +01:00
cc6d72b6b1
feat: add service skeleton and tests
continuous-integration/drone/push Build is failing
2026-01-13 11:44:40 +01:00
35895ac7fd
fix tests
continuous-integration/drone/push Build is failing
2026-01-13 10:48:44 +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