Hallo!
Ich habe das Plugin an meine Bedürfnisse angepasst und möchte gerne mitteilen, was ich getan habe, meinen aktuellen Workflow und ein paar Fragen/Bitten um Rat.
1. Meine Modifikationen
Dateipfad und Inhalt:
Datei: app/jobs/scheduled/update-all-titles.rb
# frozen_string_literal: true
module AddTitleBasedOnTrustLevel
class UpdateTitles < ::Jobs::Scheduled
every SiteSetting.update_title_frequency.hours
def execute(args)
group_titles = JSON.parse(SiteSetting.group_trust_level_titles || "{}")
User.find_each do |user|
# Überspringe Admins und Moderatoren, aktualisiere deren Titel nicht
next if user.admin? || user.moderator?
group_id = user.primary_group_id
next unless group_id
group = Group.find_by(id: group_id)
next unless group
group_key = group.name.downcase
tl = user.trust_level
titles = group_titles[group_key]
next unless titles.is_a?(Array)
next unless tl >= 1 && tl <= 4
new_title = titles[tl]
next unless new_title.present?
user.update_column(:title, new_title) if user.title != new_title
end
end
end
end
Datei: config/settings.yml
plugins:
add_title_based_on_trust_level_enabled:
default: false
client: true
group_trust_level_titles:
default: '{"designers": ["", "Junior Designer", "Designer", "Senior Designer", "Chief Designer"], "developers": ["", "Junior Developer", "Developer", "Senior Developer", "Tech Lead"]}'
type: string
client: true
multiline: true
update_title_frequency:
default: 24
type: integer
2. Wie ich getestet habe
Ich führe diese Logik derzeit manuell über die Rails-Konsole aus, um zu überprüfen, ob die Funktion funktioniert. Sie aktualisiert Benutzertitel in großen Mengen gemäß meinen Anforderungen.
3. Problem mit dem Plugin-Einstellungs-Eintrag
Auf der Seite /admin/plugins gibt es keinen „Einstellungen“-Button für dieses Plugin. Um die Konfiguration zu ändern, muss ich derzeit direkt /admin/plugins/add-title-based-on-trust-level/settings besuchen. Gibt es eine Möglichkeit, den Einstellungsbutton oder Link auf der Plugin-Seite anzuzeigen, um den Zugriff zu erleichtern?
4. Meine aktuellen Einstellungen
Dies ist meine aktuelle JSON-Konfiguration (ich werde auch einen Screenshot anhängen):
{
"designers": ["", "Junior Designer", "Designer", "Senior Designer", "Chief Designer"],
"developers": ["", "Junior Developer", "Developer", "Senior Developer", "Tech Lead"]
}
5. Fragen / Mögliche Verbesserungen
- Birgt dieser Ansatz (Durchlaufen jedes Benutzers und Aktualisieren seines Titels) Leistungsprobleme, wenn es viele Benutzer gibt? Gibt es eine bessere Vorgehensweise dafür?
- Gibt es Ratschläge zur Optimierung, entweder für den geplanten Job oder für die Admin-Einstellungs-UI?
- Gibt es etwas Unsicheres oder Problematisches an meiner Methode, worauf ich achten sollte?
Vielen Dank für Ihre großartige Arbeit und dieses nützliche Plugin!
Wenn Sie Vorschläge haben oder planen, die Konfiguration von Gruppen- und Vertrauensstufen-Titeln in Zukunft zu verbessern, würde ich mich freuen, Ihre Gedanken zu hören.

