diff --git a/object/token_jwt.go b/object/token_jwt.go index 4a5785a2..13961643 100644 --- a/object/token_jwt.go +++ b/object/token_jwt.go @@ -26,7 +26,7 @@ type Claims struct { *User TokenType string `json:"tokenType,omitempty"` Nonce string `json:"nonce,omitempty"` - Tag string `json:"tag,omitempty"` + Tag string `json:"tag"` Scope string `json:"scope,omitempty"` jwt.RegisteredClaims } @@ -37,56 +37,90 @@ type UserShort struct { } type UserWithoutThirdIdp struct { - Owner string `xorm:"varchar(100) notnull pk" json:"owner"` - Name string `xorm:"varchar(100) notnull pk" json:"name"` - CreatedTime string `xorm:"varchar(100)" json:"createdTime"` - UpdatedTime string `xorm:"varchar(100)" json:"updatedTime"` - Id string `xorm:"varchar(100) index" json:"id"` - Type string `xorm:"varchar(100)" json:"type"` - Password string `xorm:"varchar(100)" json:"password"` - PasswordSalt string `xorm:"varchar(100)" json:"passwordSalt"` - DisplayName string `xorm:"varchar(100)" json:"displayName"` - FirstName string `xorm:"varchar(100)" json:"firstName"` - LastName string `xorm:"varchar(100)" json:"lastName"` - Avatar string `xorm:"varchar(500)" json:"avatar"` - PermanentAvatar string `xorm:"varchar(500)" json:"permanentAvatar"` - Email string `xorm:"varchar(100) index" json:"email"` - EmailVerified bool `json:"emailVerified"` - Phone string `xorm:"varchar(100) index" json:"phone"` - Location string `xorm:"varchar(100)" json:"location"` - Address []string `json:"address"` - Affiliation string `xorm:"varchar(100)" json:"affiliation"` - Title string `xorm:"varchar(100)" json:"title"` - IdCardType string `xorm:"varchar(100)" json:"idCardType"` - IdCard string `xorm:"varchar(100) index" json:"idCard"` - Homepage string `xorm:"varchar(100)" json:"homepage"` - Bio string `xorm:"varchar(100)" json:"bio"` - Tag string `xorm:"varchar(100)" json:"tag"` - Region string `xorm:"varchar(100)" json:"region"` - Language string `xorm:"varchar(100)" json:"language"` - Gender string `xorm:"varchar(100)" json:"gender"` - Birthday string `xorm:"varchar(100)" json:"birthday"` - Education string `xorm:"varchar(100)" json:"education"` - Score int `json:"score"` - Karma int `json:"karma"` - Ranking int `json:"ranking"` - IsDefaultAvatar bool `json:"isDefaultAvatar"` - IsOnline bool `json:"isOnline"` - IsAdmin bool `json:"isAdmin"` - IsForbidden bool `json:"isForbidden"` - IsDeleted bool `json:"isDeleted"` - SignupApplication string `xorm:"varchar(100)" json:"signupApplication"` - Hash string `xorm:"varchar(100)" json:"hash"` - PreHash string `xorm:"varchar(100)" json:"preHash"` - CreatedIp string `xorm:"varchar(100)" json:"createdIp"` - LastSigninTime string `xorm:"varchar(100)" json:"lastSigninTime"` - LastSigninIp string `xorm:"varchar(100)" json:"lastSigninIp"` - Ldap string `xorm:"ldap varchar(100)" json:"ldap"` - Properties map[string]string `json:"properties"` - Roles []*Role `xorm:"-" json:"roles"` - Permissions []*Permission `xorm:"-" json:"permissions"` - LastSigninWrongTime string `xorm:"varchar(100)" json:"lastSigninWrongTime"` - SigninWrongTimes int `json:"signinWrongTimes"` + Owner string `xorm:"varchar(100) notnull pk" json:"owner"` + Name string `xorm:"varchar(100) notnull pk" json:"name"` + CreatedTime string `xorm:"varchar(100) index" json:"createdTime"` + UpdatedTime string `xorm:"varchar(100)" json:"updatedTime"` + + Id string `xorm:"varchar(100) index" json:"id"` + Type string `xorm:"varchar(100)" json:"type"` + Password string `xorm:"varchar(100)" json:"password"` + PasswordSalt string `xorm:"varchar(100)" json:"passwordSalt"` + PasswordType string `xorm:"varchar(100)" json:"passwordType"` + DisplayName string `xorm:"varchar(100)" json:"displayName"` + FirstName string `xorm:"varchar(100)" json:"firstName"` + LastName string `xorm:"varchar(100)" json:"lastName"` + Avatar string `xorm:"varchar(500)" json:"avatar"` + AvatarType string `xorm:"varchar(100)" json:"avatarType"` + PermanentAvatar string `xorm:"varchar(500)" json:"permanentAvatar"` + Email string `xorm:"varchar(100) index" json:"email"` + EmailVerified bool `json:"emailVerified"` + Phone string `xorm:"varchar(20) index" json:"phone"` + CountryCode string `xorm:"varchar(6)" json:"countryCode"` + Region string `xorm:"varchar(100)" json:"region"` + Location string `xorm:"varchar(100)" json:"location"` + Address []string `json:"address"` + Affiliation string `xorm:"varchar(100)" json:"affiliation"` + Title string `xorm:"varchar(100)" json:"title"` + IdCardType string `xorm:"varchar(100)" json:"idCardType"` + IdCard string `xorm:"varchar(100) index" json:"idCard"` + Homepage string `xorm:"varchar(100)" json:"homepage"` + Bio string `xorm:"varchar(100)" json:"bio"` + Tag string `xorm:"varchar(100)" json:"tag"` + Language string `xorm:"varchar(100)" json:"language"` + Gender string `xorm:"varchar(100)" json:"gender"` + Birthday string `xorm:"varchar(100)" json:"birthday"` + Education string `xorm:"varchar(100)" json:"education"` + Score int `json:"score"` + Karma int `json:"karma"` + Ranking int `json:"ranking"` + IsDefaultAvatar bool `json:"isDefaultAvatar"` + IsOnline bool `json:"isOnline"` + IsAdmin bool `json:"isAdmin"` + IsForbidden bool `json:"isForbidden"` + IsDeleted bool `json:"isDeleted"` + SignupApplication string `xorm:"varchar(100)" json:"signupApplication"` + Hash string `xorm:"varchar(100)" json:"hash"` + PreHash string `xorm:"varchar(100)" json:"preHash"` + AccessKey string `xorm:"varchar(100)" json:"accessKey"` + AccessSecret string `xorm:"varchar(100)" json:"accessSecret"` + + GitHub string `xorm:"github varchar(100)" json:"github"` + Google string `xorm:"varchar(100)" json:"google"` + QQ string `xorm:"qq varchar(100)" json:"qq"` + WeChat string `xorm:"wechat varchar(100)" json:"wechat"` + Facebook string `xorm:"facebook varchar(100)" json:"facebook"` + DingTalk string `xorm:"dingtalk varchar(100)" json:"dingtalk"` + Weibo string `xorm:"weibo varchar(100)" json:"weibo"` + Gitee string `xorm:"gitee varchar(100)" json:"gitee"` + LinkedIn string `xorm:"linkedin varchar(100)" json:"linkedin"` + Wecom string `xorm:"wecom varchar(100)" json:"wecom"` + Lark string `xorm:"lark varchar(100)" json:"lark"` + Gitlab string `xorm:"gitlab varchar(100)" json:"gitlab"` + + CreatedIp string `xorm:"varchar(100)" json:"createdIp"` + LastSigninTime string `xorm:"varchar(100)" json:"lastSigninTime"` + LastSigninIp string `xorm:"varchar(100)" json:"lastSigninIp"` + + // WebauthnCredentials []webauthn.Credential `xorm:"webauthnCredentials blob" json:"webauthnCredentials"` + PreferredMfaType string `xorm:"varchar(100)" json:"preferredMfaType"` + RecoveryCodes []string `xorm:"varchar(1000)" json:"recoveryCodes"` + TotpSecret string `xorm:"varchar(100)" json:"totpSecret"` + MfaPhoneEnabled bool `json:"mfaPhoneEnabled"` + MfaEmailEnabled bool `json:"mfaEmailEnabled"` + // MultiFactorAuths []*MfaProps `xorm:"-" json:"multiFactorAuths,omitempty"` + + Ldap string `xorm:"ldap varchar(100)" json:"ldap"` + Properties map[string]string `json:"properties"` + + Roles []*Role `json:"roles"` + Permissions []*Permission `json:"permissions"` + Groups []string `xorm:"groups varchar(1000)" json:"groups"` + + LastSigninWrongTime string `xorm:"varchar(100)" json:"lastSigninWrongTime"` + SigninWrongTimes int `json:"signinWrongTimes"` + + // ManagedAccounts []ManagedAccount `xorm:"managedAccounts blob" json:"managedAccounts"` } type ClaimsShort struct { @@ -101,7 +135,7 @@ type ClaimsWithoutThirdIdp struct { *UserWithoutThirdIdp TokenType string `json:"tokenType,omitempty"` Nonce string `json:"nonce,omitempty"` - Tag string `json:"tag,omitempty"` + Tag string `json:"tag"` Scope string `json:"scope,omitempty"` jwt.RegisteredClaims } @@ -125,14 +159,18 @@ func getUserWithoutThirdIdp(user *User) *UserWithoutThirdIdp { Type: user.Type, Password: user.Password, PasswordSalt: user.PasswordSalt, + PasswordType: user.PasswordType, DisplayName: user.DisplayName, FirstName: user.FirstName, LastName: user.LastName, Avatar: user.Avatar, + AvatarType: user.AvatarType, PermanentAvatar: user.PermanentAvatar, Email: user.Email, EmailVerified: user.EmailVerified, Phone: user.Phone, + CountryCode: user.CountryCode, + Region: user.Region, Location: user.Location, Address: user.Address, Affiliation: user.Affiliation, @@ -142,7 +180,6 @@ func getUserWithoutThirdIdp(user *User) *UserWithoutThirdIdp { Homepage: user.Homepage, Bio: user.Bio, Tag: user.Tag, - Region: user.Region, Language: user.Language, Gender: user.Gender, Birthday: user.Birthday, @@ -158,16 +195,38 @@ func getUserWithoutThirdIdp(user *User) *UserWithoutThirdIdp { SignupApplication: user.SignupApplication, Hash: user.Hash, PreHash: user.PreHash, + AccessKey: user.AccessKey, + AccessSecret: user.AccessSecret, + + GitHub: user.GitHub, + Google: user.Google, + QQ: user.QQ, + WeChat: user.WeChat, + Facebook: user.Facebook, + DingTalk: user.DingTalk, + Weibo: user.Weibo, + Gitee: user.Gitee, + LinkedIn: user.LinkedIn, + Wecom: user.Wecom, + Lark: user.Lark, + Gitlab: user.Gitlab, CreatedIp: user.CreatedIp, LastSigninTime: user.LastSigninTime, LastSigninIp: user.LastSigninIp, + PreferredMfaType: user.PreferredMfaType, + RecoveryCodes: user.RecoveryCodes, + TotpSecret: user.TotpSecret, + MfaPhoneEnabled: user.MfaPhoneEnabled, + MfaEmailEnabled: user.MfaEmailEnabled, + Ldap: user.Ldap, Properties: user.Properties, Roles: user.Roles, Permissions: user.Permissions, + Groups: user.Groups, LastSigninWrongTime: user.LastSigninWrongTime, SigninWrongTimes: user.SigninWrongTimes,