[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
REDAXO Forum • Zugriffskontrolle für Artikel und Mediendateien
Seite 1 von 1

Zugriffskontrolle für Artikel und Mediendateien

Verfasst: 12. Mai 2018, 11:50
von w.busch
Ich habe ein neues AddOn ('access_control') veröffentlicht. Es ermöglicht eine Zugriffskontrolle für ausgewählte Bereiche von Artikeln bzw. von Mediendateien und ist eine Weiterentwicklung von 'Geschütze Dateien mit YCom', aber unabhängig von YCom und yrewrite. - Es liegt auch unter https://github.com/WolfgangBusch/access_control

Re: Zugriffskontrolle für Artikel und Mediendateien

Verfasst: 29. Mai 2018, 10:40
von michaelwandel
Hi Wolfgang,

muss man sonst noch was beachten bzw. wird YCom dafür benötigt ?

Bekomme u.a. folgende Fehlermeldung:

Strict: Non-static method access_control::protected_or_forbidden() should not be called statically, assuming $this from incompatible context in rex:///template/3 on line 100

Ansonsten wäre es super ;-)

Gruß, Michael

Re: Zugriffskontrolle für Artikel und Mediendateien

Verfasst: 6. Jun 2018, 15:50
von w.busch
Hallo Michael,
ich komme leider erst jetzt dazu, mich darum zu kümmern.
Alle functions des AddOns werden wie "public static function" benutzt. Sind aber ohne "public static" definiert.

Die Meldung "Strict: ..." bedeutet vermutlich eine besonders strenge PHP-Version?

Re: Zugriffskontrolle für Artikel und Mediendateien

Verfasst: 6. Jun 2018, 15:58
von w.busch
Ach ja, YCom wird nicht benötigt. Das AddOn kann aber parallel zu YCom benutzt werden.

Re: Zugriffskontrolle für Artikel und Mediendateien

Verfasst: 6. Jun 2018, 17:01
von w.busch
Hallo Michael,
ich habe ein bisschen über PHP und static functions nachgelesen. Es scheint, dass - zumindest künftig - die Eigenschaften public und static nicht mehr weggelassen werden sollten. - Ich habe daher jetzt alle functions mit "public static function ..." deklariert und das Addon in Version 1.2.0 neu hochgeladen.
Schreibe doch bitte, ob das Problem damit behoben ist.

Re: Zugriffskontrolle für Artikel und Mediendateien

Verfasst: 12. Jun 2018, 11:29
von michaelwandel
Hi Wolfgang,

ich musste die Seite leider flott online setzen und habe mir mit einem Metainfo-Hack geholfen, das funktioniert für meinen Bedarf grade bestens, aber ich schaue mir das auf jeden Fall noch mal an da unsere Kunden immer irgendwo passwortgeschützte Seiten fordern, grade im Hinblick auf DSGVO ;-)

Gruß, Michael :-)

Re: Zugriffskontrolle für Artikel und Mediendateien

Verfasst: 20. Jun 2018, 10:29
von Gudruna
Hallo Wolfgang,

ich wollte das Addon in ein Projekt einbinden, das ist genau das, was ich brauche.
Aber ich habe folgende Probleme:

1) Wenn das Addon aktiv ist, funktionieren meine im media_manager angelegten MediaTypen nicht mehr,
bei allen Bildern, egal, ob geschützt oder nicht, werden die Effekte nicht mehr angewendet.
Also wenn ich zB nutze : index.php?rex_media_type=teaser-thumb&rex_media_file=REX_MEDIA[1]"

In der boot.php holst Du über $file = rex_get('rex_media_file','string'); den FileNamen der Mediendateien,
aber der rex_media_type wird auch später nicht mehr beachtet.
Das zerhaut mein Layout. Was kann ich tun?

2) Die Werte in der Konfiguration des Addons lassen sich nicht löschen. Ändern ja, aber nicht löschen, da muss ich in die Datenbank, um was zurückzustellen.

Ich würde mich über paar Tipps freuen, wie ich das vielleicht ändern kann, da ich es wirklich brauche und sinnvoll finde.

LG Gudrun

