auth.go 447 B

12345678910111213141516171819202122232425262728
  1. package server
  2. // auth is a generic interface to implement password-based authentication and authorization
  3. type auth interface {
  4. Authenticate(user, pass string) (*user, error)
  5. Authorize(user *user, topic string, perm int) error
  6. }
  7. type user struct {
  8. Name string
  9. Role string
  10. }
  11. const (
  12. permRead = 1
  13. permWrite = 2
  14. )
  15. const (
  16. roleAdmin = "admin"
  17. roleUser = "user"
  18. roleNone = "none"
  19. )
  20. var everyone = &user{
  21. Name: "",
  22. Role: roleNone,
  23. }