| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- // Copyright (c) Tailscale Inc & AUTHORS
- // SPDX-License-Identifier: BSD-3-Clause
- package ipnauth
- import (
- "cmp"
- "context"
- "errors"
- "tailscale.com/ipn"
- )
- var _ Actor = (*TestActor)(nil)
- // TestActor is an [Actor] used exclusively for testing purposes.
- type TestActor struct {
- UID ipn.WindowsUserID // OS-specific UID of the user, if the actor represents a local Windows user
- Name string // username associated with the actor, or ""
- NameErr error // error to be returned by [TestActor.Username]
- CID ClientID // non-zero if the actor represents a connected LocalAPI client
- Ctx context.Context // context associated with the actor
- LocalSystem bool // whether the actor represents the special Local System account on Windows
- LocalAdmin bool // whether the actor has local admin access
- }
- // UserID implements [Actor].
- func (a *TestActor) UserID() ipn.WindowsUserID { return a.UID }
- // Username implements [Actor].
- func (a *TestActor) Username() (string, error) { return a.Name, a.NameErr }
- // ClientID implements [Actor].
- func (a *TestActor) ClientID() (_ ClientID, ok bool) { return a.CID, a.CID != NoClientID }
- // Context implements [Actor].
- func (a *TestActor) Context() context.Context { return cmp.Or(a.Ctx, context.Background()) }
- // CheckProfileAccess implements [Actor].
- func (a *TestActor) CheckProfileAccess(profile ipn.LoginProfileView, _ ProfileAccess, _ AuditLogFunc) error {
- return errors.New("profile access denied")
- }
- // IsLocalSystem implements [Actor].
- func (a *TestActor) IsLocalSystem() bool { return a.LocalSystem }
- // IsLocalAdmin implements [Actor].
- func (a *TestActor) IsLocalAdmin(operatorUID string) bool { return a.LocalAdmin }
|