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 — 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.
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.
TsgcHTMLComponent_RolesPermissions
Matrice sous forme de tableau Bootstrap 5 + script en ligne
Delphi, C++ Builder, .NET
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);
Les membres que vous utilisez le plus souvent.
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.
SetGrant(aRoleId, aPermissionId, aGranted) / GetGrant lisent et écrivent les cellules cochées, indexées par rôle + identifiant de permission.
LoadRolesFromDataSet, LoadPermissionsFromDataSet et LoadGrantsFromDataSet alimentent la matrice directement depuis un TDataSet.
Chaque bascule de case à cocher envoie une charge JSON sur le canal WebSocket et déclenche l'événement DOM sgcRolesPermissions:grantChanged.
ShowDescriptions, ShowCategories, Striped, Bordered, Compact et StickyHeader (avec MaxHeight) stylent le tableau ; ReadOnly désactive toutes les cases.
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.
| Aide en ligneRéférence API complète et guide d’utilisation pour ce composant. | Ouvrir | |
| Tous les composants sgcHTMLParcourez la matrice complète des fonctionnalités de plus de 80 composants. | Ouvrir | |
| Télécharger la version d'essai gratuiteLa version d'essai de 30 jours fournit les projets de démonstration 60.HTML. | Ouvrir | |
| TarifsLicences Single, Team et Site avec code source complet. | Ouvrir |