diff --git a/kernel/conf/user.go b/kernel/conf/user.go index 06216501e..2c1e8f2de 100644 --- a/kernel/conf/user.go +++ b/kernel/conf/user.go @@ -17,28 +17,29 @@ package conf type User struct { - UserId string `json:"userId"` - UserName string `json:"userName"` - UserAvatarURL string `json:"userAvatarURL"` - UserHomeBImgURL string `json:"userHomeBImgURL"` - UserTitles []*UserTitle `json:"userTitles"` - UserIntro string `json:"userIntro"` - UserNickname string `json:"userNickname"` - UserCreateTime string `json:"userCreateTime"` - UserSiYuanProExpireTime float64 `json:"userSiYuanProExpireTime"` - UserToken string `json:"userToken"` - UserTokenExpireTime string `json:"userTokenExpireTime"` - UserSiYuanRepoSize float64 `json:"userSiYuanRepoSize"` - UserSiYuanPointExchangeRepoSize float64 `json:"userSiYuanPointExchangeRepoSize"` - UserSiYuanAssetSize float64 `json:"userSiYuanAssetSize"` - UserTrafficUpload float64 `json:"userTrafficUpload"` - UserTrafficDownload float64 `json:"userTrafficDownload"` - UserTrafficAPIGet float64 `json:"userTrafficAPIGet"` - UserTrafficAPIPut float64 `json:"userTrafficAPIPut"` - UserTrafficTime float64 `json:"userTrafficTime"` - UserSiYuanSubscriptionPlan float64 `json:"userSiYuanSubscriptionPlan"` // -1:未订阅,0:标准订阅,1:教育订阅,2:试用 - UserSiYuanSubscriptionStatus float64 `json:"userSiYuanSubscriptionStatus"` // -1:未订阅,0:订阅可用,1:订阅封禁,2:订阅过期 - UserSiYuanSubscriptionType float64 `json:"userSiYuanSubscriptionType"` // 0 年付;1 终生;2 月付 + UserId string `json:"userId"` + UserName string `json:"userName"` + UserAvatarURL string `json:"userAvatarURL"` + UserHomeBImgURL string `json:"userHomeBImgURL"` + UserTitles []*UserTitle `json:"userTitles"` + UserIntro string `json:"userIntro"` + UserNickname string `json:"userNickname"` + UserCreateTime string `json:"userCreateTime"` + UserSiYuanProExpireTime float64 `json:"userSiYuanProExpireTime"` + UserToken string `json:"userToken"` + UserTokenExpireTime string `json:"userTokenExpireTime"` + UserSiYuanRepoSize float64 `json:"userSiYuanRepoSize"` + UserSiYuanPointExchangeRepoSize float64 `json:"userSiYuanPointExchangeRepoSize"` + UserSiYuanAssetSize float64 `json:"userSiYuanAssetSize"` + UserTrafficUpload float64 `json:"userTrafficUpload"` + UserTrafficDownload float64 `json:"userTrafficDownload"` + UserTrafficAPIGet float64 `json:"userTrafficAPIGet"` + UserTrafficAPIPut float64 `json:"userTrafficAPIPut"` + UserTrafficTime float64 `json:"userTrafficTime"` + UserSiYuanSubscriptionPlan float64 `json:"userSiYuanSubscriptionPlan"` // -1:未订阅,0:标准订阅,1:教育订阅,2:试用 + UserSiYuanSubscriptionStatus float64 `json:"userSiYuanSubscriptionStatus"` // -1:未订阅,0:订阅可用,1:订阅封禁,2:订阅过期 + UserSiYuanSubscriptionType float64 `json:"userSiYuanSubscriptionType"` // 0 年付;1 终生;2 月付 + UserSiYuanThirdPartySyncPayStatus float64 `json:"UserSiYuanThirdPartySyncPayStatus"` // 0 未付费;1 已付费 } type UserTitle struct { diff --git a/kernel/model/conf.go b/kernel/model/conf.go index 81c94ffe8..2f2c43f35 100644 --- a/kernel/model/conf.go +++ b/kernel/model/conf.go @@ -714,6 +714,15 @@ func IsSubscriber() bool { return nil != Conf.User && (-1 == Conf.User.UserSiYuanProExpireTime || 0 < Conf.User.UserSiYuanProExpireTime) && 0 == Conf.User.UserSiYuanSubscriptionStatus } +func IsThirdPartySyncPaid() bool { + if IsSubscriber() { + return true + } + return nil != Conf.User // Sign in to use S3/WebDAV data sync https://github.com/siyuan-note/siyuan/issues/8779 + // TODO https://github.com/siyuan-note/siyuan/issues/8780 + // return nil != Conf.User && 1 == Conf.User.UserSiYuanThirdPartySyncPayStatus +} + const ( MaskedUserData = "" MaskedAccessAuthCode = "*******" diff --git a/kernel/model/sync.go b/kernel/model/sync.go index b82f363e8..8ab657f08 100644 --- a/kernel/model/sync.go +++ b/kernel/model/sync.go @@ -229,8 +229,19 @@ func checkSync(boot, exit, byHand bool) bool { return false } - if !IsSubscriber() && conf.ProviderSiYuan == Conf.Sync.Provider { - return false + switch Conf.Sync.Provider { + case conf.ProviderSiYuan: + if !IsSubscriber() { + return false + } + case conf.ProviderWebDAV: + if !IsThirdPartySyncPaid() { + return false + } + case conf.ProviderS3: + if !IsThirdPartySyncPaid() { + return false + } } if util.IsMutexLocked(&syncLock) {