ycom
ycom copied to clipboard
Wunsch :: Admin sollte im Frontend Zugriff haben
Ein Backend-Admin oder -Redakteur sollte sich eine Community-Seite ohne Login anschauen können.
Den Registrierungs-/Loginprozess will man ja auch prüfen. Da hilft es nicht, wenn man gleich als "eingeloggt" gilt und durch das Frontend gehen kann.
Beschreib doch mal wie du dir das genau vorstellst.
Es geht um den Backend-Admin/oder Redakteur. Sie sollten sich die eingepflegten Seiten ohne Login zur Kontrolle anzeigen lassen können. Es ist schwierig den Redakteuren zu vermitteln, dass Sie sich zunächst in der Community einloggen müssen um die Darstellung der frisch eingepflegten Inhalte zu überprüfen.
z.B. "Als User xy einloggen" .. und man wäre direkt eingeloggt - wäre eine Möglichkeit.
Das wäre sehr praktisch @dergel vor allem auch hinsichtlich des History-Plugins. Aktuell muss für den Versionsvergleich der Backenduser auch im Frontend angemeldet sein, damit er die Versionen vergleichen kann.
rein vom wording her nennt man sowas ein "impersonate" feature, ggf. auch interessant für den core selbst (unabh. von diesem feature hier).
"impersonate" ist immer schön wenn man fehler o.ä. reproduzieren will ohne das passwort des users kennen zu müssen.
"impersonate"-Login steht aber im Kontrast zu einem Admin Login, weil beim Admin-Login die Sichtbarkeit von Themen nicht individuell angepasst werden kann. Es scheint also um zwei unterschiedliche Ansätze zu gehen, die sich widersprechen bzw. per Bedingungen gegenseitig ausschließen müssen.
Ich hab das bei einem aktuellen Projekt so gelöst:
// backendnutzer als ycom nutzer einloggen
rex_extension::register('YCOM_AUTH_USER_CHECK', function ($ep) {
// backendnutzer bei jedem seitenaufruf einloggen (wg ycom benutzerwechsel)
if (rex::getUser())
{
$user_id = rex_get('user_id', 'int', 0);
if ($user_id)
{
$ycom_user = rex_ycom_auth::loginWithParams(['id' => $user_id]);
if ($ycom_user) {
return true;
}
}
}
// eingeloggter ycom nutzer
if($ep->getSubject()) {
return true;
}
return false;
});
Kann hier @gharlan was beitragen durch die Identitäs-Wechsel-Funktion in REDAXO selbst? Da könnte vlt. gleich die Minibar ihre Stärken ausspielen...
Habe es probiert. Leider funktioniert es nicht mehr so wie Ingo es oben beschrieben hat mit der aktuellen Version. Daher habe ich auch das geplante AddOn bei FOR entfernt.
So funktionierts in 4.0.3:
rex_extension::register('YCOM_AUTH_USER_CHECK', function ($ep) {
// backendnutzer bei jedem seitenaufruf einloggen (wg ycom benutzerwechsel)
if (rex_backend_login::hasSession() && $beUser = rex_backend_login::createUser()) {
if ($beUser->isAdmin() || $beUser->hasPerm('permdafuer[]')) {
$user_id = rex_get('user_id', 'int', 0);
if ($user_id) {
$ycom_user = rex_ycom_auth::loginWithParams(['id' => $user_id]);
if ($ycom_user) {
return true;
}
}
}
}
});
Dann versuch ich das doch noch mal.
@IngoWinter Danke. https://github.com/FriendsOfREDAXO/ycom_impersonate Gerne hier weiterhelfen.
Ist nun eingebaut.
D.h. https://github.com/FriendsOfREDAXO/ycom_impersonate ist obsolet?
@alxndr-w nein es muss angepasst werden.
Als nicht Admin kann du kein impersonate innerhalb von YCom nutzen. Wenn man das will, müsste man das ycom_impersonate AddOn anpassen.