| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- 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"
- m "github.com/torkelo/grafana-pro/pkg/models"
- "github.com/torkelo/grafana-pro/pkg/util"
- )
- func LoginView(c *middleware.Context) {
- if err := setIndexViewData(c); err != nil {
- c.Handle(500, "Failed to get settings", err)
- return
- }
- c.HTML(200, "index")
- }
- func LoginPost(c *middleware.Context, cmd dtos.LoginCommand) {
- userQuery := m.GetUserByLoginQuery{LoginOrEmail: cmd.User}
- err := bus.Dispatch(&userQuery)
- if err != nil {
- c.JsonApiErr(401, "Invalid username or password", err)
- return
- }
- user := userQuery.Result
- passwordHashed := util.EncodePassword(cmd.Password, user.Salt)
- if passwordHashed != user.Password {
- c.JsonApiErr(401, "Invalid username or password", err)
- return
- }
- loginUserWithUser(user, c)
- c.JsonOK("User logged in")
- }
- func loginUserWithUser(user *m.User, c *middleware.Context) {
- if user == nil {
- log.Error(3, "User login with nil user")
- }
- c.Session.Set("userId", user.Id)
- }
- func LogoutPost(c *middleware.Context) {
- c.Session.Delete("userId")
- c.JSON(200, util.DynMap{"status": "logged out"})
- }
|