Documentation
¶
Overview ¶
Package identity provides unified user identity utilities for Compa. It introduces a canonical "platform:id" format and the matching logic for allow-list entries.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BuildCanonicalID ¶
BuildCanonicalID constructs a canonical "platform:id" identifier. Both platform and platformID are lowercased and trimmed.
func MatchAllowed ¶
func MatchAllowed(sender bus.SenderInfo, allowed string) bool
MatchAllowed checks whether the given sender matches a single allow-list entry:
- "123456" → matches sender.PlatformID
- "@alice" → matches sender.Username (any case on Telegram and Discord)
- "telegram:123456" → exact match on sender.CanonicalID
- "telegram:@alice" → matches sender.Username on that platform
- "@alice:matrix.org" → matches the Matrix user ID
Only a known platform name (or the sender's own platform) before the first colon makes an entry canonical. On DeltaChat, whose senders are email addresses, "@name" matches only a full address, so "@alice" never admits alice@ at some other domain.
func ParseCanonicalID ¶
ParseCanonicalID splits a canonical ID ("platform:id") into its parts. Returns ok=false if the input does not contain a colon separator.
Types ¶
This section is empty.