update
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2023-04-04 08:31:22 +10:00
parent ab60f8796a
commit 1c419454a2
3 changed files with 19 additions and 10 deletions

2
.gitignore vendored
View File

@@ -1,6 +1,8 @@
api\ tests.txt
ccsecrets
ccsecrets.*
smt
smt.*
.env
*.pem
.DS_Store

View File

@@ -14,6 +14,7 @@ func JwtAuthMiddleware() gin.HandlerFunc {
return func(c *gin.Context) {
err := token.TokenValid(c)
if err != nil {
log.Printf("JwtAuthMiddleware token is not valid : '%s'\n", err)
c.String(http.StatusUnauthorized, "Unauthorized")
c.Abort()
return
@@ -25,10 +26,9 @@ func JwtAuthMiddleware() gin.HandlerFunc {
func JwtAuthAdminMiddleware() gin.HandlerFunc {
return func(c *gin.Context) {
// TODO - also verify user role of admin
err := token.TokenValid(c)
if err != nil {
log.Printf("JwtAuthAdminMiddleware token is not valid : '%s'\n", err)
c.String(http.StatusUnauthorized, "Unauthorized")
c.Abort()
return
@@ -38,6 +38,7 @@ func JwtAuthAdminMiddleware() gin.HandlerFunc {
user_id, err := token.ExtractTokenID(c)
if err != nil {
log.Printf("JwtAuthAdminMiddleware could not extract user ID from context : '%s'\n", err)
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
c.Abort()
return
@@ -52,6 +53,7 @@ func JwtAuthAdminMiddleware() gin.HandlerFunc {
}
log.Printf("JwtAuthAdminMiddleware retrieved UserRole object '%v'\n", ur)
// Verify that the user has a role with the admin flag set
if !ur.Admin {
c.String(http.StatusUnauthorized, "User role is Non-Admin")
c.Abort()

View File

@@ -29,16 +29,21 @@ func (u *User) SaveUser() (*User, error) {
var err error
// TODO - validate username not already in use
result, err := db.NamedExec((`INSERT INTO users (RoleId, UserName, Password) VALUES (:RoleId, :UserName, :Password)`), u)
_, err = GetUserByName(u.UserName)
if err != nil {
log.Printf("SaveUser error executing sql record : '%s'\n", err)
return &User{}, err
log.Printf("SaveUser Username already exists : '%v'\n", err)
} else {
affected, _ := result.RowsAffected()
id, _ := result.LastInsertId()
log.Printf("SaveUser insert returned result id '%d' affecting %d row(s).\n", id, affected)
log.Printf("SaveUser confirmed no existing user, continuing with creation of user '%s'\n", u.UserName)
result, err := db.NamedExec((`INSERT INTO users (RoleId, UserName, Password) VALUES (:RoleId, :UserName, :Password)`), u)
if err != nil {
log.Printf("SaveUser error executing sql record : '%s'\n", err)
return &User{}, err
} else {
affected, _ := result.RowsAffected()
id, _ := result.LastInsertId()
log.Printf("SaveUser insert returned result id '%d' affecting %d row(s).\n", id, affected)
}
}
return u, nil