RolesPermissions Bileşeni — sgcHTML | eSeGeCe

RolesPermissions

TsgcHTMLComponent_RolesPermissions — Delphi, C++ Builder ve .NET'te her hücrede bir onay kutusu, kategori gruplaması ve canlı WebSocket izin güncellemeleriyle bir rol / izin matrisi.

TsgcHTMLComponent_RolesPermissions

Roller ve izinler ekleyin, ilk izinleri ayarlayın, ardından HTML özelliğini okuyun. Her onay kutusu değişikliği sunucuya gönderilir; sunucu, uygulamadan önce bunu yetkilendirmelidir.

Bileşen sınıfı

TsgcHTMLComponent_RolesPermissions

İşler

Bootstrap 5 tablo matrisi + satır içi betik

Diller

Delphi, C++ Builder, .NET

Roller ekleyin, izinler ekleyin, yetkilendirin, işleyin

Matris eksenlerini oluşturmak için AddRole ve AddPermission'ı, ilk işaretlemeler için SetGrant'ı çağırın, ardından HTML'i okuyun.

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);

Temel özellikler & yöntemler

En sık başvurduğunuz üyeler.

Roller & izinler

AddRole(aId, aName) ve AddPermission(aId, aName, aCategory), matris eksenlerini oluşturur; her rol renkli bir rozet, her izin isteğe bağlı bir kategori üstbilgisi alır.

İzinler

SetGrant(aRoleId, aPermissionId, aGranted) / GetGrant, rol + izin kimliğine göre anahtarlanan işaretli hücreleri okur ve yazar.

Veri kümesi bağlama

LoadRolesFromDataSet, LoadPermissionsFromDataSet ve LoadGrantsFromDataSet, matrisi doğrudan bir TDataSet'ten doldurur.

İstemci değişiklikleri

Her onay kutusu değişikliği, WebSocket kanalı üzerinden bir JSON yükü gönderir ve sgcRolesPermissions:grantChanged DOM olayını tetikler.

Sunum

ShowDescriptions, ShowCategories, Striped, Bordered, Compact ve StickyHeader (MaxHeight ile), tabloyu biçimlendirir; ReadOnly, her onay kutusunu devre dışı bırakır.

Güvenlik

Bu bileşen yalnızca arayüzü işler. ProcessGrantChanged, yalnızca sunucu tarafında, eylemi gerçekleştiren kullanıcının o rol/izin çiftini değiştirmeye yetkili olduğu doğrulandıktan sonra çağrılmalıdır.

Keşfetmeye devam edin

Çevrimiçi yardımBu bileşen için tam API referansı ve kullanım kılavuzu.
Tüm sgcHTML Bileşenleri80'den fazla bileşenin tam özellik matrisine göz atın.
Ücretsiz Deneme Sürümünü İndirin30 günlük deneme, 60.HTML demo projeleriyle birlikte gelir.
FiyatlandırmaTam kaynak kodlu Single, Team ve Site lisansları.

Başlamaya Hazır mısınız?

Ücretsiz deneme sürümünü indirin ve Delphi, C++ Builder ya da .NET yönetim panelinize bir rol/izin matrisi ekleyin.