bf9395e022
CI / results (push) Blocked by required conditions
CI / license-header (push) Has been skipped
CI / e2e-dry-run (push) Has been skipped
CI / e2e-live (push) Waiting to run
CI / fast-gate (push) Failing after 0s
Test PR Label Logic / test-pr-labels (push) Failing after 1s
Skill Format Check / check-format (push) Failing after 2s
CI / security (push) Failing after 5s
CI / unit-test (push) Has been skipped
CI / lint (push) Has been skipped
CI / script-test (push) Has been skipped
CI / deterministic-gate (push) Has been skipped
CI / coverage (push) Has been skipped
CI / deadcode (push) Waiting to run
43 lines
954 B
Go
43 lines
954 B
Go
// Copyright (c) 2026 Lark Technologies Pte. Ltd.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package core
|
|
|
|
// StrictMode represents the identity restriction policy.
|
|
type StrictMode string
|
|
|
|
const (
|
|
StrictModeOff StrictMode = "off"
|
|
StrictModeBot StrictMode = "bot"
|
|
StrictModeUser StrictMode = "user"
|
|
)
|
|
|
|
// IsActive returns true if strict mode restricts identity.
|
|
func (m StrictMode) IsActive() bool {
|
|
return m == StrictModeBot || m == StrictModeUser
|
|
}
|
|
|
|
// AllowsIdentity reports whether the given identity is permitted under this mode.
|
|
func (m StrictMode) AllowsIdentity(id Identity) bool {
|
|
switch m {
|
|
case StrictModeBot:
|
|
return id.IsBot()
|
|
case StrictModeUser:
|
|
return id == AsUser
|
|
default:
|
|
return true
|
|
}
|
|
}
|
|
|
|
// ForcedIdentity returns the identity forced by this mode, or "" if not active.
|
|
func (m StrictMode) ForcedIdentity() Identity {
|
|
switch m {
|
|
case StrictModeBot:
|
|
return AsBot
|
|
case StrictModeUser:
|
|
return AsUser
|
|
default:
|
|
return ""
|
|
}
|
|
}
|