Das Boss-Menü
Eine App für jeden, der ein Unternehmen leitet: Wer dort arbeitet, wer eingestellt wird, wer entlassen wird, wer befördert wird, was auf dem Konto liegt und wer dem Unternehmen Geld schuldet.
Nichts darin erfindet dein Framework neu. Einstellen, Entlassen und Ränge sind genuine Operationen des Frameworks, die über die Bridge angefordert und beim Empfang serverseitig erneut validiert werden — ESX, QBCore und QBox jeweils nach ihren eigenen Maßstäben.
Die App taucht auf dem Startbildschirm von jemandem, der nichts leitet, gar nicht erst auf. Sie erscheint von selbst beim nächsten Mal, wenn ein neuer Chef sein Telefon öffnet, und verschwindet auf demselben Weg wieder.
Wer die Leitung hat
Abschnitt betitelt „Wer die Leitung hat“Die meisten Server kennzeichnen dies bereits: ESX markiert einen Rang mit is_boss, QB markiert einen Job mit isboss. Falls deiner das tut, braucht diese Datei keine Anpassung.
Config.Apps.Boss.Bosses in shared/config/boss.lua ist für Setups gedacht, die das nicht tun — und für jene, bei denen Führung nicht nur aus einem Rang besteht, sondern aus einer Rangfolge, bei der jede Stufe etwas mehr darf als die darunter:
Bosses = { mechanic = 4, -- grade 4 and above, everything
police = { -- a ladder, where each rung adds to the ones below it [3] = { 'Hire', 'Promote' }, -- a Sergeant may hire and promote, and nothing else [4] = { 'Account', 'Invoice' }, -- a Lieutenant may also see the account and bill people [5] = true, -- a Captain may do everything left in Actions },}Die Stufen addieren sich auf, wodurch sich eine Rangfolge natürlich liest: Ein Rang kann alles, was der Rang darunter darf, plus das, was in seiner eigenen Zeile steht. Niemand muss die Befugnisliste für jeden Rang wiederholen, und niemand verliert durch eine Beförderung Rechte.
Ein Rang mit einer leeren Liste hat immer noch Leitungsfunktion: Er öffnet die App und sieht, wer im Unternehmen arbeitet — was der absolute Kern von Mitarbeiterführung ist.
Was überhaupt jemand tun darf
Abschnitt betitelt „Was überhaupt jemand tun darf“Config.Apps.Boss.Actions bildet die Obergrenze für die gesamte Stadt — kein Eintrag in Bosses kann Rechte gewähren, die hier deaktiviert sind. Es ist der schnellste Weg, ein Recht für alle Unternehmen gleichzeitig zu entziehen.
Actions = { Hire = true, Fire = true, Promote = true, Account = true, Deposit = true, Withdraw = true, Invoice = true },Ein deaktiviertes Recht wird weder auf dem Bildschirm gezeichnet noch serverseitig akzeptiert, genau in dieser Reihenfolge. Ein Button, der auf dem Bildschirm lediglich fehlt, ist noch nicht deaktiviert.
Die unumstößlichen Regeln des Interfaces
Abschnitt betitelt „Die unumstößlichen Regeln des Interfaces“- Einstellen erfordert physische Nähe. Die Liste enthält nur Personen im Umkreis von wenigen Metern, und dieselbe Distanz wird beim Absenden des Namens erneut geprüft; ein Name in der Liste ist also ein Name, der auch einen Augenblick später noch akzeptiert wird. Ein Menü, das jeden in der Stadt durch bloßes Erraten einer ID einstellen kann, wird genau dafür missbraucht werden.
- Niemand kann sich selbst oder Personen auf demselben bzw. höheren Rang verwalten. Beides wird im Interface klar erklärt, anstatt Buttons stumm ins Leere laufen zu lassen.
- Ein Rang wird aus der vom Server übermittelten Rangfolge ausgewählt, niemals manuell eingetippt.
- Identifikatoren verlassen niemals den Server. Jede Person in der Personalliste wird durch ein Ticket repräsentiert, das nur für die laufende Session gültig ist.
- Geldtransaktionen laufen unter einem Lock, pro Unternehmen, und werden zurückgerollt, falls der Gegenteil-Vorgang fehlschlägt.