cmd/tailscale/cli,ipn/ipnlocal: restrict logout when AlwaysOn mode is enabled

In this PR, we start passing a LocalAPI actor to (*LocalBackend).Logout to make it subject
to the same access check as disconnects made via tailscale down or the GUI.

We then update the CLI to allow `tailscale logout` to accept a reason, similar to `tailscale down`.

Updates tailscale/corp#26249

Signed-off-by: Nick Khyl <nickk@tailscale.com>
This commit is contained in:
Nick Khyl
2025-07-08 14:37:13 -05:00
committed by Nick Khyl
parent 5b0074729d
commit 1fe82d6ef5
5 changed files with 22 additions and 11 deletions

View File

@@ -1460,7 +1460,7 @@ func (h *Handler) serveLogout(w http.ResponseWriter, r *http.Request) {
http.Error(w, "want POST", http.StatusBadRequest)
return
}
err := h.b.Logout(r.Context())
err := h.b.Logout(r.Context(), h.Actor)
if err == nil {
w.WriteHeader(http.StatusNoContent)
return