RolesPermissions-component — sgcHTML | eSeGeCe

RolesPermissions

TsgcHTMLComponent_RolesPermissions — een rol-/rechtenmatrix met een selectievakje per cel, categoriegroepering en live WebSocket-updates voor rechten, in Delphi, C++ Builder en .NET.

TsgcHTMLComponent_RolesPermissions

Voeg rollen en rechten toe, stel de initiële toekenningen in en lees dan de HTML-eigenschap. Elke selectievakjewissel wordt naar de server gestuurd, die het eerst moet autoriseren voordat het wordt toegepast.

Componentklasse

TsgcHTMLComponent_RolesPermissions

Rendert

Bootstrap 5-tabelmatrix + inline script

Familie

Authenticatie

Talen

Delphi, C++ Builder, .NET

Voeg rollen toe, voeg rechten toe, ken toe, render het

Roep AddRole en AddPermission aan om de matrixassen op te bouwen, gebruik SetGrant voor de initiële vinkjes en lees dan 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);

Belangrijkste eigenschappen en methoden

De members die je het vaakst gebruikt.

Rollen en rechten

AddRole(aId, aName) en AddPermission(aId, aName, aCategory) bouwen de matrixassen op; elke rol krijgt een gekleurde badge, elk recht een optionele categoriekop.

Toekenningen

SetGrant(aRoleId, aPermissionId, aGranted) / GetGrant lezen en schrijven de aangevinkte cellen, gesleuteld op rol- + rechten-id.

Datasetbinding

LoadRolesFromDataSet, LoadPermissionsFromDataSet en LoadGrantsFromDataSet vullen de matrix rechtstreeks vanuit een TDataSet.

Clientwijzigingen

Elke selectievakjewissel stuurt een JSON-payload over het WebSocket-kanaal en activeert het DOM-event sgcRolesPermissions:grantChanged.

Weergave

ShowDescriptions, ShowCategories, Striped, Bordered, Compact en StickyHeader (met MaxHeight) stileren de tabel; ReadOnly schakelt elk selectievakje uit.

Beveiliging

Dit component rendert alleen de UI. ProcessGrantChanged mag pas worden aangeroepen nadat de host server-side heeft geverifieerd dat de handelende gebruiker dat rol-/rechtenpaar mag wijzigen.

Blijf ontdekken

Online helpVolledige API-referentie en gebruikshandleiding voor dit onderdeel.
Alle sgcHTML-componentenBlader door de volledige functiematrix van 80+ componenten.
Download gratis proefversieDe proefversie van 30 dagen bevat de 60.HTML-demoprojecten.
PrijzenSingle-, Team- en Site-licenties met volledige broncode.

Klaar om te beginnen?

Download de gratis proefversie en voeg een rol-/rechtenmatrix toe aan je Delphi-, C++ Builder- of .NET-beheerpaneel.