diff --git a/README.md b/README.md
index 011311a..89d58a4 100644
--- a/README.md
+++ b/README.md
@@ -125,9 +125,9 @@ verified players perks. It keeps everything in SimpleAdmin's database (`gv_verif
it to the ranks that should have it in the rank editor), staff give overrides for a day up to a
year or with no expiry, change them and remove them. Root sets the group and turns verification
on and off.
-- **Everyone** sees a "Verified" tag on the scoreboard and on player pages, but only while
- verification is on (enabled, with a group set) and GroupVerify isn't missing from the server's
- plugin list. The public site never shows why someone is verified, or who gave an override.
+- **The public site** shows nothing about verification. On the staff panel, the Overview
+ scoreboard shows a "Verified" tag only while verification is on (enabled, with a group set) and
+ GroupVerify isn't missing from the server's plugin list.
- **Clan tag**: Root can set the scoreboard tag verified players without a rank get (GroupVerify's
`clan_tag`, at most 12 characters). CS2-Tags (1.0.4c-zio6+) applies it, and gives unverified
players without a rank no tag at all. Blank turns it off.
diff --git a/internal/web/assets/public.js b/internal/web/assets/public.js
index fb41c60..cdd6085 100644
--- a/internal/web/assets/public.js
+++ b/internal/web/assets/public.js
@@ -42,7 +42,7 @@ async function server() {
` : ""}
${ptDrawer(p.playtime, p.online)}
diff --git a/internal/web/public.go b/internal/web/public.go
index 1ec507c..9f59245 100644
--- a/internal/web/public.go
+++ b/internal/web/public.go
@@ -38,7 +38,7 @@ func toPublic(ps []store.Penalty) []publicPenalty {
type livePlayer struct {
live.Player
Rank *rankView `json:"rank,omitempty"`
- // Verified by GroupVerify, when that's shown at all (see verifyInfo.Shown).
+ // Verified by GroupVerify, when that's shown at all (see verifyInfo.Shown). Staff overview only.
Verified bool `json:"verified,omitempty"`
// Staff-only fields, left empty on the public page.
Tags []string `json:"tags,omitempty"`
@@ -84,9 +84,8 @@ func (s *Server) publicServer(w http.ResponseWriter, r *http.Request) {
internal(w, r, err)
return
}
- view := s.serverView(x, s.poll.Current())
- s.markVerified(r.Context(), view.Players)
- writeJSON(w, http.StatusOK, view)
+ // No Verified tags on the public scoreboard; the staff overview still marks them.
+ writeJSON(w, http.StatusOK, s.serverView(x, s.poll.Current()))
}
// penaltyQuery reads ?status=&q=&page= (and for comms, a type in place of the status).
@@ -290,11 +289,10 @@ func (s *Server) publicPlayer(w http.ResponseWriter, r *http.Request) {
return
}
_, online := s.poll.Current().Find(steamid)
- // Only whether they're verified: why, and overrides' expiry and who gave them, are for staff.
- st, verified := s.verifiedSet(r.Context(), []string{steamid})[steamid]
+ // No verification on the public site: that's on the staff panel.
resp := map[string]any{
"steamid": steamid, "name": d.Name, "online": online, "rank": s.rankOf(x, steamid),
- "verified": verified && st.Verified(), "bans": toPublic(bans), "comms": toPublic(comms),
+ "bans": toPublic(bans), "comms": toPublic(comms),
}
// Signed-in staff get the staff playtime figures here too, as on the staff panel.
id, _, err := s.identity(r)