UserManagement
TsgcHTMLComponent_UserManagement — 一个带头像、角色、状态、搜索和每行操作下拉菜单的用户管理表格,适用于 Delphi、C++ Builder 和 .NET。
TsgcHTMLComponent_UserManagement — 一个带头像、角色、状态、搜索和每行操作下拉菜单的用户管理表格,适用于 Delphi、C++ Builder 和 .NET。
使用 AddUser 添加用户(或绑定数据集),选择要显示的列和行操作,然后读取 HTML 属性。
TsgcHTMLComponent_UserManagement
工具栏 + Bootstrap 5 表格 + 操作下拉菜单
Delphi, C++ Builder, .NET
为每个账户调用 AddUser,读取 HTML 获取表格,然后使用 ProcessUserAction 授权并应用通过 WebSocket 通道收到的任何操作。
uses
sgcHTML_Component_UserManagement;
var
oUsers: TsgcHTMLComponent_UserManagement;
oUser: TsgcHTMLUser;
begin
oUsers := TsgcHTMLComponent_UserManagement.Create(nil);
try
oUsers.TableID := 'users';
oUsers.AllowImpersonate := True;
oUsers.AllowDelete := True;
oUser := oUsers.AddUser('u1', 'ana.torres', 'ana@example.com');
oUser.DisplayName := 'Ana Torres';
oUser.Roles := 'admin,editor';
oUser.Status := usActive;
oUser.LastLogin := '2026-07-15 09:12';
oUsers.AddUser('u2', 'marc.bell', 'marc@example.com').Status := usInvited;
WebModule.Response := oUsers.HTML; // toolbar + table + inline script
finally
oUsers.Free;
end;
end;
// Server-side handler for an action received over WebSockets.
// ALWAYS verify the acting user is authorized before applying it:
oUsers.ProcessUserAction('userDisable', 'u2');
// includes: sgcHTML_Component_UserManagement.hpp
TsgcHTMLComponent_UserManagement *oUsers = new TsgcHTMLComponent_UserManagement(NULL);
try
{
oUsers->TableID = "users";
oUsers->AllowImpersonate = true;
oUsers->AllowDelete = true;
TsgcHTMLUser *oUser = oUsers->AddUser("u1", "ana.torres", "ana@example.com");
oUser->DisplayName = "Ana Torres";
oUser->Roles = "admin,editor";
oUser->Status = usActive;
oUser->LastLogin = "2026-07-15 09:12";
oUsers->AddUser("u2", "marc.bell", "marc@example.com")->Status = usInvited;
String html = oUsers->HTML; // toolbar + table + inline script
// Server-side handler for an action received over WebSockets:
oUsers->ProcessUserAction("userDisable", "u2");
}
__finally
{
delete oUsers;
}
using esegece.sgcWebSockets;
var users = new TsgcHTMLComponent_UserManagement();
users.TableID = "users";
users.AllowImpersonate = true;
users.AllowDelete = true;
var user = users.AddUser("u1", "ana.torres", "ana@example.com");
user.DisplayName = "Ana Torres";
user.Roles = "admin,editor";
user.Status = TsgcHTMLUserStatus.usActive;
user.LastLogin = "2026-07-15 09:12";
users.AddUser("u2", "marc.bell", "marc@example.com").Status = TsgcHTMLUserStatus.usInvited;
string html = users.HTML; // toolbar + table + inline script
// Server-side handler for an action received over WebSockets.
// ALWAYS verify the acting user is authorized before applying it:
users.ProcessUserAction("userDisable", "u2");
您最常使用的成员。
AddUser(aId, aUserName, aEmail) 追加一行并返回 TsgcHTMLUser,以便您设置 DisplayName、Roles、Status、LastLogin 和 AvatarURL。
LoadFromDataSet(aDataSet, aIdField, aUserNameField, aEmailField, aRolesField, aStatusField) 填充表格,并记住映射关系以便后续刷新。
TsgcHTMLUserStatus — usActive、usInvited、usSuspended、usDisabled — 渲染为彩色徽章;Roles 是一个以逗号分隔的列表,渲染为多个徽章。
每行的下拉菜单都提供编辑 / 禁用-启用 / 重置密码;AllowImpersonate 和 AllowDelete 添加更敏感的操作。
ShowSearch、ShowAddButton(配合 AddCaption / SearchPlaceholder)控制工具栏;ShowRoles、ShowStatus、ShowLastLogin、ShowActions 和 PageSize 控制表格。
每个操作都以 JSON 形式从客户端传输到服务器(并触发 sgcUserManagement:action)。只有在宿主程序验证操作用户有权执行该操作之后,才能运行 ProcessUserAction。