temp_user.go 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. package sqlstore
  2. import (
  3. "time"
  4. "github.com/grafana/grafana/pkg/bus"
  5. m "github.com/grafana/grafana/pkg/models"
  6. )
  7. func init() {
  8. bus.AddHandler("sql", CreateTempUser)
  9. bus.AddHandler("sql", GetTempUsersForOrg)
  10. }
  11. func CreateTempUser(cmd *m.CreateTempUserCommand) error {
  12. return inTransaction2(func(sess *session) error {
  13. // create user
  14. user := &m.TempUser{
  15. Email: cmd.Email,
  16. Name: cmd.Name,
  17. OrgId: cmd.OrgId,
  18. Code: cmd.Code,
  19. Role: cmd.Role,
  20. IsInvite: cmd.IsInvite,
  21. InvitedByUserId: cmd.InvitedByUserId,
  22. Created: time.Now(),
  23. Updated: time.Now(),
  24. }
  25. sess.UseBool("is_invite")
  26. if _, err := sess.Insert(user); err != nil {
  27. return err
  28. }
  29. cmd.Result = user
  30. return nil
  31. })
  32. }
  33. func GetTempUsersForOrg(query *m.GetTempUsersForOrgQuery) error {
  34. var rawSql = `SELECT
  35. tu.id as id,
  36. tu.email as email,
  37. tu.name as name,
  38. tu.role as role,
  39. tu.email_sent as email_sent,
  40. tu.email_sent_on as email_sent_on,
  41. tu.created as created,
  42. u.login as invited_by
  43. FROM ` + dialect.Quote("temp_user") + ` as tu
  44. LEFT OUTER JOIN ` + dialect.Quote("user") + ` as u on u.id = tu.invited_by_user_id
  45. WHERE tu.org_id=? ORDER BY tu.created desc`
  46. query.Result = make([]*m.TempUserDTO, 0)
  47. sess := x.Sql(rawSql, query.OrgId)
  48. err := sess.Find(&query.Result)
  49. return err
  50. }