diff --git a/controller/user.go b/controller/user.go index bf8a2a2..2810aaf 100644 --- a/controller/user.go +++ b/controller/user.go @@ -311,7 +311,7 @@ func GenerateAccessToken(c *gin.Context) { }) return } - user.AccessToken = common.GetUUID() + user.SetAccessToken(common.GetUUID()) if model.DB.Where("access_token = ?", user.AccessToken).First(user).RowsAffected != 0 { c.JSON(http.StatusOK, gin.H{ diff --git a/model/main.go b/model/main.go index 01eb6c9..6fe4e81 100644 --- a/model/main.go +++ b/model/main.go @@ -32,7 +32,7 @@ func createRootAccountIfNeed() error { Role: common.RoleRootUser, Status: common.UserStatusEnabled, DisplayName: "Root User", - AccessToken: common.GetUUID(), + AccessToken: nil, Quota: 100000000, } DB.Create(&rootUser) diff --git a/model/user.go b/model/user.go index 6d3b2b2..1905d89 100644 --- a/model/user.go +++ b/model/user.go @@ -25,7 +25,7 @@ type User struct { WeChatId string `json:"wechat_id" gorm:"column:wechat_id;index"` TelegramId string `json:"telegram_id" gorm:"column:telegram_id;index"` VerificationCode string `json:"verification_code" gorm:"-:all"` // this field is only for Email verification, don't save it to database! - AccessToken string `json:"access_token" gorm:"type:char(32);column:access_token;uniqueIndex"` // this token is for system management + AccessToken *string `json:"access_token" gorm:"type:char(32);column:access_token;uniqueIndex"` // this token is for system management Quota int `json:"quota" gorm:"type:int;default:0"` UsedQuota int `json:"used_quota" gorm:"type:int;default:0;column:used_quota"` // used quota RequestCount int `json:"request_count" gorm:"type:int;default:0;"` // request number @@ -38,6 +38,17 @@ type User struct { DeletedAt gorm.DeletedAt `gorm:"index"` } +func (user *User) GetAccessToken() string { + if user.AccessToken == nil { + return "" + } + return *user.AccessToken +} + +func (user *User) SetAccessToken(token string) { + user.AccessToken = &token +} + // CheckUserExistOrDeleted check if user exist or deleted, if not exist, return false, nil, if deleted or exist, return true, nil func CheckUserExistOrDeleted(username string, email string) (bool, error) { var user User @@ -201,7 +212,7 @@ func (user *User) Insert(inviterId int) error { } } user.Quota = common.QuotaForNewUser - user.AccessToken = common.GetUUID() + //user.SetAccessToken(common.GetUUID()) user.AffCode = common.GetRandomString(4) result := DB.Create(user) if result.Error != nil {