BuddyPress vor fremden Blicken schützen

WordPress Backend Login

Wer mit WordPress und BuddyPress seine eigene Social-Network-Plattform aufbaut, möchte möglicherweise nicht jedem beliebigen Besucher Zugang gewähren. Dabei geht es um zwei verschiedene Aspekte: Einerseits sollen nicht eingeloggte Besucher die Plattform nicht einsehen können (oder höchstens einige ausgewählte Seiten wie z.B. das Registrierungsformular), andererseits sollen neu registrierte Benutzer ihr Login erst nach der Freischaltung durch einen Administrator nutzen können.

Klingt einfach? Ist es aber nicht! Das Problem liegt zunächst darin, dass WordPress von Haus aus wohl das Backend, nicht aber das Frontend durchgängig mit einem Login schützt. Erschwerend kommt in unserem Fall dazu, dass das BuddyPress-Plugin einige spezielle Seiten anlegt (Activitiy Stream, Members, Groups), welche WordPress nicht wie normale Seiten behandelt; nicht alle Plugins, welche das Frontend mit einem Passwortschutz versehen, schützen deshalb auch die BuddyPress-Seiten. Und last but not least kennt WordPress keine Freischaltung von neu registrierten Benutzern durch einen Administrator, sondern erlaubt es den Benutzern, sich über einen per E-Mail zugestellten Aktivierungs-Link selbst freizuschalten.

Um also eine BuddyPress-Installation komplett vor fremden Blicken zu schützen benötigt man Plugins, und zwar gleich mehrere. Verschiedene meiner Testkandidaten haben zudem mit WordPress 3.1 und BuddyPress 1.2.8 – also den allerneusten Versionen – nicht korrekt funktioniert.

Plugin Schutz des Frontends Freischaltung von neuen Usern
BP Registration Options schützt nur BuddyPress-Seiten, aber keine Standard-WordPress-Seiten OK
Private BuddyPress OK
New User Approve wirkungslos
Absolute Privacy schützt nur Standard-WordPress-Seiten, aber keine BuddyPress-Seiten OK
WP Members wirkungslos
More Privacy Options wirkungslos
BuddyPress Privacy Component fehlerhaft (Website nicht mehr erreichbar)
Force User Login schützt nur Standard-WordPress-Seiten, aber keine BuddyPress-Seiten

 

Was in meinem Fall schliesslich funktionierte, war die Kombination aus Private BuddyPress als umfassender Schutz des Frontends und Absolute Privacy als zuverlässiger Freischaltprozess für neu registrierte Benutzer. Dass es allerdings dermassen umständlich ist, eine BuddyPress-Installation sauber gegen aussen abzuschotten, scheint mir schon ziemlich bedenklich – eine solche Funktionalität gehört meiner Meinung nach ins Basissystem und sollte nicht mit Plugins nachgerüstet werden müssen.

css.php