Kürzlich in 2.9.0beta2 können Benutzer, die bereits ein Konto haben, auf Einladungslinks klicken. Aber ich habe Einladungslinks generiert, auf die ich klicken kann, und es wurde gesagt, dass ich mich selbst eingeladen habe, und weil ich TL2+ bin und auf 5 verschiedene Einladungslinks von mir geklickt habe, habe ich die Champion-Auszeichnung erhalten. Sie können unten einen Screenshot davon sehen. Diese befinden sich im Replit EDU-Forum und Sie können mein Profil hier einsehen.
Ich habe auch einen Einladungslink im Codecademy-Forum erstellt und es wird gesagt, dass ich mich dort auch selbst eingeladen habe, was Sie unten sehen können. Sehen Sie sich mein Profil hier an.
Erreichen Sie TL2+ (standardmäßig), erstellen Sie Einladungslinks, auf die Sie dann klicken. Es wird gesagt, dass Sie sich selbst auf Ihrem Profil eingeladen haben und dass Sie Ihre Einladung angenommen haben, wie oben gezeigt. Und wenn Sie genügend Einladungslinks haben, erhalten Sie die Auszeichnungen Campaigner und Champion.
Dieser Fehler wurde nun behoben. Nochmals vielen Dank an @not-ethan für die Meldung! Wenn Ihnen etwas am Einladungssystem auffällt, lassen Sie es uns bitte wissen. Wir arbeiten aktiv daran.
Aber nicht hier im Meta oder in einem anderen Forum, es wird nur angezeigt, dass Ethan deine Einladung angenommen hat, aber die Abzeichen werden nicht verliehen.
es gibt einen Fehler, bei dem man einen Einladungscode erstellen und ihn selbst einlösen kann. Dadurch kann man die Einladungs-Badges erhalten, was ärgerlich ist. Dies wurde von @not-ethan erwähnt und ein Pull-Request wurde erstellt, aber der Fehler ist immer noch aktiv. Meine Idee war, wenn jemand einen Einladungscode für das Web verwendet, aber diese Person angemeldet ist, dass der Code fehlschlägt!
Vielen Dank, dass Sie das noch einmal zur Sprache bringen, Urias. Wir versuchen derzeit, das Einladungssystem nicht zu sehr zu verändern, da es komplex ist und Änderungen unbeabsichtigte und ungeplante Folgen haben können.
Gibt es eine Möglichkeit, dieses Problem zu umgehen, indem wir ändern, wie die Auszeichnung verliehen wird? Z. B. wenn die Person, die die Einladung einlöst, bereits Mitglied ist, wird die Auszeichnung für den Kampagnenmacher nicht an die Person verliehen, die die Einladung erstellt hat?
Dies scheint mir ein Problem zu sein, das wahrscheinlich schon lange besteht und unbemerkt geblieben ist. Eine andere Antwort wäre, dies als “nichts tun, funktioniert wie vorgesehen” zu behandeln und es den Community-Moderatoren zu überlassen, sich damit zu befassen, wenn sie Bedenken haben, dass Personen diese Methode missbrauchen, um mehr Auszeichnungen zu erhalten.
Meine SQL-Abfrage muss wahrscheinlich überprüft werden , aber ich glaube, Sie könnten diese Zeile zur Badge-Abfrage hinzufügen, um zu verhindern, dass sie an Personen vergeben wird, die sich selbst eingeladen haben - AND i.invited_by_id <> u2.id
Also so etwas wie das hier:
SELECT u.id user_id, current_timestamp granted_at
FROM users u
WHERE u.id IN (
SELECT invited_by_id
FROM invites i
JOIN invited_users iu ON iu.invite_id = i.id
JOIN users u2 ON u2.id = iu.user_id
WHERE i.deleted_at IS NULL
AND i.invited_by_id <> u2.id
AND u2.active
AND u2.trust_level >= 0
AND u2.silenced_till IS NULL
GROUP BY invited_by_id
HAVING COUNT(*) >= 1
) AND u.active AND u.silenced_till IS NULL AND u.id > 0 AND
(:backfill OR u.id IN (:user_ids) )
Cool! Ich habe eine Weile nicht mehr mit dem Abzeichensystem gespielt, aber wenn ich jetzt nachsehe, sehe ich die einladungsbezogenen Abzeichen nicht in der Admin-Abzeichen-Benutzeroberfläche. Vielleicht sind das Systemabzeichen, die im Discourse-Kern bearbeitet werden müssen?