Page 1 of 1

popfetcher und zugriffsrechte

Posted: Sun Jan 22, 2006 5:56 pm
by soulman
Hallo zusammen!

Ich habe ein Problem mit der Rechtevergabe für den popfetcher.
Ich möchte das der nur für mich (user-id 1 / Admin) sichbar ist. Ich hab schon probiert die Rechte in der Plugin-Verwaltung zu vergeben, aber immer wenn ich da eine Einstellung ändere und dann "speichern" klicke stehen die Rechte danach sofort wieder auf "alle Autoren".
Ich habs dann über die Datenbank versucht. Hier habe ich in der Tabelle "_plugins" die "authorid" auf 1 gesetzt. Nun werde ich bei den Rechten zwar angezeigt, andere Autoren können den popfetcher aber immernoch benutzen.

Über Ideen oder ne Lösung würde ich mich freuen.

Danke schonmal
soulman

Re: popfetcher und zugriffsrechte

Posted: Sun Jan 22, 2006 6:10 pm
by garvinhicking
Leider hat der Popfetcher so direkt keine Integration in das Rechtesystem von Serendipity.

Die Rechte in der Pluginübersicht geben leider nur an, wer die plugin configuration ändern darf. Um da Änderungen zu speichern muss auch die Checkbox links angekreuzt werden.

Aber das hilft Dir ja in Deinem Problem nicht weiter.

Um das ganze also "wegzupatchen" musst Du leider Hand in der Plugin-Datei anlegen. Editier mal die Datei serendipity_event_popfetcher.php und suche nach folgendem Code:

Code: Select all

                case 'backend_sidebar_entries':
                    if (!$adminmenu) return false;
                    echo '<li><a href="?serendipity[adminModule]=event_display&serendipity[adminAction]=popfetcher">'.PLUGIN_MF_NAME.'</a></li>';
                    break;
Der ist dafür zuständig, den Link anzuzeigen. Das beheben wir als erstes:

Code: Select all

                case 'backend_sidebar_entries':
                    if (!$adminmenu || $serendipity['author'] != 1) return false;
                    echo '<li><a href="?serendipity[adminModule]=event_display&serendipity[adminAction]=popfetcher">'.PLUGIN_MF_NAME.'</a></li>';
                    break;
Diese geänderte IF-Bedingung sorgt dafür, dass der Link nur für den Autoren #1 angezeigt wird. Damit Leute die den Link kennen aber diesen nicht aufrufen können, muss dieselbe IF-Abfrage auch in diesem Code von

Code: Select all

                case 'external_plugin':
                    if ($adminmenu) return false;
geändert werden in:

Code: Select all

                case 'external_plugin':
                    if (!$adminmenu || $serendipity['author'] != 1) return false;
Viele Grüße,
Garvin