RolesPermissions Component — sgcHTML | eSeGeCe

RolesPermissions

TsgcHTMLComponent_RolesPermissions — una matrice ruoli/permessi con una checkbox per cella, raggruppamento per categoria e aggiornamenti live dei permessi via WebSocket, in Delphi, C++ Builder e .NET.

TsgcHTMLComponent_RolesPermissions

Aggiungi ruoli e permessi, imposta i permessi iniziali, quindi leggi la proprietà HTML. Ogni modifica della checkbox viene inviata al server, che deve autorizzarla prima di applicarla.

Classe del componente

TsgcHTMLComponent_RolesPermissions

Renderizza

Bootstrap 5 table matrix + inline script

Famiglia

Autenticazione

Linguaggi

Delphi, C++ Builder, .NET

Aggiungi ruoli, aggiungi permessi, concedi, renderizzalo

Chiama AddRole e AddPermission per costruire gli assi della matrice, SetGrant per le spunte iniziali, quindi leggi 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);

Proprietà e metodi principali

I membri che utilizzerai più spesso.

Ruoli e permessi

AddRole(aId, aName) e AddPermission(aId, aName, aCategory) costruiscono gli assi della matrice; ogni ruolo riceve un badge colorato, ogni permesso un’intestazione di categoria opzionale.

Permessi concessi

SetGrant(aRoleId, aPermissionId, aGranted) / GetGrant leggono e scrivono le celle spuntate, indicizzate per id di ruolo + permesso.

Binding ai dataset

LoadRolesFromDataSet, LoadPermissionsFromDataSet e LoadGrantsFromDataSet popolano la matrice direttamente da un TDataSet.

Modifiche dal client

Ogni modifica della checkbox invia un payload JSON sul canale WebSocket e attiva l’evento DOM sgcRolesPermissions:grantChanged.

Presentazione

ShowDescriptions, ShowCategories, Striped, Bordered, Compact e StickyHeader (con MaxHeight) definiscono lo stile della tabella; ReadOnly disabilita tutte le checkbox.

Sicurezza

Questo componente renderizza solo l’interfaccia utente. ProcessGrantChanged deve essere chiamato solo dopo che l’host ha verificato, lato server, che l’utente che esegue l’azione sia autorizzato a modificare quella coppia ruolo/permesso.

Continua a esplorare

Guida in lineaRiferimento API completo e guida all’uso per questo componente.
Tutti i componenti sgcHTMLEsplora la matrice completa delle funzionalità di oltre 80 componenti.
Scarica la Prova GratuitaLa prova di 30 giorni include i progetti demo 60.HTML.
PrezziLicenze Single, Team e Site con codice sorgente completo.

Pronto a Iniziare?

Scarica la versione di prova gratuita e aggiungi una matrice ruoli/permessi al tuo pannello di amministrazione in Delphi, C++ Builder o .NET.