credential.go 944 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  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. MailSent bool
  18. }
  19. func (c *Credential) sanitize(s string) string {
  20. lower := strings.ToLower(s)
  21. r := strings.NewReplacer("'", "", "-", "", " ", "", "ò", "o", "ì", "i")
  22. return r.Replace(lower)
  23. }
  24. func (c *Credential) GenerateUsername() string {
  25. return strings.Join([]string{c.sanitize(c.Name), c.sanitize(c.Surname)}, ".")
  26. }
  27. func (c *Credential) GenerateSaltedPassword(password string) string {
  28. bs := sha1.Sum([]byte(password + "salt"))
  29. str := base64.StdEncoding.EncodeToString(append(bs[:], []byte("salt")...))
  30. return fmt.Sprintf("%s", str)
  31. }
  32. func (c *Credential) CompleteName() string {
  33. return fmt.Sprintf("%s, %s", c.Name, c.Surname)
  34. }