From 106dd1a47c828e158e6573d0f396fae076d908a2 Mon Sep 17 00:00:00 2001 From: hunterlong Date: Sun, 15 Mar 2020 23:51:15 -0700 Subject: [PATCH] ok --- Dockerfile.base | 2 +- Makefile | 4 ++-- frontend/src/pages/Help.vue | 9 +++++++++ handlers/api.go | 4 ++-- handlers/dashboard.go | 4 ++++ types/configs/database.go | 3 +++ types/configs/latest_sql.go | 12 ++++++++---- types/configs/migration.go | 4 ++-- types/core/database.go | 4 ++-- types/users/database.go | 4 ++-- utils/encryption.go | 17 +++++++---------- 11 files changed, 42 insertions(+), 25 deletions(-) create mode 100644 frontend/src/pages/Help.vue diff --git a/Dockerfile.base b/Dockerfile.base index efc3d1d3..280ba451 100644 --- a/Dockerfile.base +++ b/Dockerfile.base @@ -26,7 +26,7 @@ RUN go get github.com/stretchr/testify/assert && \ go get github.com/cortesi/modd/cmd/modd && \ go get github.com/crazy-max/xgo COPY . . -COPY --from=frontend /statping/ ./frontend/ +COPY --from=frontend /statping/dist/ ./source/dist/ RUN make clean generate embed build RUN chmod a+x statping && mv statping /go/bin/statping # /go/bin/statping - statping binary diff --git a/Makefile b/Makefile index a098de8c..fa1ef1c7 100644 --- a/Makefile +++ b/Makefile @@ -72,10 +72,10 @@ docker-vue: docker-test: docker-compose -f docker-compose.test.yml up --remove-orphans -push-base: docker-base +push-base: clean compile docker-base docker push statping/statping:base -push-vue: clean docker-base docker-vue +push-vue: clean compile docker-base docker-vue docker push statping/statping:base docker push statping/statping:vue diff --git a/frontend/src/pages/Help.vue b/frontend/src/pages/Help.vue new file mode 100644 index 00000000..232d2d3b --- /dev/null +++ b/frontend/src/pages/Help.vue @@ -0,0 +1,9 @@ + + + \ No newline at end of file diff --git a/handlers/api.go b/handlers/api.go index 6bb9b11e..fae5ad22 100644 --- a/handlers/api.go +++ b/handlers/api.go @@ -55,8 +55,8 @@ func apiIndexHandler(r *http.Request) interface{} { func apiRenewHandler(w http.ResponseWriter, r *http.Request) { var err error - core.App.ApiKey = utils.NewSHA1Hash(40) - core.App.ApiSecret = utils.NewSHA1Hash(40) + core.App.ApiKey = utils.NewSHA256Hash() + core.App.ApiSecret = utils.NewSHA256Hash() err = core.App.Update() if err != nil { sendErrorJson(err, w, r) diff --git a/handlers/dashboard.go b/handlers/dashboard.go index 4dfc9623..17dc615e 100644 --- a/handlers/dashboard.go +++ b/handlers/dashboard.go @@ -99,6 +99,10 @@ func apiThemeSaveHandler(w http.ResponseWriter, r *http.Request) { sendErrorJson(err, w, r) return } + if err := source.SaveAsset([]byte(themes.Base), "scss/main.scss"); err != nil { + sendErrorJson(err, w, r) + return + } if err := source.SaveAsset([]byte(themes.Variables), "scss/variables.scss"); err != nil { sendErrorJson(err, w, r) return diff --git a/types/configs/database.go b/types/configs/database.go index 4312f324..6d0d1ad2 100644 --- a/types/configs/database.go +++ b/types/configs/database.go @@ -85,6 +85,9 @@ func (d *DbConfig) DropDatabase() error { } func (d *DbConfig) Close() { + if d == nil { + return + } if d.Db != nil { d.Db.Close() } diff --git a/types/configs/latest_sql.go b/types/configs/latest_sql.go index 6d381fdb..dc2c6411 100644 --- a/types/configs/latest_sql.go +++ b/types/configs/latest_sql.go @@ -12,14 +12,18 @@ func init() { os.Setenv("MIGRATION_ID", utils.ToString(latestMigration)) } -func (c *DbConfig) genericMigration(alterStr string) error { - if err := c.Db.Exec(fmt.Sprintf("ALTER TABLE hits %s COLUMN latency TYPE BIGINT;", alterStr)).Error(); err != nil { +func (c *DbConfig) genericMigration(alterStr string, isPostgres bool) error { + var extra string + if isPostgres { + extra = " TYPE" + } + if err := c.Db.Exec(fmt.Sprintf("ALTER TABLE hits %s COLUMN latency%s BIGINT;", alterStr, extra)).Error(); err != nil { return err } - if err := c.Db.Exec(fmt.Sprintf("ALTER TABLE hits %s COLUMN ping_time TYPE BIGINT;", alterStr)).Error(); err != nil { + if err := c.Db.Exec(fmt.Sprintf("ALTER TABLE hits %s COLUMN ping_time%s BIGINT;", alterStr, extra)).Error(); err != nil { return err } - if err := c.Db.Exec(fmt.Sprintf("ALTER TABLE failures %s COLUMN latency TYPE BIGINT;", alterStr)).Error(); err != nil { + if err := c.Db.Exec(fmt.Sprintf("ALTER TABLE failures %s COLUMN latency%s BIGINT;", alterStr, extra)).Error(); err != nil { return err } if err := c.Db.Exec("UPDATE hits SET latency = CAST(latency * 1000000 AS bigint);").Error(); err != nil { diff --git a/types/configs/migration.go b/types/configs/migration.go index f96daa69..2a154ab5 100644 --- a/types/configs/migration.go +++ b/types/configs/migration.go @@ -27,11 +27,11 @@ func (c *DbConfig) DatabaseChanges() error { switch c.Db.DbType() { case "mysql": - if err := c.genericMigration("MODIFY"); err != nil { + if err := c.genericMigration("MODIFY", false); err != nil { return err } case "postgres": - if err := c.genericMigration("ALTER"); err != nil { + if err := c.genericMigration("ALTER", true); err != nil { return err } default: diff --git a/types/core/database.go b/types/core/database.go index 33b1e2d0..a19f6021 100644 --- a/types/core/database.go +++ b/types/core/database.go @@ -37,8 +37,8 @@ func Select() (*Core, error) { func (c *Core) Create() error { c.ApiKey = c.ApiKey c.ApiSecret = c.ApiSecret - apiKey := utils.Getenv("API_KEY", utils.NewSHA1Hash(40)).(string) - apiSecret := utils.Getenv("API_SECRET", utils.NewSHA1Hash(40)).(string) + apiKey := utils.Getenv("API_KEY", utils.NewSHA256Hash()).(string) + apiSecret := utils.Getenv("API_SECRET", utils.NewSHA256Hash()).(string) if c.ApiKey == "" || c.ApiSecret == "" { c.ApiSecret = apiSecret diff --git a/types/users/database.go b/types/users/database.go index ffe351c2..b86c99fb 100644 --- a/types/users/database.go +++ b/types/users/database.go @@ -53,7 +53,7 @@ func (u *User) Delete() error { func (u *User) BeforeCreate() error { u.Password = utils.HashPassword(u.Password) - u.ApiKey = utils.NewSHA1Hash(16) - u.ApiSecret = utils.NewSHA1Hash(16) + u.ApiKey = utils.NewSHA256Hash() + u.ApiSecret = utils.NewSHA256Hash() return nil } diff --git a/utils/encryption.go b/utils/encryption.go index 5a571159..014e5c16 100644 --- a/utils/encryption.go +++ b/utils/encryption.go @@ -16,7 +16,7 @@ package utils import ( - "crypto/sha1" + "crypto/sha256" "fmt" "golang.org/x/crypto/bcrypt" "math/rand" @@ -30,16 +30,13 @@ func HashPassword(password string) string { } // NewSHA1Hash returns a random SHA1 hash based on a specific length -func NewSHA1Hash(n ...int) string { - noRandomCharacters := 32 - if len(n) > 0 { - noRandomCharacters = n[0] +func NewSHA256Hash() string { + d := make([]byte, 10) + rand.Seed(Now().UnixNano()) + if _, err := rand.Read(d); err == nil { + fmt.Printf("%x", sha256.Sum256(d)) } - randString := RandomString(noRandomCharacters) - hash := sha1.New() - hash.Write([]byte(randString)) - bs := hash.Sum(nil) - return fmt.Sprintf("%x", bs) + return fmt.Sprintf("%x", d) } var characterRunes = []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789")