user.go 662 B

1234567891011121314151617181920212223242526272829303132333435
  1. package json
  2. import (
  3. "encoding/json"
  4. "github.com/v2ray/v2ray-core/proxy/vmess/config"
  5. )
  6. // ConfigUser is an user account in VMess configuration.
  7. type ConfigUser struct {
  8. Id *config.ID
  9. Email string
  10. }
  11. func (u *ConfigUser) UnmarshalJSON(data []byte) error {
  12. type rawUser struct {
  13. IdString string `json:"id"`
  14. EmailString string `json:"email"`
  15. }
  16. var rawUserValue rawUser
  17. if err := json.Unmarshal(data, &rawUserValue); err != nil {
  18. return err
  19. }
  20. id, err := config.NewID(rawUserValue.IdString)
  21. if err != nil {
  22. return err
  23. }
  24. u.Id = id
  25. u.Email = rawUserValue.EmailString
  26. return nil
  27. }
  28. func (u *ConfigUser) ID() *config.ID {
  29. return u.Id
  30. }