user.go 494 B

123456789101112131415161718192021222324252627282930313233343536
  1. package vmess
  2. import (
  3. "time"
  4. )
  5. type UserLevel int
  6. const (
  7. UserLevelAdmin = UserLevel(999)
  8. UserLevelUntrusted = UserLevel(0)
  9. )
  10. type User interface {
  11. ID() *ID
  12. Level() UserLevel
  13. }
  14. type SecondaryID interface {
  15. ID() *ID
  16. ValidUntil() time.Time
  17. }
  18. type UserSettings struct {
  19. PayloadReadTimeout int
  20. }
  21. func GetUserSettings(level UserLevel) UserSettings {
  22. settings := UserSettings{
  23. PayloadReadTimeout: 120,
  24. }
  25. if level > 0 {
  26. settings.PayloadReadTimeout = 0
  27. }
  28. return settings
  29. }