1
0
Fork 0
Webinterface zur Verwaltung von Accounts im Gridverbund https://mcp.4creative.net
 
 
 
 
Go to file
Anonymous Contributor 685853a9f9 Make daily cronjobs run at midnight 2023-09-15 19:20:06 +02:00
app Make daily cronjobs run at midnight 2023-09-15 19:20:06 +02:00
data Remove old temporary directory 2023-09-06 17:42:15 +02:00
lib/phpmailer Update PHPMailer 2023-08-23 18:16:36 +02:00
public Add better explanations for the identity system 2023-09-11 04:26:06 +02:00
scss Fix text overflow in minimized navbar 2023-09-06 16:07:15 +02:00
templates Fix icon url in presession template 2023-09-15 19:03:26 +02:00
.gitignore Add dep. management and Sass compilation with npm 2023-09-05 20:48:06 +02:00
README.md Add documentation 2023-09-15 19:19:45 +02:00
config.example.ini Fix documentation in example config 2023-09-11 06:06:33 +02:00
package-lock.json Add dep. management and Sass compilation with npm 2023-09-05 20:48:06 +02:00
package.json Add dep. management and Sass compilation with npm 2023-09-05 20:48:06 +02:00

README.md

MCP: OpenSim-Gridverwaltung

Das MCP ist ein PHP-Webinterface für Benutzer und Administratoren von OpenSimulator-Grids. Es ermöglicht Benutzern die Registrierung (auf Einladung) und Verwaltung des eigenen OpenSimulator-Accounts im Self-Service-Verfahren. Administratoren können Accounts und Regionen einfacher verwalten.

Installation

Voraussetzung ist, dass die Datenbankstruktur eines OpenSimulator-Grids bereits existiert. Das MCP muss vor der Nutzung mit den Zugangsdaten derselben Datenbank konfiguriert werden. Eigene Tabellen des MCP besitzen zur Vermeidung von Konflikten den Präfix mcp_.

Folgende PHP-Erweiterungen werden benötigt:

  1. php-curl
  2. php-mysql (PDO)
  3. php-xml
  4. php-xmlrpc

Für bessere Performance kann optional php-apcu installiert werden.

Die Installation läuft folgendermaßen ab:

  1. Gewünschtes Release als ZIP/TAR-Archiv oder per git clone herunterladen
  2. Verzeichnisse app, data, lib, public und templates in das Verzeichnis des Webservers entpacken
  3. Öffentliche Stammverzeichnis des Webservers (Apache: DocumentRoot, nginx: root) auf Pfad zum Verzeichnis public ändern
  4. Index des Webservers auf index.php ändern, falls erforderlich
  5. Beispielkonfiguration config.example.ini anpassen, in config.ini umbenennen und in das Verzeichnis der in Schritt 2 entpackten Verzeichnisse verschieben

Aktualisierung

Zur Aktualisierung müssen lediglich die Verzeichnisse app, lib, public und templates, sowie der Inhalt von data (außer iars) ersetzt werden.
Die Migration der Datenbankstruktur erfolgt automatisch. Möglicherweise erforderliche Änderungen an der Konfiguration sind den Release-Informationen zu entnehmen.

Entwickler

Die Abhängigkeiten des Frontends werden über npm verwaltet. Alle erforderlichen Pakete können nach dem Download des Repository über npm install heruntergeladen werden. In package.json ist zudem ein Buildprozess (Befehl: npm build) definiert, durch den die Sass-Stylesheets im Verzeichnis scss kompiliert und optimiert und zusammen mit Schriftarten und Skripts im öffentlichen Webverzeichnis abgelegt werden.

Das Backend besitzt kein Dependency Management. Die einzige Abhängigkeit, PHPMailer, wurde manuell in das Repository eingefügt. Der Autoloader sucht im Verzeichnis lib nach solchen externen Klassen.

Verarbeitung von Anfragen

Das Skript index.php wird bei allen Anfragen aufgerufen. Die angeforderte Route wird als GET-Parameter <Gruppe>=<Name> übermittelt. Gruppen (momentan api und page), zugehörige Seiten und die assoziierte RequestHandler-Subklasse sind in Mcp.php definiert.

Ist zu einer Anfrage eine Route definiert, wird der zugehörige RequestHandler erzeugt. Ist eine Middleware-Klasse für diesen definiert, ist die weitere Verarbeitung von dem Rückgabewert von Middleware::canAccess() abhängig.
Schließlich wird je nach Methode der Anfrage RequestHandler::get() bzw. RequestHandler::post() aufgerufen.