Refactoring get account by id and by login to queries
This commit is contained in:
@@ -27,12 +27,15 @@ func AddCollaborator(c *middleware.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
accountToAdd, err := m.GetAccountByLogin(cmd.Email)
|
||||
userQuery := m.GetAccountByLoginQuery{Login: cmd.Email}
|
||||
err := bus.Dispatch(&userQuery)
|
||||
if err != nil {
|
||||
c.JsonApiErr(404, "Collaborator not found", nil)
|
||||
return
|
||||
}
|
||||
|
||||
accountToAdd := userQuery.Result
|
||||
|
||||
if accountToAdd.Id == c.UserAccount.Id {
|
||||
c.JsonApiErr(400, "Cannot add yourself as collaborator", nil)
|
||||
return
|
||||
|
||||
+10
-5
@@ -2,9 +2,10 @@ package api
|
||||
|
||||
import (
|
||||
"github.com/torkelo/grafana-pro/pkg/api/dtos"
|
||||
"github.com/torkelo/grafana-pro/pkg/bus"
|
||||
"github.com/torkelo/grafana-pro/pkg/log"
|
||||
"github.com/torkelo/grafana-pro/pkg/middleware"
|
||||
"github.com/torkelo/grafana-pro/pkg/models"
|
||||
m "github.com/torkelo/grafana-pro/pkg/models"
|
||||
"github.com/torkelo/grafana-pro/pkg/utils"
|
||||
)
|
||||
|
||||
@@ -22,14 +23,18 @@ func LoginPost(c *middleware.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
account, err := models.GetAccountByLogin(loginModel.Email)
|
||||
userQuery := m.GetAccountByLoginQuery{Login: loginModel.Email}
|
||||
err := bus.Dispatch(&userQuery)
|
||||
|
||||
if err != nil {
|
||||
c.JSON(401, utils.DynMap{"status": "unauthorized"})
|
||||
c.JsonApiErr(401, "Invalid username or password", err)
|
||||
return
|
||||
}
|
||||
|
||||
account := userQuery.Result
|
||||
|
||||
if loginModel.Password != account.Password {
|
||||
c.JSON(401, utils.DynMap{"status": "unauthorized"})
|
||||
c.JsonApiErr(401, "Invalid username or password", err)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -42,7 +47,7 @@ func LoginPost(c *middleware.Context) {
|
||||
c.JSON(200, resp)
|
||||
}
|
||||
|
||||
func loginUserWithAccount(account *models.Account, c *middleware.Context) {
|
||||
func loginUserWithAccount(account *m.Account, c *middleware.Context) {
|
||||
if account == nil {
|
||||
log.Error(3, "Account login with nil account")
|
||||
}
|
||||
|
||||
@@ -49,7 +49,8 @@ func OAuthLogin(ctx *middleware.Context) {
|
||||
|
||||
log.Info("login.OAuthLogin(social login): %s", userInfo)
|
||||
|
||||
account, err := m.GetAccountByLogin(userInfo.Email)
|
||||
userQuery := m.GetAccountByLoginQuery{Login: userInfo.Email}
|
||||
err = bus.Dispatch(&userQuery)
|
||||
|
||||
// create account if missing
|
||||
if err == m.ErrAccountNotFound {
|
||||
@@ -65,13 +66,13 @@ func OAuthLogin(ctx *middleware.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
account = &cmd.Result
|
||||
userQuery.Result = &cmd.Result
|
||||
} else if err != nil {
|
||||
ctx.Handle(500, "Unexpected error", err)
|
||||
}
|
||||
|
||||
// login
|
||||
loginUserWithAccount(account, ctx)
|
||||
loginUserWithAccount(userQuery.Result, ctx)
|
||||
|
||||
ctx.Redirect("/")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user