diff --git a/controllers/baseAPI.go b/controllers/baseAPI.go index 461b2c8..5d49b28 100644 --- a/controllers/baseAPI.go +++ b/controllers/baseAPI.go @@ -3,10 +3,11 @@ package controllers import ( "database/sql" "fmt" + "multitenantStack/models" companydb "multitenantStack/services/companydb" + "time" "github.com/astaxie/beego/orm" - jwt "github.com/dgrijalva/jwt-go" ) // BaseAPIController operations for APIs @@ -14,7 +15,15 @@ type BaseAPIController struct { BaseController } -var jwtSession jwt.MapClaims +type SessionData struct { + Email string + CompanyName string + CompanyUserID int + Exp time.Time +} + +var jwtSession SessionData +var currentUser *models.CompanyUser var companyDB *sql.DB var o orm.Ormer @@ -36,7 +45,18 @@ func (c *BaseAPIController) Prepare() { return } - jwtSession = token + jwtSession.Email = token["email"].(string) + jwtSession.CompanyName = token["companyName"].(string) + jwtSession.CompanyUserID = token["companyUserID"].(int) + jwtSession.Exp = token["exp"].(time.Time) + + companyUser, err := models.GetCompanyUserById(o, int(jwtSession.CompanyUserID)) + if err != nil { + c.ServeJSONError("Error retrieving Company User") + return + } + currentUser = companyUser + companyDB = db o, err = orm.NewOrmWithDB("postgres", "company", companyDB) if err != nil {