credential.go 745 B

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