Re: Zugriffskontrolle für Artikel und Mediendateien

Verfasst: 22. Jun 2018, 13:59
von frood
Moin,

ein Frage: welche Vorteile versprichst Du dir von einer Addon-Lösung? Das ganze läßt sich doch auch leicht als Template umsetzen:

Code: Alles auswählen

<?php
// download-check
if(rex_request('auth_media','string')){
  // settings ---------------------------
  $protected_categories = array(4);
  $login_page_id        = 39;
  // ------------------------------------
  $media_name = strtolower(preg_replace("/[^a-zA-Z0-9.\-\$\+]/","_",rex_request('auth_media', 'string')));
  $media_path = rex_path::media($media_name);
  $media = rex_media::get($media_name);
  if($media){
    $media_cat  = $media->getValue('category_id');
    $media_type = $media->getType();
    if(in_array($media_cat,$protected_categories) && !rex_ycom_auth::getUser()){
      // weiterleitung Login-Seite
      header('Location: '.rex_getUrl($login_page_id, rex_clang::getCurrentId()).'?rex_ycom_auth_ref=%252Fmedia%252F'.$media_name );
      exit;
    }else{
      // Datei oeffnen
      if($fp = @fopen("$media_path", "r")){
        header("Expires: Mon, 01 Jan 2000 01:01:01 GMT"); // Date in the past
        header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");// always modified
        header("Cache-Control: no-store, no-cache, must-revalidate");// HTTP/1.1
        header("Cache-Control: post-check=0, pre-check=0", false);
        header("Cache-Control: private");
        header("Pragma: no-cache");
        header("Content-Type: $media_type; name=\"$media_name\"");
        header("Content-Disposition: attachment; filename=\"$media_name\"");
        rex_response::cleanOutputBuffers();
        fpassthru ($fp);
        fclose($fp);
        exit;
      }
    }
  }
}
?>
Dies Template dann vor den Header.

In der .htaccess dann noch ein Rewrite VOR die Image Manager Rules:

Code: Alles auswählen

# REWRITE DOWNLOADS
RewriteRule ^media/(.*) %{ENV:BASE}/index.php?auth_media=$1


... und fertig ist die Laube. So kann man dann auch mehrere Media-Kategorien als protected definieren.

Den Schutz von Artikeln regelt YCom ja sehr gut ... hier braucht es also keine neue Lösung.

Gruss, Frood

Re: Zugriffskontrolle für Artikel und Mediendateien

Verfasst: 22. Jun 2018, 16:40
von Thomas.Skerbis

Re: Zugriffskontrolle für Artikel und Mediendateien

Verfasst: 8. Jul 2018, 14:38
von w.busch
Hallo Gudrun,
ich war leider eine Weile nicht im Lande. Ich werde dafür sorgen, dass sich die Konfigurationsdaten künftig löschen lassen. Wie der Medientyp berücksichtigt werden kann, muss ich noch näher untersuchen. Ich lasse in Kürze von mir hören.

Re: Zugriffskontrolle für Artikel und Mediendateien

Verfasst: 8. Jul 2018, 18:04
von w.busch
Hallo Gudrun,
ich habe eine neue Version hochgeladen, in der du die Konfigurationsdaten zurücksetzen kannst.
Kannst du mir Näheres dazu sagen, in welcher Form du die Medientypen von Bildern im Frontend nutzt? Wie ist der img-Code?

Re: Zugriffskontrolle für Artikel und Mediendateien

Verfasst: 11. Jul 2018, 17:33
von w.busch
Hallo Gudrun,
ich habe mich inzwischen etwas über die Medientypen und Effekte im Media Manager kundig gemacht. Auch mit Unterstützung von Markus Staab. In der neuesten Version 1.4.0 von heute (11.7.2018) werden bei der Ausgabe von Bildern auch die Medientypen gemäß Redaxo Media Manager berücksichtigt.

Re: Zugriffskontrolle für Artikel und Mediendateien

Verfasst: 16. Jul 2018, 13:13
von Gudruna
Hallo Wolfgang,

bin auch gerade zurück aus dem Urlaub :)
Danke für deine Mühen, das probiere ich gleich aus!

LG Gudrun