credential.go 928 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. package orm
  2. import (
  3. "crypto/sha1"
  4. "encoding/base64"
  5. "fmt"
  6. "strings"
  7. )
  8. type Credential struct {
  9. Name string
  10. Surname string
  11. Username string
  12. Password string
  13. PlainPassword string
  14. Email string
  15. AltEmail string
  16. TelephoneNumber string
  17. }
  18. func (c *Credential) sanitize(s string) string {
  19. lower := strings.ToLower(s)
  20. r := strings.NewReplacer("'", "", "-", "", " ", "", "ò", "o", "ì", "i")
  21. return r.Replace(lower)
  22. }
  23. func (c *Credential) GenerateUsername() string {
  24. return strings.Join([]string{c.sanitize(c.Name), c.sanitize(c.Surname)}, ".")
  25. }
  26. func (c *Credential) GenerateSaltedPassword(password string) string {
  27. bs := sha1.Sum([]byte(password + "salt"))
  28. str := base64.StdEncoding.EncodeToString(append(bs[:], []byte("salt")...))
  29. return fmt.Sprintf("%s", str)
  30. }
  31. func (c *Credential) CompleteName() string {
  32. return fmt.Sprintf("%s, %s", c.Name, c.Surname)
  33. }