diff --git a/backend/routers/media_assets.py b/backend/routers/media_assets.py index 8a6bfa6..f75ae87 100644 --- a/backend/routers/media_assets.py +++ b/backend/routers/media_assets.py @@ -13,6 +13,7 @@ from club_tenancy import ( assert_club_member, assert_valid_governance_visibility, club_ids_for_profile_with_roles, + has_club_role, is_platform_admin, is_superadmin, library_content_visible_to_profile, @@ -1797,12 +1798,7 @@ def get_media_asset_journal( is_uploader = asset.get("uploaded_by_profile_id") == profile_id is_club_adm = False if asset.get("club_id"): - cur.execute( - """SELECT 1 FROM club_members - WHERE profile_id = %s AND club_id = %s AND role = 'admin' AND status = 'active'""", - (profile_id, asset["club_id"]), - ) - is_club_adm = cur.fetchone() is not None + is_club_adm = has_club_role(cur, profile_id, asset["club_id"], "club_admin") if not (is_sup or is_uploader or is_club_adm): raise HTTPException(status_code=403, detail="Keine Berechtigung (Superadmin, Uploader oder Vereinsadmin)") @@ -1895,12 +1891,7 @@ def add_rights_correction( is_uploader = asset.get("uploaded_by_profile_id") == profile_id is_club_adm = False if asset.get("club_id"): - cur.execute( - """SELECT 1 FROM club_members - WHERE profile_id = %s AND club_id = %s AND role = 'admin' AND status = 'active'""", - (profile_id, asset["club_id"]), - ) - is_club_adm = cur.fetchone() is not None + is_club_adm = has_club_role(cur, profile_id, asset["club_id"], "club_admin") if not (is_sup or is_uploader or is_club_adm): raise HTTPException( diff --git a/backend/version.py b/backend/version.py index ee55922..5856fd5 100644 --- a/backend/version.py +++ b/backend/version.py @@ -1,6 +1,6 @@ # Shinkan Jinkendo Version Information -APP_VERSION = "0.8.82" +APP_VERSION = "0.8.83" BUILD_DATE = "2026-05-11" DB_SCHEMA_VERSION = "20260511050" @@ -15,7 +15,7 @@ MODULE_VERSIONS = { "admin_users": "1.0.0", # GET /api/admin/users "platform_media_storage": "1.0.0", # GET/PUT /api/admin/platform-media-storage (Superadmin-Pfad unter MEDIA_ROOT) "media_rights": "1.2.0", # P-06+: write_audit_log_entry + write_rights_correction_declaration (Migration 050) - "media_assets": "1.16.0", # P-06+: Volljournal (audit_log + Korrektur); PATCH/lifecycle loggen Aenderungen + "media_assets": "1.16.1", # Fix: journal/correction club_admin check via has_club_role (role column doesn't exist on club_members) "groups": "0.1.0", "skills": "0.1.0", "methods": "0.1.0", @@ -31,6 +31,13 @@ MODULE_VERSIONS = { } CHANGELOG = [ + { + "version": "0.8.83", + "date": "2026-05-11", + "changes": [ + "Fix: Journal + Korrektur-Endpoint: club_admin-Pruefung nutzte falsches Schema (role-Spalte nicht in club_members, sondern in club_member_roles via has_club_role); lieferte immer 500.", + ], + }, { "version": "0.8.82", "date": "2026-05-11", diff --git a/frontend/src/version.js b/frontend/src/version.js index 938f2f0..854fe5e 100644 --- a/frontend/src/version.js +++ b/frontend/src/version.js @@ -1,6 +1,6 @@ // Shinkan Jinkendo Frontend Version -export const APP_VERSION = "0.8.82" +export const APP_VERSION = "0.8.83" export const BUILD_DATE = "2026-05-11" export const PAGE_VERSIONS = {