Skip to content

Commit

Permalink
refactor(user): Remove password from user response and get rid of red…
Browse files Browse the repository at this point in the history
…undant structs

Signed-off-by: deo002 <[email protected]>
  • Loading branch information
deo002 committed Jul 29, 2024
1 parent 8c96990 commit fb1e5aa
Show file tree
Hide file tree
Showing 6 changed files with 14 additions and 36 deletions.
10 changes: 4 additions & 6 deletions cmd/laas/docs/docs.go
Original file line number Diff line number Diff line change
Expand Up @@ -2563,7 +2563,6 @@ const docTemplate = `{
"models.User": {
"type": "object",
"required": [
"password",
"userlevel",
"username"
],
Expand All @@ -2572,9 +2571,6 @@ const docTemplate = `{
"type": "integer",
"example": 123
},
"password": {
"type": "string"
},
"userlevel": {
"type": "string",
"example": "admin"
Expand All @@ -2594,7 +2590,8 @@ const docTemplate = `{
],
"properties": {
"password": {
"type": "string"
"type": "string",
"example": "fossy"
},
"userlevel": {
"type": "string",
Expand All @@ -2614,7 +2611,8 @@ const docTemplate = `{
],
"properties": {
"password": {
"type": "string"
"type": "string",
"example": "fossy"
},
"username": {
"type": "string",
Expand Down
10 changes: 4 additions & 6 deletions cmd/laas/docs/swagger.json
Original file line number Diff line number Diff line change
Expand Up @@ -2556,7 +2556,6 @@
"models.User": {
"type": "object",
"required": [
"password",
"userlevel",
"username"
],
Expand All @@ -2565,9 +2564,6 @@
"type": "integer",
"example": 123
},
"password": {
"type": "string"
},
"userlevel": {
"type": "string",
"example": "admin"
Expand All @@ -2587,7 +2583,8 @@
],
"properties": {
"password": {
"type": "string"
"type": "string",
"example": "fossy"
},
"userlevel": {
"type": "string",
Expand All @@ -2607,7 +2604,8 @@
],
"properties": {
"password": {
"type": "string"
"type": "string",
"example": "fossy"
},
"username": {
"type": "string",
Expand Down
5 changes: 2 additions & 3 deletions cmd/laas/docs/swagger.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -701,22 +701,20 @@ definitions:
id:
example: 123
type: integer
password:
type: string
userlevel:
example: admin
type: string
username:
example: fossy
type: string
required:
- password
- userlevel
- username
type: object
models.UserInput:
properties:
password:
example: fossy
type: string
userlevel:
example: admin
Expand All @@ -732,6 +730,7 @@ definitions:
models.UserLogin:
properties:
password:
example: fossy
type: string
username:
example: fossy
Expand Down
4 changes: 0 additions & 4 deletions pkg/api/licenses.go
Original file line number Diff line number Diff line change
Expand Up @@ -561,10 +561,6 @@ func UpdateLicense(c *gin.Context) {
// addChangelogsForLicenseUpdate adds changelogs for the updated fields on license update
func addChangelogsForLicenseUpdate(tx *gorm.DB, username string,
newLicense, oldLicense *models.LicenseDB) error {
var user models.User
if err := tx.Where(models.User{Username: username}).First(&user).Error; err != nil {
return err
}
var changes []models.ChangeLog

if oldLicense.Fullname != newLicense.Fullname {
Expand Down
8 changes: 1 addition & 7 deletions pkg/auth/auth.go
Original file line number Diff line number Diff line change
Expand Up @@ -311,14 +311,8 @@ func generateToken(user models.User) (string, error) {
return "", err
}

jwtUser := models.JWTUser{
Id: user.Id,
Username: user.Username,
Userlevel: user.Userlevel,
}

claims := jwt.MapClaims{}
claims["user"] = jwtUser
claims["user"] = user
claims["nbf"] = time.Now().Unix()
claims["exp"] = time.Now().Add(time.Hour * time.Duration(tokenLifespan)).Unix()
token := jwt.NewWithClaims(jwt.SigningMethodHS256, claims)
Expand Down
13 changes: 3 additions & 10 deletions pkg/models/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -256,25 +256,18 @@ type User struct {
Id int64 `json:"id" gorm:"primary_key" example:"123"`
Username string `json:"username" gorm:"unique;not null" binding:"required" example:"fossy"`
Userlevel string `json:"userlevel" binding:"required" example:"admin"`
Userpassword *string `json:"password,omitempty" binding:"required"`
}

// JWTUser struct is representation of user information in JWT.
type JWTUser struct {
Id int64 `json:"id"`
Username string `json:"username"`
Userlevel string `json:"userlevel"`
Userpassword *string `json:"-"`
}

type UserInput struct {
Username string `json:"username" gorm:"unique;not null" binding:"required" example:"fossy"`
Userlevel string `json:"userlevel" binding:"required" example:"admin"`
Userpassword *string `json:"password,omitempty" binding:"required"`
Userpassword *string `json:"password,omitempty" binding:"required" example:"fossy"`
}

type UserLogin struct {
Username string `json:"username" binding:"required" example:"fossy"`
Userpassword string `json:"password" binding:"required"`
Userpassword string `json:"password" binding:"required" example:"fossy"`
}

// UserResponse struct is representation of design API response of user.
Expand Down

0 comments on commit fb1e5aa

Please sign in to comment.