feat: Datafields page, merge fee types into membership_fee_settings, sidebar
- Add /admin/datafields (DatafieldsLive) for member and custom field config - Remove Memberdata block from GlobalSettingsLive - Router: drop /membership_fee_types, add new_fee_type and edit_fee_type under membership_fee_settings - MembershipFeeSettingsLive: fee types table, collapsible examples; Index links updated - PagePaths: admin_datafields, admin_import; remove membership_fee_types - Sidebar: order and labels (Basic settings, Datafields, Membership fee settings, Import, Users, Roles) - Gettext: German translations for sidebar and OIDC - Tests: datafields and fee routes, permission and form tests updated
This commit is contained in:
parent
8edbbac95f
commit
62b37b9aa2
18 changed files with 886 additions and 251 deletions
|
|
@ -12,14 +12,14 @@ defmodule Mv.OidcRoleSyncTest do
|
|||
|
||||
setup do
|
||||
ensure_roles_exist()
|
||||
restore_config = put_oidc_config(admin_group_name: "mila-admin", groups_claim: "groups")
|
||||
restore_config = put_oidc_env(admin_group_name: "mila-admin", groups_claim: "groups")
|
||||
on_exit(restore_config)
|
||||
:ok
|
||||
end
|
||||
|
||||
describe "apply_admin_role_from_user_info/2" do
|
||||
test "when OIDC_ADMIN_GROUP_NAME not configured: does not change user (Mitglied stays)" do
|
||||
restore = put_oidc_config(admin_group_name: nil, groups_claim: "groups")
|
||||
restore = put_oidc_env(admin_group_name: nil, groups_claim: "groups")
|
||||
on_exit(restore)
|
||||
|
||||
email = "sync-no-config-#{System.unique_integer([:positive])}@test.example.com"
|
||||
|
|
@ -58,7 +58,7 @@ defmodule Mv.OidcRoleSyncTest do
|
|||
end
|
||||
|
||||
test "when OIDC_GROUPS_CLAIM is different: reads groups from that claim" do
|
||||
restore = put_oidc_config(admin_group_name: "mila-admin", groups_claim: "ak_groups")
|
||||
restore = put_oidc_env(admin_group_name: "mila-admin", groups_claim: "ak_groups")
|
||||
on_exit(restore)
|
||||
|
||||
email = "sync-claim-#{System.unique_integer([:positive])}@test.example.com"
|
||||
|
|
@ -131,13 +131,30 @@ defmodule Mv.OidcRoleSyncTest do
|
|||
end
|
||||
end
|
||||
|
||||
defp put_oidc_config(opts) do
|
||||
current = Application.get_env(:mv, :oidc_role_sync, [])
|
||||
merged = Keyword.merge(current, opts)
|
||||
Application.put_env(:mv, :oidc_role_sync, merged)
|
||||
defp put_oidc_env(opts) do
|
||||
prev_admin = System.get_env("OIDC_ADMIN_GROUP_NAME")
|
||||
prev_claim = System.get_env("OIDC_GROUPS_CLAIM")
|
||||
|
||||
if opts[:admin_group_name] != nil do
|
||||
System.put_env("OIDC_ADMIN_GROUP_NAME", to_string(opts[:admin_group_name]))
|
||||
else
|
||||
System.delete_env("OIDC_ADMIN_GROUP_NAME")
|
||||
end
|
||||
|
||||
if opts[:groups_claim] != nil do
|
||||
System.put_env("OIDC_GROUPS_CLAIM", to_string(opts[:groups_claim]))
|
||||
else
|
||||
System.delete_env("OIDC_GROUPS_CLAIM")
|
||||
end
|
||||
|
||||
fn ->
|
||||
Application.put_env(:mv, :oidc_role_sync, current)
|
||||
if prev_admin,
|
||||
do: System.put_env("OIDC_ADMIN_GROUP_NAME", prev_admin),
|
||||
else: System.delete_env("OIDC_ADMIN_GROUP_NAME")
|
||||
|
||||
if prev_claim,
|
||||
do: System.put_env("OIDC_GROUPS_CLAIM", prev_claim),
|
||||
else: System.delete_env("OIDC_GROUPS_CLAIM")
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue