WBCE Home | WBCE Hilfe | WBCE Addon Repository | Impressum | Datenschutz

WBCE CMS Forum

WBCE CMS – Way Better Content Editing.

You are not logged in.

#1 11.06.2018 08:03:57

screamindan
Member

Mitgliederbereich ohne Backendzugriff

Moin. Is ja immer wieder mal Thema... Gibt es mittlerweile eine Möglichkeit, interne Bereiche zur Verfügung zu stellen, bei denen der Benutzer keinen Zugriff auf das Backend bekommt?

Offline

#2 11.06.2018 08:38:40

florian
Projektmanagement und Support WBCE CMS

Re: Mitgliederbereich ohne Backendzugriff

Du kannst eine Gruppe ohne Berechtigungen anlegen, die dieser Gruppe zugeordneten Benutzer haben dann ausschließlich lesenden Zugriff auf Seiten der Sichtbarkeitsstufe privat bzw. registriert, für die die Lesergruppe bei "Seite sehen (Frontend)" hinterlegt ist.
Allerdings können Benutzer diese Gruppe ihre eigenen Daten (Name, Mailadresse etc.) bearbeiten.
Es ist also out of the box nicht möglich, das als Sammelaccount zu verwenden; um dem Benutzer die Rechte zum Ändern der eigenen Daten zu entziehen, müssen die account/preferences.php und admin/preferences.php angepasst werden.
Angenommen, der Sammelaccount hat die Benutzer-ID 2:

account/preferences.php:

Nach

define('VISIBILITY', 'public');

einfügen:

$currentUser = $wb_inst->get_user_id();

Zeile

define('PAGE_CONTENT', WB_PATH.'/account/preferences_form.php');

ändern zu

if ($currentUser != 2) {
define('PAGE_CONTENT', WB_PATH.'/account/preferences_form.php');
} else {
define('PAGE_CONTENT', WB_PATH.'/account/preferences_noform.php');
}	

Die /account/preferences_noform.php mit folgendem Inhalt anlegen:

<?php

if (defined('WB_PATH') == false) {exit("Cannot access this file directly");}
$sCallingScript = $_SERVER['SCRIPT_NAME'];
$_SESSION['HTTP_REFERER'] = isset($_SESSION['HTTP_REFERER']) ? $_SESSION['HTTP_REFERER'] : $sCallingScript;
if ($wb->is_authenticated() === false) {
// User needs to login first
    header("Location: " . WB_URL . "/account/login.php?redirect=" . $wb->link);
    exit(0);
}

echo "Du hast keine Berechtigung zum &Auml;ndern der Daten!";

/admin/preferences/index.php:
Zeilen

// Parse template for preferences form
    $template->parse('main', 'main_block', false);
    $output = $template->finish($template->parse('output', 'page'));
    return $output;

ändern zu

// Parse template for preferences form
	if ($admin->get_user_id()!=2) {							
    $template->parse('main', 'main_block', false);
    $output = $template->finish($template->parse('output', 'page'));
    return $output;
	} else {
		return "Du hast keine Berechtigung zum Ändern der Daten!";
	}  

Last edited by florian (23.10.2018 17:27:15)

Offline

#3 11.06.2018 09:00:31

screamindan
Member

Re: Mitgliederbereich ohne Backendzugriff

Ah prima, das dürfte so erstmal reichen. Wo kann ich die Benutzer ID denn sehen?

Offline

#4 11.06.2018 09:09:50

florian
Projektmanagement und Support WBCE CMS

Re: Mitgliederbereich ohne Backendzugriff

Admintools > User Search > als Suchbegriff *  (oder den betr. Benutzernamen oder Teile davon mit Asterisk) eingeben und auf Suchen klicken

Last edited by florian (11.06.2018 09:10:41)

Offline

#5 11.06.2018 12:00:44

screamindan
Member

Re: Mitgliederbereich ohne Backendzugriff

Vielen Dank, klappt gut!  thumb_up

Offline

#6 23.10.2018 16:10:43

pfreud01
Member

Re: Mitgliederbereich ohne Backendzugriff

Danke für die gute Anleitung, aber das ganze funktioniert nicht, wenn das Droplet LoginBox verwendet wird. Dort wird der Menüpunkt "Meine Daten" ausgegeben und kann angeklickt bzw. verändert werden. Wie krieg ich das hin, dies zu verhindern?  sad

Offline

#7 23.10.2018 17:04:18

florian
Projektmanagement und Support WBCE CMS

Re: Mitgliederbereich ohne Backendzugriff

Das Droplet generiert keine eigene Seite zum Ändern der pers. Daten. Wenn Du wie oben beschrieben die account/preferences.php änderst, und dann Dich nicht mit Deinen eigenen (Admin-)Daten, sondern als Testnutzer anmeldest, wirst Du mMn beim Anklicken des "Meine Daten"-Links kein Formular zum Ändern der Daten sehen.

Um den Link aus der vom Droplet generierten Loginbox geht, so genügt es, die Zeile

$return_value .= '<li class="preference"><a href="'.PREFERENCES_URL.'" title="'.$MENU['PREFERENCES'].'">'.$MENU['PREFERENCES'].'</a></li>'."\n";

zu entfernen.

Offline

#8 23.10.2018 17:09:57

pfreud01
Member

Re: Mitgliederbereich ohne Backendzugriff

Aber dann kann niemand mehr die Passwort-Ändern-Funktion nutzen. Ich bräuchte es wie oben, dass eben nur eine bestimmte Gruppe die Daten nicht ändern kann, aber andere Gruppen schon.  hmm

Last edited by pfreud01 (23.10.2018 17:10:21)

Offline

#9 23.10.2018 17:33:50

pfreud01
Member

Re: Mitgliederbereich ohne Backendzugriff

Selbst hinbekommen: Das Droplet duplizieren und aus der Kopie ein Droplet LoginBoxOhnePreferences machen. Darin Zeile 107 entfernen. Nun kann sich die Gruppe ohne Backendzugriff damit einloggen ohne die Daten zu ändern. Bei mir gibts da eine Weiterleitung auf eine interne Seite. Den anderen Gruppen biete ich dort nochmals das normale Droplet an, wo die eigenen Daten änderbar sind. Reicht für mich erstmal. Danke für den Denkanstoß.  smile

Offline

Board footer

Powered by FluxBB

up