account.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. package sqlstore
  2. import (
  3. "time"
  4. "github.com/go-xorm/xorm"
  5. "github.com/torkelo/grafana-pro/pkg/bus"
  6. m "github.com/torkelo/grafana-pro/pkg/models"
  7. )
  8. func init() {
  9. bus.AddHandler("sql", CreateAccount)
  10. bus.AddHandler("sql", SetUsingAccount)
  11. bus.AddHandler("sql", UpdateAccount)
  12. }
  13. func CreateAccount(cmd *m.CreateAccountCommand) error {
  14. return inTransaction(func(sess *xorm.Session) error {
  15. account := m.Account{
  16. Name: cmd.Name,
  17. Created: time.Now(),
  18. Updated: time.Now(),
  19. }
  20. if _, err := sess.Insert(&account); err != nil {
  21. return err
  22. }
  23. // create inital admin account user
  24. user := m.AccountUser{
  25. AccountId: account.Id,
  26. UserId: cmd.UserId,
  27. Role: m.ROLE_ADMIN,
  28. Created: time.Now(),
  29. Updated: time.Now(),
  30. }
  31. _, err := sess.Insert(&user)
  32. cmd.Result = account
  33. return err
  34. })
  35. }
  36. func UpdateAccount(cmd *m.UpdateAccountCommand) error {
  37. return inTransaction(func(sess *xorm.Session) error {
  38. account := m.Account{
  39. Name: cmd.Name,
  40. Updated: time.Now(),
  41. }
  42. _, err := sess.Id(cmd.AccountId).Update(&account)
  43. return err
  44. })
  45. }