Heute bin ich auf das Problem gestoßen, dass ich Frontend-Benutzern ein Profilbild-Upload ermöglichen wollte und eine Fehlermeldung "403 - es ist nicht erlaubt, diese Resource einzusehen" bekam. Welche Einrichtung mein Problem gelöst hat und jetzt den Upload von Bildern für Frontend-Benutzer ermöglicht, beschreibe ich in diesem Beitrag.
Folgende Einrichtung zum Upload vom Profilbild in Joomla
Um im Frontend ein Profilbild in Joomla hochzuladen, müssen ein paar Einrichtungsschritte erfolgen. Wir gehen davon aus, dass es sich um registrierte Benutzer handelt, d.h. Joomla-Benutzer mit der Benutzergruppe "registriert".
Anmerkung: Einen Upload für nicht-registrierte Benutzer würde ich aus Sicherheitsgründen nicht einrichten.
Schritt 1 "Eigene Felder" für Joomla Benutzer aktivieren
Im Administrator im Menü "Benutzer" - "Optionen" muss im Tab "Integration" die Option "Eigene Felder aktivieren" auf Ja stellen, sonst werden die Felder (Custom Fields) im linken Menü nicht angezeigt.
Wenn diese Einrichtung erfolgt ist, sehen Sie im linken Menü unter "Benutzer" folgende Einträge:
Schritt 2: Feld Profilbild in Joomla anlegen
Nun kann man ein Feld für das Profilbild anlegen. Folgende Einrichtungsfelder müssen gefüllt werden:
- Titel
- Typ: "media"
- Zugriffsebene: mindestens "Registriert" - Sicherheit!
- Verzeichnis: z.B. "profilbilder", sollte nicht auf das Joomla-Bilderverzeichnis (/images) zeigen - Sicherheit!
Nun kann man im Frontend als registrierter Benutzer bereits den Profilbild-Upload testen. Man bekommt jedoch noch eine Fehlermeldung "403 Es ist nicht erlaubt diese Ressource einzusehen!". Dies liegt daran, dass man auf die Joomla-Komponente com_media keinen Zugriff für registrierte Benutzer hat. Man muss dies in den Berechtigungen noch anpassen.
Schritt 3 Benutzerberechtigungen für Media Manager anpassen
Man muss sowohl das "Erstellen" als auch "Administrationszugriff" erlauben, sonst hat man auch im Frontend keinen Zugriff.
Achtung Sicherheitsproblem: Die Benutzer können trotz voreingestelltem Verzeichnis images/profilbilder alle Verzeichnisse im Upload-Formular auswählen. Sie können allerdings nur Hochladen und ein Bild auswählen, aber nichts löschen. Wenn man noch Bilder im /images-Verzeichnis hat, die nicht ausgewählt werden sollen, dann funktioniert das mit dem Joomla Custom Field nicht.
Hier gibt es noch weitere Möglichkeiten diese Ansicht anzupassen. Grundsätzlich funktioniert es auf diese Weise und sieht dann folgendermaßen aus: