fix tests and linting

This commit is contained in:
carla 2026-01-23 18:56:14 +01:00 committed by Moritz
parent 56f3054992
commit 79361c72d2
Signed by: moritz
GPG key ID: 1020A035E5DD0824
2 changed files with 25 additions and 35 deletions

View file

@ -45,10 +45,11 @@ defmodule MvWeb.GlobalSettingsLive do
"""
use MvWeb, :live_view
alias Mv.Authorization.Actor
alias Mv.Config
alias Mv.Membership
alias Mv.Membership.Import.MemberCSV
alias MvWeb.Authorization
alias Mv.Config
on_mount {MvWeb.LiveHelpers, :ensure_user_role_loaded}
@ -375,8 +376,12 @@ defmodule MvWeb.GlobalSettingsLive do
# Checks if import can be started (admin permission, status, upload ready)
defp check_import_prerequisites(socket) do
# Ensure user role is loaded before authorization check
user = socket.assigns[:current_user]
user_with_role = Actor.ensure_loaded(user)
cond do
not Authorization.can?(socket.assigns[:current_user], :create, Mv.Membership.Member) ->
not Authorization.can?(user_with_role, :create, Mv.Membership.Member) ->
{:error, gettext("Only administrators can import members from CSV files.")}
socket.assigns.import_status == :running ->
@ -568,7 +573,9 @@ defmodule MvWeb.GlobalSettingsLive do
# In tests (SQL sandbox mode), runs synchronously to avoid Ecto Sandbox issues
defp start_chunk_processing_task(socket, import_state, progress, idx) do
chunk = Enum.at(import_state.chunks, idx)
actor = socket.assigns[:current_user]
# Ensure user role is loaded before using as actor
user = socket.assigns[:current_user]
actor = Actor.ensure_loaded(user)
live_view_pid = self()
# Process chunk with existing error count for capping