credential.go 866 B

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