package session import ( "context" "errors" "fmt" "tug/internal/storage" ) func (s *Service) RevokeBrowser(ctx context.Context, p Principal) (storage.Revoked, error) { if p.SessionID == "" { return storage.Revoked{}, fmt.Errorf("session: revoke browser: %w: no current session", ErrNoSession) } revoked, err := s.store.RevokeBrowserAuditedAt(ctx, p.UserID, p.SessionID, auditInput(p.UserID, "session.revoke_browser", p.UserID, hostDetail{Host: p.Host}), s.clock()) if errors.Is(err, storage.ErrInvalid) { return storage.Revoked{}, fmt.Errorf("session: revoke browser: %w: %w", ErrNoSession, err) } if err != nil { return storage.Revoked{}, failure("revoke browser", err) } return revoked, nil }