System Actor Mode for Systemic Flows closes #348 #361

Merged
moritz merged 16 commits from feature/348_system_actor into main 2026-01-21 08:36:41 +01:00
Owner

Description of the implemented changes

The changes were:

  • Bugfixing
  • New Feature
  • Breaking Change
  • Refactoring

What has been changed?

Definition of Done

Code Quality

  • No new technical depths
  • Linting passed
  • Documentation is added were needed

Accessibility

  • New elements are properly defined with html-tags
  • Colour contrast follows WCAG criteria
  • Aria labels are added when needed
  • Everything is accessible by keyboard
  • Tab-Order is comprehensible
  • All interactive elements have a visible focus

Testing

  • Tests for new code are written
  • All tests pass
  • axe-core dev tools show no critical or major issues

Additional Notes

## Description of the implemented changes The changes were: - [ ] Bugfixing - [x] New Feature - [ ] Breaking Change - [ ] Refactoring <!--- Describe the goal of the PR in a few words --> ## What has been changed? <!--- List the things you changed --> ## Definition of Done ### Code Quality - [ ] No new technical depths - [x] Linting passed - [x] Documentation is added were needed ### Accessibility - [ ] New elements are properly defined with html-tags - [ ] Colour contrast follows WCAG criteria - [ ] Aria labels are added when needed - [ ] Everything is accessible by keyboard - [ ] Tab-Order is comprehensible - [ ] All interactive elements have a visible focus ### Testing - [x] Tests for new code are written - [x] All tests pass - [ ] axe-core dev tools show no critical or major issues ## Additional Notes <!--- Add any additional information for the reviewers here -->
moritz added this to the Accounts & Logins milestone 2026-01-20 23:18:43 +01:00
moritz self-assigned this 2026-01-20 23:18:43 +01:00
moritz added 9 commits 2026-01-20 23:18:45 +01:00
Introduce Mv.Helpers.SystemActor module with lazy loading
for operations that must always run regardless of user permissions.
System actor has admin role and auto-creates in test environment.
Add system@mila.local user with admin role for systemic operations.
This user is used by SystemActor helper for mandatory side effects.
Update email sync loader and changes to use system actor instead of user actor.
This ensures email sync always works regardless of user permissions.
Update email validation modules to use system actor for queries.
This ensures data integrity checks always run regardless of user permissions.
Update cycle generator, member hooks, and job to use system actor.
Remove actor parameters as cycle generation is a mandatory side effect.
Test system actor retrieval, caching, fallback behavior,
and auto-creation in test environment.
Add section explaining when and how to use system actor for systemic operations.
Include examples and distinction between user mode and system mode.
Add type specifications for all private functions to improve
static analysis with Dialyzer and documentation quality.
Refactor test setup into helper functions
All checks were successful
continuous-integration/drone/push Build is passing
5eadd5f090
Extract setup code into reusable helper functions to reduce
duplication and improve maintainability.
moritz added 6 commits 2026-01-21 08:04:10 +01:00
Use Application config instead of Mix.env() to prevent
runtime crashes in production releases where Mix is not available
Pass actor_opts to delete_cycles/1 to ensure proper authorization
when MembershipFeeCycle policies are enforced
Log warnings when query errors occur in email uniqueness checks
to improve visibility of data integrity issues
Allow system user email to be configured via environment variable
with fallback to default 'system@mila.local'
Restrict UI access to cycle regeneration to administrators only
to prevent policy bypass via user interface
Update gettext translations for new UI strings
All checks were successful
continuous-integration/drone/push Build is passing
2721d584a1
moritz force-pushed feature/348_system_actor from 2721d584a1 to 1c5bd04661 2026-01-21 08:09:47 +01:00 Compare
moritz added 1 commit 2026-01-21 08:36:01 +01:00
Move require Logger to module level
All checks were successful
continuous-integration/drone/push Build is passing
d07f1984cd
Move require Logger statements from function/case level to module level
for better code organization and consistency with Elixir best practices
moritz merged commit a9f9cab96a into main 2026-01-21 08:36:41 +01:00
moritz deleted branch feature/348_system_actor 2026-01-21 08:36:43 +01:00
moritz modified the milestone from Accounts & Logins to We have different roles and permissions 2026-02-03 16:39:11 +01:00
Sign in to join this conversation.
No description provided.