RolesPermissions Component — sgcHTML | eSeGeCe

RolesPermissions

TsgcHTMLComponent_RolesPermissions — eine Rollen-/Berechtigungsmatrix mit einem Kontrollkästchen pro Zelle, Kategoriegruppierung und Live-WebSocket-Aktualisierungen der Berechtigungen, in Delphi, C++ Builder und .NET.

TsgcHTMLComponent_RolesPermissions

Fügen Sie Rollen und Berechtigungen hinzu, setzen Sie die anfänglichen Berechtigungen, und lesen Sie dann die HTML-Eigenschaft. Jedes Umschalten eines Kontrollkästchens wird an den Server gesendet, der es autorisieren muss, bevor er es anwendet.

Komponentenklasse

TsgcHTMLComponent_RolesPermissions

Rendert

Bootstrap-5-Tabellenmatrix + Inline-Skript

Sprachen

Delphi, C++ Builder, .NET

Rollen hinzufügen, Berechtigungen hinzufügen, gewähren, rendern

Rufen Sie AddRole und AddPermission auf, um die Matrixachsen aufzubauen, SetGrant für die anfänglichen Häkchen, und lesen Sie dann HTML.

uses
  sgcHTML_Enums, sgcHTML_Component_RolesPermissions;

var
  oMatrix: TsgcHTMLComponent_RolesPermissions;
begin
  oMatrix := TsgcHTMLComponent_RolesPermissions.Create(nil);
  try
    oMatrix.MatrixID := 'acl';
    oMatrix.StickyHeader := True;

    oMatrix.AddRole('admin', 'Administrator').Color := hcDanger;
    oMatrix.AddRole('editor', 'Editor');
    oMatrix.AddRole('viewer', 'Viewer');

    oMatrix.AddPermission('users.edit', 'Edit users', 'Users');
    oMatrix.AddPermission('users.delete', 'Delete users', 'Users');
    oMatrix.AddPermission('billing.view', 'View invoices', 'Billing');

    oMatrix.SetGrant('admin', 'users.edit', True);
    oMatrix.SetGrant('admin', 'users.delete', True);
    oMatrix.SetGrant('editor', 'users.edit', True);

    WebModule.Response := oMatrix.HTML;   // matrix table + inline script
  finally
    oMatrix.Free;
  end;
end;

// Server-side handler for a checkbox toggle received over WebSockets.
// ALWAYS verify the acting user is authorized before applying the change:
oMatrix.ProcessGrantChanged('editor', 'users.delete', True);
// includes: sgcHTML_Enums.hpp, sgcHTML_Component_RolesPermissions.hpp

TsgcHTMLComponent_RolesPermissions *oMatrix = new TsgcHTMLComponent_RolesPermissions(NULL);
try
{
  oMatrix->MatrixID = "acl";
  oMatrix->StickyHeader = true;

  oMatrix->AddRole("admin", "Administrator")->Color = hcDanger;
  oMatrix->AddRole("editor", "Editor");
  oMatrix->AddRole("viewer", "Viewer");

  oMatrix->AddPermission("users.edit", "Edit users", "Users");
  oMatrix->AddPermission("users.delete", "Delete users", "Users");
  oMatrix->AddPermission("billing.view", "View invoices", "Billing");

  oMatrix->SetGrant("admin", "users.edit", true);
  oMatrix->SetGrant("admin", "users.delete", true);
  oMatrix->SetGrant("editor", "users.edit", true);

  String html = oMatrix->HTML;   // matrix table + inline script

  // Server-side handler for a checkbox toggle (verify authorization first):
  oMatrix->ProcessGrantChanged("editor", "users.delete", true);
}
__finally
{
  delete oMatrix;
}
using esegece.sgcWebSockets;

var matrix = new TsgcHTMLComponent_RolesPermissions();
matrix.MatrixID = "acl";
matrix.StickyHeader = true;

matrix.AddRole("admin", "Administrator").Color = TsgcHTMLColor.hcDanger;
matrix.AddRole("editor", "Editor");
matrix.AddRole("viewer", "Viewer");

matrix.AddPermission("users.edit", "Edit users", "Users");
matrix.AddPermission("users.delete", "Delete users", "Users");
matrix.AddPermission("billing.view", "View invoices", "Billing");

matrix.SetGrant("admin", "users.edit", true);
matrix.SetGrant("admin", "users.delete", true);
matrix.SetGrant("editor", "users.edit", true);

string html = matrix.HTML;   // matrix table + inline script

// Server-side handler for a checkbox toggle (verify authorization first):
matrix.ProcessGrantChanged("editor", "users.delete", true);

Wichtige Eigenschaften & Methoden

Die Member, die Sie am häufigsten verwenden.

Rollen & Berechtigungen

AddRole(aId, aName) und AddPermission(aId, aName, aCategory) bauen die Matrixachsen auf; jede Rolle erhält ein farbiges Abzeichen, jede Berechtigung optional eine Kategorie-Überschrift.

Berechtigungen

SetGrant(aRoleId, aPermissionId, aGranted) / GetGrant lesen und schreiben die angehakten Zellen, indiziert nach Rollen- + Berechtigungs-Id.

Dataset-Bindung

LoadRolesFromDataSet, LoadPermissionsFromDataSet und LoadGrantsFromDataSet befüllen die Matrix direkt aus einem TDataSet.

Client-Änderungen

Jedes Umschalten eines Kontrollkästchens sendet eine JSON-Nutzlast über den WebSocket-Kanal und löst das DOM-Ereignis sgcRolesPermissions:grantChanged aus.

Darstellung

ShowDescriptions, ShowCategories, Striped, Bordered, Compact und StickyHeader (mit MaxHeight) gestalten die Tabelle; ReadOnly deaktiviert jedes Kontrollkästchen.

Sicherheit

Diese Komponente rendert nur die Oberfläche. ProcessGrantChanged darf erst aufgerufen werden, nachdem der Host serverseitig geprüft hat, dass der handelnde Benutzer dieses Rollen-/Berechtigungspaar ändern darf.

Weiter entdecken

Online-HilfeVollständige API-Referenz und Verwendungshandbuch für diese Komponente.
Alle sgcHTML-KomponentenDurchsuchen Sie die vollständige Funktionsmatrix von über 80 Komponenten.
Kostenlose Testversion herunterladenDie 30-Tage-Testversion enthält die 60.HTML-Demoprojekte.
PreiseSingle-, Team- und Site-Lizenzen mit vollständigem Quellcode.

Bereit loszulegen?

Laden Sie die kostenlose Testversion herunter und fügen Sie Ihrem Delphi-, C++-Builder- oder .NET-Adminbereich eine Rollen-/Berechtigungsmatrix hinzu.