wp-m365-login/docs/wordpress-org-einreichung.md
friloo 1202283eda
Add Entra group restriction, button-only mode and detailed README
Groups: a Graph-backed picker on the Security tab (search by name or
paste object IDs) stores allowed group IDs. During sign-in membership is
read from the ID token's groups claim when present, otherwise verified
through Microsoft Graph checkMemberGroups (transitive). Verification
failures refuse the sign-in.

Button-only mode: hides the password form and the lost-password link
and rejects password sign-ins on wp-login.php via the authenticate
filter. A generated, rate-limited fallback key re-enables the form for
30 minutes per browser; M365_LOGIN_DISABLE_BUTTON_ONLY switches the
mode off from wp-config.php.

Also: new German-language README with sequence diagram, settings
reference, troubleshooting and hook examples; readme.txt external
services section now covers Microsoft Graph; translations updated.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JJxAHYdMfKPoN4koRc4Ci2
2026-09-22 14:30:53 +00:00

3.8 KiB
Raw Blame History

Checkliste: Einreichung im WordPress-Plugin-Verzeichnis

Das Plugin ist so aufgebaut, dass es die Richtlinien des Plugin-Verzeichnisses erfüllt. Vor der Einreichung unter https://wordpress.org/plugins/developers/add/ bitte die folgenden Punkte durchgehen.

1. Vor dem Upload prüfen

  • Tested up to: in readme.txt auf die aktuelle WordPress-Version setzen (das Review-Team lehnt veraltete Werte ab).
  • Stable tag: in readme.txt und Version: in m365-login.php sowie M365_LOGIN_VERSION sind identisch.
  • Contributors: in readme.txt enthält deinen WordPress.org-Benutzernamen (aktuell friloo).
  • Übersetzungsdateien aktualisiert: wp i18n make-pot . languages/m365-login.pot (WP-CLI) oder python3 bin/make-pot.py, danach python3 bin/compile-mo.py.
  • bash bin/build-zip.sh ausführen und build/m365-login.zip hochladen (Ordner im ZIP heißt m365-login, nicht wp-m365-login).
  • Lokal den Plugin Check laufen lassen (Plugin „Plugin Check (PCP)“ installieren oder auf das CI-Ergebnis achten) er muss ohne Fehler durchlaufen.

2. Namens- und Marken-Regeln

  • Slugs dürfen nicht mit wp- oder mit Markennamen wie microsoft- beginnen; deshalb heißt der Slug m365-login und der Plugin-Name „M365 Login“. Sollte das Review-Team dennoch einen anderen Slug zuweisen (z. B. wegen Trademark-Bedenken bei „M365“), müssen Text Domain, Ordnername und readme.txt angepasst werden Suche nach m365-login im Repo.
  • Der Name darf nicht suggerieren, dass das Plugin von Microsoft stammt. Beschreibungstexte verwenden deshalb Formulierungen wie „sign in with Microsoft“, nicht „official Microsoft plugin“.
  • Das Microsoft-Logo ist eingebettet, damit der Button so aussieht, wie Nutzer es erwarten. Microsoft erlaubt die Verwendung des Logos für „Sign in with Microsoft“-Buttons gemäß den Branding-Richtlinien. Ein Reviewer könnte trotzdem nachfragen der Hinweis auf diese Richtlinie reicht in der Regel.

3. Was bereits erfüllt ist

Anforderung Umsetzung
GPL-kompatible Lizenz LICENSE (GPL-2.0), Header in m365-login.php, readme.txt
readme.txt im WP-Format inkl. Pflichtabschnitt External services (Microsoft-Login- und Graph-Endpunkte, übertragene Daten, Links zu Nutzungsbedingungen/Datenschutz)
Keine externen Assets/CDNs CSS/JS liegen im Plugin; einzige Netzwerkverbindungen gehen zu login.microsoftonline.com und (optional, Gruppenprüfung) graph.microsoft.com
Sanitizing / Escaping / Nonces Settings API mit sanitize_callback, esc_* bei jeder Ausgabe, check_ajax_referer + current_user_can
Eindeutiges Präfix m365_login_ / M365_Login_ für alle globalen Bezeichner
Kein Tracking, keine Telefon-nach-Hause-Funktion
Saubere Deinstallation uninstall.php entfernt Option, Transients und User-Meta (auch Multisite)
Keine minifizierten Dateien ohne Quelle Alle Assets liegen unminifiziert vor
Requires PHP / Requires at least 7.4 / 6.0
Übersetzbar Text Domain m365-login, languages/m365-login.pot, deutsche Übersetzung

4. Nach der Freigabe

  1. SVN-Zugang aus der Freigabe-Mail nutzen: svn co https://plugins.svn.wordpress.org/m365-login.
  2. Inhalt von build/m365-login/ nach trunk/ kopieren, assets/ aus .wordpress-org/ befüllen (Icon, Banner, Screenshots).
  3. svn cp trunk tags/1.0.0 und committen.
  4. Screenshots erstellen (siehe == Screenshots == in readme.txt) und als screenshot-1.png … in assets/ ablegen.
  5. Optional: GitHub Action 10up/action-wordpress-plugin-deploy einrichten, um Releases automatisch nach SVN zu spiegeln.