mirror of
https://github.com/paralus/paralus.git
synced 2026-05-08 17:36:56 +00:00
Merge pull request #116 from RafayLabs/middleware-fixes
fixes in middleware to set db and few other fixes
This commit is contained in:
@@ -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 == "" {
|
||||
|
||||
@@ -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()),
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
16
scripts/initialize/permissions/base/location_read.json
Normal file
16
scripts/initialize/permissions/base/location_read.json
Normal 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"
|
||||
}
|
||||
23
scripts/initialize/permissions/base/location_write.json
Normal file
23
scripts/initialize/permissions/base/location_write.json
Normal 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"
|
||||
}
|
||||
@@ -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",
|
||||
|
||||
Reference in New Issue
Block a user