Merge pull request #116 from RafayLabs/middleware-fixes

fixes in middleware to set db and few other fixes
This commit is contained in:
Nirav Parikh
2022-04-22 12:32:23 +05:30
committed by GitHub
6 changed files with 62 additions and 8 deletions

View File

@@ -53,12 +53,7 @@ func SetupAuthContext(auditLogger *zap.Logger) authContext {
)
// Initialize database
dbUser := getEnvWithDefault("DB_USER", "admindbuser")
dbPassword := getEnvWithDefault("DB_PASSWORD", "admindbpassword")
dbAddr := getEnvWithDefault("DB_ADDR", "localhost:5432")
dbName := getEnvWithDefault("DB_NAME", "admindb")
dsn := fmt.Sprintf("postgres://%s:%s@%s/%s?sslmode=disable", dbUser, dbPassword, dbAddr, dbName)
sqldb := sql.OpenDB(pgdriver.NewConnector(pgdriver.WithDSN(dsn)))
sqldb := sql.OpenDB(pgdriver.NewConnector(pgdriver.WithDSN(getDSN())))
db = bun.NewDB(sqldb, pgdialect.New())
if v, ok := os.LookupEnv("KRATOS_ADDR"); ok {
@@ -86,6 +81,18 @@ func SetupAuthContext(auditLogger *zap.Logger) authContext {
return authContext{kc: kc, as: as, ks: service.NewApiKeyService(db, auditLogger)}
}
func getDSN() string {
dsn := getEnvWithDefault("DSN", "")
if dsn == "" {
dbUser := getEnvWithDefault("DB_USER", "admindbuser")
dbPassword := getEnvWithDefault("DB_PASSWORD", "admindbpassword")
dbAddr := getEnvWithDefault("DB_ADDR", "localhost:5432")
dbName := getEnvWithDefault("DB_NAME", "admindb")
dsn = fmt.Sprintf("postgres://%s:%s@%s/%s?sslmode=disable", dbUser, dbPassword, dbAddr, dbName)
}
return dsn
}
func getEnvWithDefault(env, def string) string {
val := os.Getenv(env)
if val == "" {

View File

@@ -2,6 +2,7 @@ package authv3
import (
context "context"
"database/sql"
"net/http"
"regexp"
"strings"
@@ -10,6 +11,8 @@ import (
"github.com/RafayLabs/rcloud-base/pkg/common"
commonpbv3 "github.com/RafayLabs/rcloud-base/proto/types/commonpb/v3"
"github.com/uptrace/bun"
"github.com/uptrace/bun/dialect/pgdialect"
"github.com/uptrace/bun/driver/pgdriver"
"github.com/urfave/negroni"
"go.uber.org/zap"
)
@@ -21,9 +24,12 @@ type authMiddleware struct {
}
func NewAuthMiddleware(al *zap.Logger, opt Option) negroni.Handler {
// Initialize database
sqldb := sql.OpenDB(pgdriver.NewConnector(pgdriver.WithDSN(getDSN())))
return &authMiddleware{
ac: SetupAuthContext(al),
opt: opt,
db: bun.NewDB(sqldb, pgdialect.New()),
}
}

View File

@@ -47,7 +47,7 @@ func (kcs *kubectlClusterSettingsService) Patch(ctx context.Context, kc *sentry.
if err == sql.ErrNoRows {
kcsdb := convertToKubeCtlSettingModel(kc)
kcsdb.CreatedAt = time.Now()
dao.CreatekubectlClusterSettings(ctx, tx, kcsdb)
return dao.CreatekubectlClusterSettings(ctx, tx, kcsdb)
}
return err
}

View File

@@ -0,0 +1,16 @@
{
"name": "location.read",
"base_url": "/infra/v3/partner/:metadata.partner",
"resource_urls": [
{
"url": "/location",
"methods": [
"GET"
]
}
],
"resource_action_urls": [],
"description": "view locations.",
"authenticated": true,
"scope": "ORGANIZATION"
}

View File

@@ -0,0 +1,23 @@
{
"name": "location.write",
"base_url": "/infra/v3/partner/:metadata.partner",
"description": "manage locations",
"resource_urls": [
{
"url": "/location/:metadata.name",
"methods": [
"PUT",
"DELETE"
]
},
{
"url": "/location",
"methods": [
"POST"
]
}
],
"resource_action_urls": [],
"authenticated": true,
"scope": "ORGANIZATION"
}

View File

@@ -38,7 +38,9 @@
"organization.write",
"cluster.read",
"cluster.write",
"hub.openapi.explorer.read"
"hub.openapi.explorer.read",
"location.read",
"location.write"
],
"ADMIN_READ_ONLY": [
"user.read",