Mediathek Datei-Upload spezieller Dateiformate (BIM) für Redaktions User

  • Guten Tag,

    STORY
    ich probiere seit einigen Tagen einem Problem auf die Schliche zu kommen. Für ein WordPress Projekt eines Architekten, möchte ich dem Kunden (Redaktions User Account) die Möglichkeit geben, BIM Daten in die Mediathek hochzuladen. Um genau zu sein RVT (.rvt) und IFC (.ifc) Dateien.

    Dies wird standard mäßig blockiert: "Dieser Dateityp ist aus Sicherheitsgründen leider nicht erlaubt."

    ANSATZ
    Noch ein bisschen google kommt man relativ schnell auf den Lösungsansatz das ganze über

    wp-config:

    Code
    define( 'ALLOW_UNFILTERED_UPLOADS', true );

    und functions.php:

    zu lösen.

    PROBLEM
    Dies funktioniert auch für meine Admin Account, sprich ich kann im Anschluss die Dateiformate ohne Probleme in die Mediathek hochladen. Allerdings funktioniert es nicht für einen Redaktions Account.

    DEBUGGING
    Was ich durch debugging bis jetzt ausschließen kann:
    - Es ist kein Problem auf User Seite
    - Es ist kein Problem auf Browser Seite
    - Es ist kein Server Problem
    - Es ist kein Theme oder Plugin Problem

    Ich habe ein frisches WP aufgesetzt, das Standard Theme twentytwentyone aktiviert und die Snippets eingebaut. Gleiches Phenomän: Admin User kann hochladen, Redaktions User nicht. Es scheint als würde WordPress im Core ein Problem mit der Kombination: nicht Admin user + Bim Daten Formate haben.

    Kann sich das jemand erklären?
    Oder hat da eventuell sogar Erfahrung mit?

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

    • Wie/wo genau wird der Code eingebunden?
    • Wie/wo genau wird die Datei hochgeladen? Direkt In der Mediathek oder z.B. beim Bearbeiten einer Seite?
    • Funktioniert der Upload von z.B. einfachen Bildern mit dem Redakteur Account ohne den o.g. eingefügten Code?
    • Funktioniert der Upload, wenn das Classic Editor Plugin aktiv ist und verwendet wird? Der Gutenberg Editor beachtet z.B. die wp-config.php Angabe einfach nicht, siehe ein seit 9 Monaten offenes Ticket hier.
    • Laufen irgendwelche sonstigen Plugins zum Thema Benutzerrechte, Rollen, Capabilities, Mitgliedsbereiche, usw. - falls ja, alle deaktivieren und dann testen.
    • Wie/wo genau wird der Code eingebunden?


    "wp-config:" (im root) "functions.php" (des themes)

    • Wie/wo genau wird die Datei hochgeladen? Direkt In der Mediathek oder z.B. beim Bearbeiten einer Seite?


    "Mediathek"

    • Funktioniert der Upload von z.B. einfachen Bildern mit dem Redakteur Account ohne den o.g. eingefügten Code?


    ja


    Macht keinen Unterschied ob mit Classic Editor Plugin oder nicht.

    • Laufen irgendwelche sonstigen Plugins zum Thema Benutzerrechte, Rollen, Capabilities, Mitgliedsbereiche, usw. - falls ja, alle deaktivieren und dann testen.


    Es sind keine Plugins installiert.
    Ich habe zum Debugging ja extra ein neues WordPress aufgesetzt, twentytwentyone theme, 0 plugins

  • Lt. kurzem Blick in die Dokumentation zu ALLOW_UNFILTERED_UPLOADS erlaubt diese Konstante nicht direkt Uploads sondern nur, dass man dann Benutzerrollen die nötige [FONT=Courier New]unfiltered_upload[/FONT] Capability geben kann:

    Zitat

    With this constant defined, all roles on a single site install can be given the unfiltered_upload capability..


    Das kann man für die standard Redakteuer Rolle z.B. über diesen zusätzlichen Codeblock lösen:

    Code
    $role = get_role( 'editor' );
    if ( $role !== NULL ) {
        if ( !$role->has_cap( 'unfiltered_upload' ) ) $role->add_cap( 'unfiltered_upload' );
    }


    Damit sollte dann auch der Upload als Redakteur funktionieren.


  • wp-config:

    Code
    define( 'ALLOW_UNFILTERED_UPLOADS', true );

    Dies würde ich nicht machen - sondern dem System die neuen Dateien beibringen


    und functions.php:

    Das System kennt bereits jpeg, png...

    Wenn Du neue mime_types hinzufügen möchtest, geht dies mit

    Code
    function cc_mime_types($mimes) {
     $mimes['svg'] = 'image/svg+xml';
     return $mimes;
    }
    add_filter('upload_mimes', 'cc_mime_types')

    aber man fügt nicht bestehende Mime Types hinzu.


    DEBUGGING
    Was ich durch debugging bis jetzt ausschließen kann:
    - Es ist kein Problem auf User Seite

    hat der User wirklich einen Admin Account von dir eingerichtet bekommen und der Upload funktionierte dann? oder wie hast du dies festgestellt?


    - Es ist kein Problem auf Browser Seite

    Wie hast du dies festgestellt?


    - Es ist kein Server Problem

    Sicher? also ich musste in der Regel _immer_ auch etwas am Server ändern, wenn ich BIM Daten darstellen wollte.
    Und welchen Viewer verwendest du?



    - Es ist kein Theme oder Plugin Problem

    Und die Firewall der Router bei Deinem Kunden erlaubt das Hochladen?


    Ich habe ein frisches WP aufgesetzt, das Standard Theme twentytwentyone aktiviert und die Snippets eingebaut. Gleiches Phenomän: Admin User kann hochladen, Redaktions User nicht. Es scheint als würde WordPress im Core ein Problem mit der Kombination: nicht Admin user + Bim Daten Formate haben.

    lass dir doch einfach mal die Datei von Deinem Kunden zur Verfügung stellen. Vermutlich ist die für den Upload viel zu Groß oder sein Browser ist von einem merkwürdigen Hersteller.

    Mit offenen Augen träumen

  • Lt. kurzem Blick in die Dokumentation zu ALLOW_UNFILTERED_UPLOADS erlaubt diese Konstante nicht direkt Uploads sondern nur, dass man dann Benutzerrollen die nötige [FONT=Courier New]unfiltered_upload[/FONT] Capability geben kann:

    Das kann man für die standard Redakteuer Rolle z.B. über diesen zusätzlichen Codeblock lösen:

    Code
    $role = get_role( 'editor' );
    if ( $role !== NULL ) {
        if ( !$role->has_cap( 'unfiltered_upload' ) ) $role->add_cap( 'unfiltered_upload' );
    }


    Damit sollte dann auch der Upload als Redakteur funktionieren.

    Dies ist die Lösung.
    Ich danke dir vielmals!
    Ich hoffe ich kann mich mal revanchieren.

    Schönes Wochenende,
    Michael

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!