Composant RolesPermissions — sgcHTML | eSeGeCe

RolesPermissions

TsgcHTMLComponent_RolesPermissions — une matrice de rôles / permissions avec une case à cocher par cellule, un regroupement par catégorie et des mises à jour d'octroi WebSocket en direct, en Delphi, C++ Builder et .NET.

TsgcHTMLComponent_RolesPermissions

Ajoutez des rôles et des permissions, définissez les octrois initiaux, puis lisez la propriété HTML. Chaque bascule de case à cocher est envoyée au serveur, qui doit l'autoriser avant de l'appliquer.

Classe du composant

TsgcHTMLComponent_RolesPermissions

Produit

Matrice sous forme de tableau Bootstrap 5 + script en ligne

Langages

Delphi, C++ Builder, .NET

Ajoutez des rôles, ajoutez des permissions, octroyez, affichez-le

Appelez AddRole et AddPermission pour construire les axes de la matrice, SetGrant pour les cases initiales, puis lisez 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);

Propriétés & méthodes clés

Les membres que vous utilisez le plus souvent.

Rôles & permissions

AddRole(aId, aName) et AddPermission(aId, aName, aCategory) construisent les axes de la matrice ; chaque rôle reçoit un badge coloré, chaque permission un en-tête de catégorie optionnel.

Octrois

SetGrant(aRoleId, aPermissionId, aGranted) / GetGrant lisent et écrivent les cellules cochées, indexées par rôle + identifiant de permission.

Liaison de jeu de données

LoadRolesFromDataSet, LoadPermissionsFromDataSet et LoadGrantsFromDataSet alimentent la matrice directement depuis un TDataSet.

Changements côté client

Chaque bascule de case à cocher envoie une charge JSON sur le canal WebSocket et déclenche l'événement DOM sgcRolesPermissions:grantChanged.

Présentation

ShowDescriptions, ShowCategories, Striped, Bordered, Compact et StickyHeader (avec MaxHeight) stylent le tableau ; ReadOnly désactive toutes les cases.

Sécurité

Ce composant ne rend que l'interface. ProcessGrantChanged ne doit être appelé qu'après que l'hôte a vérifié, côté serveur, que l'utilisateur agissant est autorisé à modifier cette paire rôle/permission.

Continuez l'exploration

Aide en ligneRéférence API complète et guide d’utilisation pour ce composant.
Tous les composants sgcHTMLParcourez la matrice complète des fonctionnalités de plus de 80 composants.
Télécharger la version d'essai gratuiteLa version d'essai de 30 jours fournit les projets de démonstration 60.HTML.
TarifsLicences Single, Team et Site avec code source complet.

Prêt à démarrer ?

Téléchargez la version d'essai gratuite et ajoutez une matrice de rôles/permissions à votre panneau d'administration Delphi, C++ Builder ou .NET.