OMOSde / contao-om-backend

Additional backend tools for Contao 4.4+
GNU Lesser General Public License v3.0
19 stars 5 forks source link

Problem mit Benutzerrechten bei Nachrichten, Events und Newsletter #59

Closed mlwebworker closed 3 years ago

mlwebworker commented 3 years ago

Wenn die Erweiterung installiert ist, gibt es Probleme bei den Nutzerrechten für Nachrichten-Archive, Kalender und Newsletter-Verteiler. Ich nehme an auch bei FAQs. Die habe ich aber nicht getestet, das das FAQ-Modul in dieser Installation nicht verwendet wird. Konkret werden korrekt vergebener Nutzerrechte und freigegebener Nachrichtenarchive, Kalender und Newsletter-Verteiler, diese beim Benutzer nicht angezeigt. Die Benutzerrechte wurden als Gruppenrechte vergeben und einem Benutzer zugeordnet. Contao-Version 4.9.9 Version der Erweiterung: 1.6.9

Siehe auch https://contao.slack.com/archives/CK4J0KNDB/p1603802712326000

liquid-a commented 3 years ago

Das identische Problem (wie von mlwebworker beschrieben) habe ich auch. Sobald die Erweiterung installiert ist, lassen sich einige Benutzerechte nicht mehr korrekt zuweisen, bzw. nutzen. Im Moment behelfe ich mir damit dass ich einem einzelnen User im Backend zusätzlich "erweiterte Rechte" zuteile und wähle das entsprechende dann nochmal aus (z.B. das Nachrichten Archiv). Dann kann der User das Archiv sehen und berarbeiten, ist aber nicht Sinn der Sache. Ich hoffe es gibt dazu im nächsten Update ein Lösung, da ich dieses Modul sehr gerne nutze, die Benutzerverwaltung durch das Modul aber nicht eingeschränkt werden sollte.

OMOSde commented 3 years ago

Hi,

könnt ihr mal bitte folgendes testen?

In "vendor/omosde/contao-om-backend/src/Resources/contao/config/config.php" Zeile #L50-L51

$objUser = BackendUser::getInstance();
$objUser->authenticate();

ersetzen mit:

$arrPackages = \System::getContainer()->getParameter('kernel.packages');
    if ($arrPackages['contao/core-bundle'] >= '4.9.0')
    {
        $strUsername = Contao\System::getContainer()->get('contao.security.token_checker')->getBackendUsername();
        if ($strUsername !== null)
        {
            $objUser = \Contao\BackendUser::loadUserByUsername($strUsername);
        }
    }
    else
    {
        $objUser = BackendUser::getInstance();
        $objUser->authenticate();
    }

Bei meinen Tests hat es das Problem behoben.

OMOSde commented 3 years ago

Fixed in 796b5d4edc307db8a13060f5541deb5bcaabe39d