Das Zuweisen und Überprüfen von Berechtigungen ist ein zentraler Teil der Matrix42-Administration. Der Standard-Wizard „Objekte berechtigen” listet alle Configuration Items alphabetisch auf. Kritische Berechtigungen wie Lösch- oder Schreibrechte gehen dabei schnell unter.
Dieser Quick Win zeigt, wie wir den Wizard mit einer einfachen Anpassung verbessern: Ein kurzes JavaScript-Snippet sortiert Berechtigungen nach Kritikalität – die wichtigsten Rechte erscheinen dann immer oben.
Die Herausforderung: Alphabetische Sortierung erschwert die Analyse
In Matrix42 sind Berechtigungen an Benutzerrollen gekoppelt. Um die Rechte einer Rolle einzusehen oder zu ändern, führt der Weg über:
Administration → Sicherheit → Benutzerrollen
Dort wird die entsprechende Rolle geöffnet und die Aktion „Objekte berechtigen” ausgewählt.
Das Problem: Die Ansicht listet alle Configuration Items alphabetisch auf. Um herauszufinden, für welche Objekte Lese-, Schreib-, Erstell- oder Löschrechte vergeben wurden, muss die gesamte Liste durchsucht werden. Eine schnelle Analyse ist so nicht möglich.
Die Lösung: Sortierung nach Berechtigungsstufe
Wir passen den Wizard so an, dass Einträge mit den höchsten Berechtigungen (z. B. Löschen) ganz oben erscheinen. Dafür nutzen wir den Layout Designer und ein JavaScript-Snippet.
1. Layout Designer öffnen
- Zur gewünschten Benutzerrolle navigieren
- Den „Objekte berechtigen”-Wizard öffnen
- Im Drei-Punkte-Menü (oben rechts) „Layout ändern” wählen
Matrix42 öffnet den Wizard im Layout Designer.
2. Datenquelle der Listenansicht anpassen
Im Layout Designer ist die Struktur des Wizards sichtbar:
- Das Steuerelement auswählen, das die Liste der Einträge („Entities”) darstellt
- Die Variable
return.Entitiesfür die Positionen wählen - Im Eigenschaftsfenster in den „Erweiterten Modus” wechseln
Hier implementieren wir die Sortierlogik.
3. JavaScript: Permission Score und Sortierfunktion
Das Ziel: Jede Berechtigungsstufe erhält einen numerischen Wert. Löschrechte sind kritischer als Leserechte und bekommen einen höheren Wert.
Zwei JavaScript-Funktionen werden benötigt:
- Funktion 1 berechnet einen „Permission Score”: Sie prüft, welche Rechte (
delete,create,write,read) vergeben sind und summiert die Werte. - Funktion 2 sortiert die Liste basierend auf dem Score (absteigend).
/**
* Berechnet einen numerischen Score basierend auf den Berechtigungen.
* Gewichtung: FullAccess: 16, DeleteAccess: 7, CreateAccess: 4,
* WriteAccess: 2, ReadAccess: 1.
* @param {object} entry - Der zu bewertende Eintrag.
* @returns {number} - Der berechnete Permission Score.
*/
function calculatePermissionScore(entry) {
const p = entry.Permission;
if (!p) {
return 0;
}
if (p.FullAccess) {
return 16;
}
let score = 0;
if (p.DeleteAccess) score += 7;
if (p.CreateAccess) score += 4;
if (p.WriteAccess) score += 2;
if (p.ReadAccess) score += 1;
return score;
}
/**
* Sortiert eine Liste von Einträgen absteigend nach Permission Score.
* @param {object[]} entries - Das Array der zu sortierenden Einträge.
* @returns {object[]} Ein neues Array mit den sortierten Einträgen.
*/
function sortEntriesByPermissions(entries) {
const sortedEntries = [...entries];
sortedEntries.sort((a, b) => {
const scoreA = calculatePermissionScore(a);
const scoreB = calculatePermissionScore(b);
return scoreB - scoreA; // Absteigend sortieren
});
return sortedEntries;
}
if (!$value) {
return [];
}
return sortEntriesByPermissions($value);
4. Änderungen publizieren
Nach dem Einfügen der Logik den Wizard speichern und (ggf.) publizieren. Beim nächsten Öffnen des „Objekte berechtigen”-Dialogs ist die Liste nach Relevanz sortiert.
Praktischer Nutzen
Diese Anpassung bringt direkten Mehrwert für die tägliche Administration:
| Aspekt | Verbesserung |
|---|---|
| Schnellere Administration | Berechtigungen werden schneller gefunden – kein Scrollen durch lange Listen. |
| Bessere Übersicht | Kritische Berechtigungen (Löschen, Vollzugriff) erscheinen sofort oben. |
| Einfachere Audits | Bei Compliance-Prüfungen liegt der Fokus direkt auf den wichtigsten Berechtigungen. |
Zusammenfassung
Mit wenigen Zeilen JavaScript wird der „Objekte berechtigen”-Wizard deutlich übersichtlicher. Statt alphabetischer Listen zeigt die Ansicht Berechtigungen nach Kritikalität sortiert – ein kleiner Eingriff mit großer Wirkung.
Häufig gestellte Fragen
Funktioniert die Anpassung auch nach Matrix42-Updates?
Ja, die Änderung wird im Layout gespeichert und bleibt nach Updates erhalten. Bei größeren Versionssprüngen empfiehlt sich eine kurze Überprüfung.
Wie werden die Berechtigungsstufen gewichtet?
Die Gewichtung im Code: FullAccess = 16, DeleteAccess = 7, CreateAccess = 4, WriteAccess = 2, ReadAccess = 1. Die Werte werden addiert, sodass kombinierte Berechtigungen höher ranken.
Kann ich die Gewichtung anpassen?
Ja, die Zahlenwerte in der Funktion calculatePermissionScore können beliebig angepasst werden, um andere Priorisierungen abzubilden.
Wirkt sich die Sortierung auf die Performance aus?
Nein, die Sortierung erfolgt clientseitig beim Öffnen des Wizards und hat keine messbaren Auswirkungen auf die Systemperformance.
Wo finde ich den Objekte berechtigen-Wizard?
Der Pfad lautet: Administration → Sicherheit → Benutzerrollen → [Rolle auswählen] → Aktion „Objekte berechtigen”.