diff --git a/app/src/protyle/hint/extend.ts b/app/src/protyle/hint/extend.ts
index d7a34d477..c7941307e 100644
--- a/app/src/protyle/hint/extend.ts
+++ b/app/src/protyle/hint/extend.ts
@@ -20,7 +20,7 @@ import {hideElements} from "../ui/hideElements";
import {genAssetHTML} from "../../asset/renderAssets";
import {unicode2Emoji} from "../../emoji";
import {avRender} from "../render/av/render";
-import {needSubscribe} from "../../util/needSubscribe";
+import {isPaidUser} from "../../util/needSubscribe";
export const hintSlash = (key: string, protyle: IProtyle) => {
const allList: IHintData[] = [{
@@ -48,7 +48,7 @@ export const hintSlash = (key: string, protyle: IProtyle) => {
value: Constants.ZWSP + 5,
html: '
AI Chat
',
}]
- if (!needSubscribe("")) {
+ if (isPaidUser()) {
allList.push({
filter: ["数据库", "属性视图", "shujuku", "shuxingshitu", "sjk", "sxst", "database", "attribute view"],
value: '',
diff --git a/app/src/util/needSubscribe.ts b/app/src/util/needSubscribe.ts
index a7ff60f55..290481292 100644
--- a/app/src/util/needSubscribe.ts
+++ b/app/src/util/needSubscribe.ts
@@ -12,7 +12,8 @@ export const needLogin = (tip = window.siyuan.languages.needLogin) => {
};
export const needSubscribe = (tip = window.siyuan.languages._kernel[29]) => {
- if (window.siyuan.user && (window.siyuan.user.userSiYuanProExpireTime === -1 || window.siyuan.user.userSiYuanProExpireTime > 0)) {
+ if (window.siyuan.user && (window.siyuan.user.userSiYuanProExpireTime === -1 || window.siyuan.user.userSiYuanProExpireTime > 0) ||
+ window.siyuan.user.userSiYuanOneTimePayStatus === 1) {
return false;
}
if (tip) {
@@ -27,3 +28,7 @@ export const needSubscribe = (tip = window.siyuan.languages._kernel[29]) => {
}
return true;
};
+
+export const isPaidUser = () => {
+ return 0 === window.siyuan.user.userSiYuanSubscriptionStatus || 1 === window.siyuan.user.userSiYuanOneTimePayStatus;
+}
diff --git a/kernel/model/conf.go b/kernel/model/conf.go
index 565275436..f3c747e0c 100644
--- a/kernel/model/conf.go
+++ b/kernel/model/conf.go
@@ -714,12 +714,12 @@ func IsSubscriber() bool {
return nil != Conf.User && (-1 == Conf.User.UserSiYuanProExpireTime || 0 < Conf.User.UserSiYuanProExpireTime) && 0 == Conf.User.UserSiYuanSubscriptionStatus
}
-func IsOneTimePaid() bool {
+func IsPaidUser() 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
+ // TODO S3/WebDAV data sync and backup are available for a fee https://github.com/siyuan-note/siyuan/issues/8780
// return nil != Conf.User && 1 == Conf.User.UserSiYuanOneTimePayStatus
}
diff --git a/kernel/model/repository.go b/kernel/model/repository.go
index a1bc7a972..c22e6bcb2 100644
--- a/kernel/model/repository.go
+++ b/kernel/model/repository.go
@@ -634,7 +634,7 @@ func DownloadCloudSnapshot(tag, id string) (err error) {
return
}
case conf.ProviderWebDAV, conf.ProviderS3:
- if !IsOneTimePaid() {
+ if !IsPaidUser() {
util.PushErrMsg(Conf.Language(214), 5000)
return
}
@@ -676,7 +676,7 @@ func UploadCloudSnapshot(tag, id string) (err error) {
return
}
case conf.ProviderWebDAV, conf.ProviderS3:
- if !IsOneTimePaid() {
+ if !IsPaidUser() {
util.PushErrMsg(Conf.Language(214), 5000)
return
}
@@ -722,7 +722,7 @@ func RemoveCloudRepoTag(tag string) (err error) {
return
}
case conf.ProviderWebDAV, conf.ProviderS3:
- if !IsOneTimePaid() {
+ if !IsPaidUser() {
util.PushErrMsg(Conf.Language(214), 5000)
return
}
@@ -754,7 +754,7 @@ func GetCloudRepoTagSnapshots() (ret []*dejavu.Log, err error) {
return
}
case conf.ProviderWebDAV, conf.ProviderS3:
- if !IsOneTimePaid() {
+ if !IsPaidUser() {
util.PushErrMsg(Conf.Language(214), 5000)
return
}
@@ -790,7 +790,7 @@ func GetCloudRepoSnapshots(page int) (ret []*dejavu.Log, pageCount, totalCount i
return
}
case conf.ProviderWebDAV, conf.ProviderS3:
- if !IsOneTimePaid() {
+ if !IsPaidUser() {
util.PushErrMsg(Conf.Language(214), 5000)
return
}
diff --git a/kernel/model/sync.go b/kernel/model/sync.go
index 75103bf72..b2af51ea5 100644
--- a/kernel/model/sync.go
+++ b/kernel/model/sync.go
@@ -235,7 +235,7 @@ func checkSync(boot, exit, byHand bool) bool {
return false
}
case conf.ProviderWebDAV, conf.ProviderS3:
- if !IsOneTimePaid() {
+ if !IsPaidUser() {
return false
}
}