Das Zuweisen, Anpassen und Überprüfen von Berechtigungen ist eine zentrale Aufgabe in der Matrix42-Administration. Der Standard-Wizard „Objekte berechtigen“ bietet zwar eine umfassende Liste aller Configuration Items, doch die rein alphabetische Sortierung erschwert eine schnelle und gezielte Analyse. Kritische Berechtigungen wie Lösch- oder Schreibrechte können in der langen Liste untergehen, was die Administration unnötig erschwert.
In diesem Quick Win zeigen wir Ihnen, wie Sie diesen Prozess entscheidend verbessern können. Mit einer einfachen Anpassung im Layout Designer sorgen Sie dafür, dass die Berechtigungen nach ihrer Relevanz sortiert werden – die wichtigsten und kritischsten Rechte stehen damit immer ganz oben.
Die Herausforderung: Ineffiziente Analyse durch alphabetische Sortierung
In Matrix42 sind Berechtigungen an Benutzerrollen gekoppelt. Wenn eine administrierende Person die Rechte einer bestimmten Rolle – beispielsweise der „Einkaufsleitung“ – einsehen oder ändern möchte, navigiert sie über Administration → Sicherheit → Benutzerrollen
zur entsprechenden Rolle und öffnet die Aktion „Objekte berechtigen“.
Das Problem wird hier schnell deutlich: Die Ansicht listet alle verfügbaren Configuration Items alphabetisch auf ⚠️! Um herauszufinden, für welche Objekte tatsächlich Lese-, Schreib-, Erstell- oder Löschrechte vergeben wurden, muss die gesamte Liste (oder alternativ ein separater Bericht) mühsam durchsucht werden. Eine effiziente Analyse oder Anpassung ist so kaum möglich.
Die Lösung: Schritt-für-Schritt zur relevanten Ansicht
Um die Ansicht aussagekräftiger zu gestalten, passen wir den Wizard so an, dass Einträge mit den höchsten Berechtigungen (z. B. Löschen) ganz oben erscheinen. Hierfür nutzen wir den integrierten Layout Designer und eine kleines JavaScript-Snippet.
- Layout Designer für den Wizard öffnen
Navigieren Sie zur gewünschten Benutzerrolle und öffnen Sie den „Objekte berechtigen“-Wizard. Klicken Sie oben rechts auf das Drei-Punkte-Menü und wählen Sie die Aktion „Layout ändern“ aus. Matrix42 öffnet daraufhin den entsprechenden Dialog direkt im Layout Designer. - Datenquelle der Listenansicht anpassen
Im Layout Designer sehen Sie die Struktur des Wizards. Uns interessiert die Listenansicht, in der die Berechtigungen aufgelistet werden.- Klicken Sie auf das Steuerelement, das die Liste der Einträge („Entities“) darstellt.
- Wählen Sie die Variable
return.Entities
für die Positionen der Liste aus. - Wechseln Sie im Eigenschaftsfenster in den „Erweiterten Modus“.
- Hier können wir nun eine benutzerdefinierte Sortierlogik implementieren.
- Logik erstellen: „Permission Score“ und Sortierfunktion
Das Ziel ist, jede Berechtigungsstufe mit einem numerischen Wert zu gewichten, um eine Rangfolge zu erstellen. Löschrechte sind kritischer als Leserechte und sollen daher einen höheren Wert erhalten.
Dazu implementieren wir zwei kleine JavaScript-Funktionen:- Funktion 1 berechnet einen „Permission Score“: Sie prüft, welche Rechte (
delete
,create
,write
,read
) für ein Objekt vergeben sind und summiert die entsprechenden, von uns definierten Werte (z. B. Delete = 7, Create = 4 etc.). - Funktion 2 sortiert die Liste: Sie nutzt den berechneten Score, um die Einträge absteigend anzuordnen, sodass der Eintrag mit dem höchsten Wert ganz oben steht.
- Funktion 1 berechnet einen „Permission Score“: Sie prüft, welche Rechte (
- Änderungen publizieren und das Ergebnis prüfen
Nachdem Sie die JavaScript-Logik eingefügt haben, speichern und publizieren Sie den geänderten Wizard. Wenn Sie nun den „Objekte berechtigen“-Dialog für eine Benutzerrolle erneut öffnen, greift die neue Logik sofort. Die Liste ist nicht mehr alphabetisch, sondern nach Relevanz sortiert.
/**
* Calculates a numeric score for an entry based on its permissions.
* Weights: FullAccess: 16, DeleteAccess: 7, CreateAccess: 4, WriteAccess: 2, ReadAccess: 1.
* @param {object} entry - The entry to score.
* @returns {number} - The calculated 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;
}
/**
* Sorts a list of entries in descending order based on a calculated permission score.
* @param {object[]} entries - The array of entries to sort.
* @returns {object[]} A new array with the entries sorted.
*/
function sortEntriesByPermissions(entries) {
const sortedEntries = [...entries];
sortedEntries.sort((a, b) => {
const scoreA = calculatePermissionScore(a);
const scoreB = calculatePermissionScore(b);
return scoreB - scoreA; // Sort descending
});
return sortedEntries;
}
if (!$value) {
return [];
}
return sortEntriesByPermissions($value);
Business-Nutzen: Der Mehrwert in der Praxis
Diese kleine Anpassung hat einen direkten und messbaren Mehrwert für die tägliche Arbeit mit Matrix42:
- Effizientere Administration: Berechtigungen können deutlich schneller eingesehen, verändert oder entzogen werden, da die relevanten Einträge sofort sichtbar sind und nicht erst gesucht werden müssen.
- Erhöhte Transparenz & Sicherheit: Kritische Berechtigungen wie Lösch- oder Vollzugriffe werden unmittelbar am Anfang der Liste angezeigt. Dies reduziert das Risiko, dass potenziell risikoreiche Rechte übersehen werden.
- Vereinfachte Audits: Die regelmäßige Überprüfung von Benutzerrollen und ihren zugeordneten Rechten wird erheblich erleichtert. Der Fokus kann direkt auf die wichtigsten Berechtigungen gelegt werden, um Compliance-Prüfungen schneller durchzuführen.
Die Anpassung des „Objekte berechtigen“-Wizards ist ein perfektes Beispiel für einen Quick Win in Matrix42: Mit wenig Aufwand wird eine große Wirkung auf Effizienz und Transparenz im Berechtigungsmanagement erzielt. Anstatt sich durch alphabetische Listen zu kämpfen, erhält die Administration eine klare, nach Relevanz geordnete Übersicht, die hilft, fundierte und sichere Entscheidungen zu treffen.