Zum Inhalt springen

Wikipedia Diskussion:Lua/Modul/AccountUtl

Seiteninhalte werden in anderen Sprachen nicht unterstützt.
aus AufEinWort, der freien Forschung
Letzter Kommentar: vor 1 Monat von Quīlubet in Abschnitt Anregung zu Funktion account

Erörterung

Vorlagenprogrammierung Diskussionen Lua Unterseiten
Modul Deutsch English

Modul: Dokumentation

isTemp()

In WMF-Wikis bezeichnet nach aktueller Konfiguration jeder Name, der mit ~2 anfängt, ein temporäres Benutzerkonto. --Count Count (Diskussion) 16:21, 13. Apr. 2026 (CEST)Beantworten

Naja, die Funktion prüft ja, ob die Zeichenkette eine Kontobezeichnung sein kann, die vom Wiki-SUL für ein TK zugeteilt wurde.
  • Die Feststellung würde bedeuten, dass es bei versuchter Registrierung eines neuen Kontos beginnend mit der Zeichenkette ~2 zu einer Ablehnung als ungültig käme.
  • Müsste jemand mal mit rumspielen. Keine Nerven dazu.
  • Wenn es kein Konto ~2345-blabla geben kann, dann könnte ein solches Konto nicht auf VM gemeldet werden, kann keine Beiträge haben. Wäre Fake.
  • Es könnte zwar im BNR eine solche Benutzerseite geben, aber kein Konto dazu, und wäre damit ein Verstoß gegen die Konvention über Seitennamen im BNR.
Mit IP gibt es sowas Ähnliches:
  • 001.002.003.004 wäre eine gültige IPv4.
  • Aber das Wiki-System würde 1.2.3.4 verwenden.
  • Es kann (konnte) also keine Beiträge dazu geben, und keine BNR-Seite.
  • Umseitige isIP() prüft das.
Was mich auf die Idee zu einer weiteren Funktion bringt, bzw. Verschärfung von isUser() und isValid():
  • Kontobezeichnungen, die es nicht geben kann. Kein gültiger Anmeldename, kein IP-Format, kein TK.
VG --PerfektesChaos 20:51, 13. Apr. 2026 (CEST)Beantworten

Anregung zu Funktion account

Folgendes gilt es zu überprüfen und gegebenenfalls zu berichtigen.

In AccountUtl.scope() wird der Name zunächst mit signer() normalisiert und in s gespeichert. Danach untersucht die Funktion jedoch mehrfach den ursprünglichen Parameter account:

local s = AccountUtl.signer( account )

...

local s1 = account:sub( 1, 1 )

Folgen:

Wird kein Parameter übergeben und der Name soll aus der aktuellen Benutzerseite stammen, kann account:sub(...) einen Lua-Fehler auslösen, weil account nicht vorhanden ist.

Ein durch signer() bereinigter oder dekodierter Name wird bei der anschließenden Einordnung nicht verwendet.

Die Ergebnisse können dadurch vom bereits normalisierten Namen abweichen.

Sachlich müsste dort wahrscheinlich s statt account verwendet werden.

Folgend der korrigierte Block zum Test:

AccountUtl.scope = function ( account )

   -- Identify the type of a presumed account name
   local s = AccountUtl.signer( account )
   local r
   if s then
       local s1 = s:sub( 1, 1 )
       r = "R"
       if s1 == "~" then
           if This.isTemp( s ) then
               r = "T"
           end
       elseif s1:find( "[1-9]" ) then
           if This.isIP( s ) then
               r = "I"
           elseif This.noIP( s ) then
               r = false
           end
       end
   end
   return r or false


end --Quīlubet (Diskussion) 07:24, 8. Sep. 2026 (CEST)Beantworten

@Quīlubet: Danke für den Hinweis. Völlig berechtigt.
Auf meiner Festplatte habe ich dieses und Weiteres bereits eingepflegt.
  • Auch, damit ich alle meine Wahlversprechen einhalte.
  • Mit einigen Stunden Abstand muss ich mich selbst erstmal reviewen.
  • Danach käme die Erprobung des neuen Codes.
  • Bis morgen müsste das hier gefixt sein.
Zum Hintergrund:
  • Die erste Fassung aus dem April war noch sehr simpel gestrickt.
  • Im August, durch Parameter der Vorlage:Benutzer, habe ich den Kontobezeichner „überall“ zur Reinigung durch signer() geschickt, weil sich einige Kalamitäten wie URL- und HTML-Encoding oder unsichtbare bidi-Steuerzeichen auftaten.
  • Das war noch nicht mit letzter Konsequenz umgesetzt gewesen.
Mal neugierig gefragt: Wie kannst du derartige Tücken finden?
VG --PerfektesChaos 13:14, 8. Sep. 2026 (CEST)Beantworten
War nicht ganz so arg, wie es meine erste Textsuche suggeriert hatte.
Danke nochmal --PerfektesChaos 21:35, 8. Sep. 2026 (CEST)Beantworten
Arg war der Fehler gewiß nicht.
Ich bin relativ neu zu Wikipedia und habe die Eigenheit sozusagen per Zufall oder intuitiv auf den Punkt zu stoßen, bei dem es hakt. Ansonsten arbeite ich mich in die Funktionsweise von MediaWIki-Wikipedia ein. Ich habe schon viele Fehler aufgespürt, doch jetzt mit zur Genüge erlangter Kenntnis habe ich begonnen, diese zumindest "anzumerken"
Herzlichst, Klaus --Quīlubet (Diskussion) 13:19, 16. Sep. 2026 (CEST)Beantworten