Skip to content

[CODINGSTANDARD] Direkte Schreibzugriffe auf Moodle-Core-Rollentabellen entfernen #550

Description

@ralferlebach

Problem

Installations- beziehungsweise Upgradecode schreibt als Fallback direkt in Core-Tabellen wie role_capabilities. Das umgeht Moodle-APIs und kann Cache-, Audit- und Kompatibilitätsprobleme verursachen.

Ursache

Capability-Zuweisungen werden zu einem Zeitpunkt ausgeführt, an dem die eigene Capabilityregistrierung als unsicher betrachtet wird; dies wird durch direkte SQL-Schreibzugriffe kompensiert.

Lösung

  • Rollen ausschließlich über create_role, set_role_contextlevels und assign_capability verwalten.
  • Zuweisung in einen geeigneten Installations-/Upgrade-Schritt verschieben.
  • Keine fest codierte modifierid verwenden.
  • Capability-Cache korrekt aktualisieren.

Manuelles Testverfahren

Testschritte

  1. Neuinstallation und Upgrade aus mehreren Vorversionen durchführen.
  2. Rollen, Capabilities und Caches prüfen.

Aktuelles Ist-Verhalten

Installations- beziehungsweise Upgradecode schreibt als Fallback direkt in Core-Tabellen wie role_capabilities. Das umgeht Moodle-APIs und kann Cache-, Audit- und Kompatibilitätsprobleme verursachen.

Erwartetes Soll-Verhalten

Keine direkte Mutation von Core-Rollentabellen.

Automatisierte Tests

  • Install-/Upgrade-PHPUnit-Tests.
  • Statischer Scan gegen Schreibzugriffe auf Core-Rollentabellen.

Akzeptanzkriterien

  • Keine direkte Mutation von Core-Rollentabellen.
  • Rollen sind nach Installation und Upgrade korrekt.
  • Caches und Events bleiben konsistent.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions