Ich möchte die Admin-Rechte für ein einzelnes Profil entziehen, aber es gibt keine „Entziehen“-Schaltfläche. Andere „Staff“-Konten auf meiner Seite haben eine solche Schaltfläche.
Habt ihr eine Idee, warum das so ist und wie man das beheben kann?
Ich möchte die Admin-Rechte für ein einzelnes Profil entziehen, aber es gibt keine „Entziehen“-Schaltfläche. Andere „Staff“-Konten auf meiner Seite haben eine solche Schaltfläche.
Habt ihr eine Idee, warum das so ist und wie man das beheben kann?
Ich prüfe nur, ob du versuchst, dem Konto, mit dem du aktuell angemeldet bist, den Adminzugriff zu entziehen.
Nein. Es ist ein anderes Konto … Ich habe es ‘Newsbot’ genannt, und es wurde zum Abrufen von RSS-Feeds verwendet.
Ich möchte diese Beiträge jetzt entfernen.
Existiert die E-Mail-Adresse dieses Kontos in deiner app.yml-Datei als Entwickler? Oder hast du über die Konsole Entwicklerberechtigungen erteilt?
Benutzer, die in der .yml-Build-Datei als DEVELOPERS aufgeführt sind, können aus Sicherheitsgründen nicht über die Benutzeroberfläche gelöscht werden:
## TODO: Liste von durch Komma getrennten E-Mail-Adressen, die beim ersten Anmelden zu Admins und Entwicklern werden
## Beispiel: 'benutzer1@beispiel.de,benutzer2@beispiel.de'
DISCOURSE_DEVELOPER_EMAILS: 'incredible_undeletables@myamazingdomain.com'
Sie müssen diese Einträge aus der .yml-Build-Datei entfernen und den Build neu ausführen.
Alternativ – was jedoch nicht empfohlen und nicht unterstützt wird (meiner Annahme nach) – können Sie den Admin-Status (Boolean) für diesen Benutzer in der users-Tabelle direkt in der Datenbank auf FALSE setzen. Hinweis: Ich habe das noch nie gemacht (Admin-Rechte noch nie entzogen, aber Moderatoren auf diese Weise hinzugefügt). Solche Eingriffe (direktes Herumprobieren in der Datenbank mit Dingen, mit denen Sie nicht vollständig vertraut sind) können unbeabsichtigte Folgen haben. Daher wird davon abgeraten, es sei denn, alle anderen Möglichkeiten sind ausgeschöpft. Stellen Sie sicher, dass Sie zu 100 % über ein funktionierendes Datenbank-Backup verfügen, bevor Sie etwas tun!
Überprüfen Sie Ihre .yml-Datei – das Problem liegt höchstwahrscheinlich dort.
Dieser Benutzer ist nicht in meiner .yml-Datei aufgeführt.
Es ist so frustrierend, wenn selbst Administratoren von grundlegenden Funktionen zur Forenwartung ausgeschlossen sind.
Dann könntest du direkt in der Datenbank etwas wie Folgendes versuchen:
update users set admin = false where username = 'Benutzername_des_böswilligen_Benutzers';
wobei:
und:
Das würde ich tun, wenn ich einen böswilligen Benutzer mit Admin-Rechten hätte und diese widerrufen müsste, ohne es über das Admin-Panel tun zu können.
Eine wilde Vermutung – hast du zufällig Discobot angepasst und in Newsbot umbenannt? Der Bot wird als Systembenutzer betrachtet, und du kannst seinen Admin-Status nicht entziehen.
Du kannst überprüfen, ob Newsbot tatsächlich Discobot ist, indem du auf seine Profilseite gehst und seine E-Mail-Adresse prüfst:
Die E-Mail-Adresse des Bots wird als discobot_email angezeigt.
Ja, genau das haben wir getan. Dieses Discobot-Profil wurde verwendet, um RSS-Feeds zu importieren, die wir nun entfernen möchten. Das Profil kann bestehen bleiben, ich möchte nur alle Beiträge/Themen löschen.
Da ich kein Entwickler bin, wären einfache Schritte sehr willkommen.
OK, Sie scheinen es also hier nicht wirklich um den Admin-Status zu gehen. Ihr Ziel ist die Entfernung von Beiträgen? Als Tipp für die Zukunft: Teilen Sie uns Ihr Endziel mit, nicht den aktuellen Schritt, von dem Sie glauben, dass er Ihnen dorthin führt.
Ich glaube nicht, dass wir einen Rake-Task haben, um alle Beiträge eines bestimmten Benutzers zu löschen. Lassen Sie mich einige Dinge testen, ich melde mich bei Ihnen.
OK. Folgendes ermöglicht es Ihnen, alle Beiträge eines Benutzers zu löschen. Sie benötigen Serverzugriff.
cd /var/www/discourse
sudo ./launcher enter app
rails c
newsbot ist. Falls dies nicht der Fall ist, stellen Sie sicher, dass Sie den Befehl bearbeiten,id = User.find_by_username('newsbot').id
Post.where(user_id: id).each do |p|
PostDestroyer.new(Discourse.system_user, p).destroy
end;