Admin create & login working
This commit is contained in:
@@ -432,6 +432,11 @@ func StarterAdmin() gin.HandlerFunc {
|
||||
a.SetPassword(signupVals.Password)
|
||||
a.GenerateNewTwoFactorSecret()
|
||||
|
||||
if err := database.Db.Create(&a).Error; err != nil {
|
||||
c.AbortWithStatus(http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
|
||||
go util.SendEmail("Admin Created", "A new admin, "+a.Email+", has been created", config.Config.AdminEmails)
|
||||
|
||||
c.JSON(http.StatusOK, util.NextMsg{Next: "db verify"})
|
||||
|
||||
18
main.go
18
main.go
@@ -1,7 +1,6 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"net/http"
|
||||
|
||||
@@ -28,26 +27,23 @@ func main() {
|
||||
Migrate(db)
|
||||
|
||||
r := gin.Default()
|
||||
v1 := r.Group("/v1")
|
||||
|
||||
// Ping functionality
|
||||
v1.GET("/doot", core.Doot())
|
||||
|
||||
// Fresh admin functionality
|
||||
if config.Config.AllowFreshAdminGeneration {
|
||||
var adminCount int64
|
||||
database.Db.Model(models.Admin{}).Count(&adminCount)
|
||||
|
||||
if adminCount == 0 {
|
||||
randUri := uuid.New()
|
||||
v1.POST("/"+randUri.String(), core.StarterAdmin())
|
||||
|
||||
fmt.Println("#################")
|
||||
fmt.Println("No admins and AllowFreshAdminGeneration=TRUE")
|
||||
fmt.Println("Sign up starter at: /" + randUri.String())
|
||||
fmt.Println("#################")
|
||||
r.POST("/"+randUri.String(), core.StarterAdmin())
|
||||
}
|
||||
}
|
||||
|
||||
v1 := r.Group("/v1")
|
||||
|
||||
// Ping functionality
|
||||
v1.GET("/doot", core.Doot())
|
||||
|
||||
// Standard user signup, verify, login and forgot/reset pw
|
||||
v1.POST("/signup", core.UserSignup())
|
||||
v1.POST("/login", core.UserLogin())
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package models
|
||||
|
||||
import (
|
||||
"encoding/base32"
|
||||
"errors"
|
||||
"strings"
|
||||
"time"
|
||||
@@ -88,5 +89,6 @@ func (a *Auth) ValidateTwoFactor(tfCode string, stamp time.Time) error {
|
||||
}
|
||||
|
||||
func (a *Auth) GenerateNewTwoFactorSecret() {
|
||||
a.TwoFactorSecret = string(util.GenerateHmac(20))
|
||||
secretBytes := util.GenerateHmac(20)
|
||||
a.TwoFactorSecret = base32.StdEncoding.EncodeToString(secretBytes)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user