Players are verified when they're in the configured Steam group (public memberslistxml, refetched every 10 minutes, kept on failure) or have an unexpired override row in gv_verified, written by the web panel. Settings and data live in CS2-SimpleAdmin's MySQL database (gv_verified, gv_settings, gv_migrations), reached through its API. - css_gv_group <groupId64|0>, css_gv_enable, css_gv_disable (@css/root): verification runs only when enabled with a group set. - css_verify <target>: why a player is or isn't verified. Admin and above (by immunity from SimpleAdmin's groups) plus Guardian, unless admin_overrides.json says otherwise. - groupverify:api (shared/GroupVerifyApi): IsVerified, GetStatus, IsActive and OnVerifiedChanged. The API object lives in the shared assembly, so it survives hot reloads of GroupVerify.
29 lines
1.7 KiB
SQL
29 lines
1.7 KiB
SQL
-- GroupVerify's tables, in CS2-SimpleAdmin's database. Applied once at load, tracked in
|
|
-- gv_migrations (like SimpleAdmin's sa_migrations, kept apart so neither confuses the other).
|
|
-- Times are wall-clock values in gv_settings' timezone, which should match SimpleAdmin's Timezone.
|
|
|
|
-- One row per player and source. A player counts as verified if they're in the Steam group's
|
|
-- member list, or have a row with `override` = 1 whose expires_at is NULL (never) or still ahead.
|
|
-- source 'group': written by the plugin for everyone in the group list, `override` 0. Removed
|
|
-- when they leave the group. The live list decides, not these rows.
|
|
-- source 'manual': written by the web panel, `override` 1, expires_at NULL or a date.
|
|
-- updated_at is when the plugin last saw a group row in the list.
|
|
CREATE TABLE IF NOT EXISTS `gv_verified` (
|
|
`steamid64` bigint(20) NOT NULL,
|
|
`source` enum('group','manual') NOT NULL,
|
|
`override` tinyint(1) NOT NULL DEFAULT 0,
|
|
`expires_at` datetime NULL DEFAULT NULL,
|
|
`added_by` varchar(128) NOT NULL DEFAULT '',
|
|
`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
`updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (`steamid64`, `source`),
|
|
KEY `idx_gv_verified_override` (`override`, `expires_at`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
|
|
|
-- Plugin settings, name -> value. The plugin adds any missing name with its default at load, and
|
|
-- rereads them on every database reload, so edits apply without a restart.
|
|
CREATE TABLE IF NOT EXISTS `gv_settings` (
|
|
`name` varchar(64) NOT NULL,
|
|
`value` varchar(255) NOT NULL DEFAULT '',
|
|
PRIMARY KEY (`name`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|