feat(subscription): enable observation mode
This commit is contained in:
@@ -189,6 +189,7 @@ def main() -> int:
|
||||
if runtime_lease is not None:
|
||||
app.aboutToQuit.connect(runtime_lease.release)
|
||||
window.show()
|
||||
QTimer.singleShot(0, window.begin_subscription_check)
|
||||
QTimer.singleShot(
|
||||
0,
|
||||
lambda: update_health.write_health(health_context, "main_window_ready"),
|
||||
|
||||
+34
-8
@@ -20,8 +20,9 @@ from .workers import SubscriptionCheckWorker
|
||||
PREFERRED_WINDOW_SIZE = (1180, 760)
|
||||
MIN_WINDOW_SIZE = (960, 640)
|
||||
WINDOW_SCREEN_MARGIN = 40
|
||||
# 订阅服务仍在联调期,暂不让客户端检查或限制本地工作流。
|
||||
SUBSCRIPTION_CHECK_ENABLED = False
|
||||
# 观察期真实查询会员状态,但不在客户端限制存量用户工作流。
|
||||
SUBSCRIPTION_CHECK_ENABLED = True
|
||||
SUBSCRIPTION_ENFORCEMENT_ENABLED = False
|
||||
|
||||
|
||||
def _screen_available_geometry():
|
||||
@@ -239,6 +240,7 @@ class MainWindow(QMainWindow):
|
||||
widget.refresh_gateway_state()
|
||||
label = "自定义网关" if str(backend) == "direct" else "默认网关"
|
||||
self.show_status("设置已保存,当前使用%s" % label, level="success")
|
||||
self.begin_subscription_check()
|
||||
|
||||
@property
|
||||
def subscription_status(self):
|
||||
@@ -255,7 +257,7 @@ class MainWindow(QMainWindow):
|
||||
token = self._subscription_request_token
|
||||
if self._subscription_worker is not None:
|
||||
self._subscription_worker.cancel()
|
||||
self._set_product_access(False)
|
||||
self._set_product_access(not SUBSCRIPTION_ENFORCEMENT_ENABLED)
|
||||
self._set_subscription_label("会员:正在验证", "info")
|
||||
worker = SubscriptionCheckWorker(
|
||||
config=self.config,
|
||||
@@ -282,7 +284,7 @@ class MainWindow(QMainWindow):
|
||||
def ensure_subscription_for_new_submit(self, action_name="生成"):
|
||||
"""Return whether a new product request may start from the current UI."""
|
||||
|
||||
if not SUBSCRIPTION_CHECK_ENABLED:
|
||||
if not SUBSCRIPTION_CHECK_ENABLED or not SUBSCRIPTION_ENFORCEMENT_ENABLED:
|
||||
return True
|
||||
status = self._subscription_status
|
||||
if status.allows_product_workflows:
|
||||
@@ -322,16 +324,40 @@ class MainWindow(QMainWindow):
|
||||
"%s · %s · 宽限至%s" % (status.account_name, status.plan_name, expiry),
|
||||
"warning",
|
||||
)
|
||||
elif SUBSCRIPTION_ENFORCEMENT_ENABLED:
|
||||
self._set_subscription_label(
|
||||
"会员:%s" % status.user_message,
|
||||
self._subscription_level(status),
|
||||
)
|
||||
else:
|
||||
self._set_subscription_label("会员:%s" % status.user_message, self._subscription_level(status))
|
||||
self._set_subscription_label(
|
||||
"会员观察:%s(当前不影响使用)" % status.user_message,
|
||||
self._subscription_level(status),
|
||||
)
|
||||
|
||||
self._set_product_access(status.allows_product_workflows)
|
||||
access_allowed = (
|
||||
status.allows_product_workflows
|
||||
or not SUBSCRIPTION_ENFORCEMENT_ENABLED
|
||||
)
|
||||
self._set_product_access(access_allowed)
|
||||
if status.allows_product_workflows:
|
||||
if status.state == subscription.STATUS_LEGACY:
|
||||
self.show_status(status.user_message, level="muted")
|
||||
else:
|
||||
self.show_status("会员状态已验证", level="success")
|
||||
self._show_subscription_notice_once(status)
|
||||
message = (
|
||||
"会员状态已验证"
|
||||
if SUBSCRIPTION_ENFORCEMENT_ENABLED
|
||||
else "会员状态已验证,当前处于观察模式"
|
||||
)
|
||||
self.show_status(message, level="success")
|
||||
if SUBSCRIPTION_ENFORCEMENT_ENABLED:
|
||||
self._show_subscription_notice_once(status)
|
||||
return
|
||||
if not SUBSCRIPTION_ENFORCEMENT_ENABLED:
|
||||
self.show_status(
|
||||
"订阅观察:%s,当前不影响使用" % status.user_message,
|
||||
level=self._subscription_level(status),
|
||||
)
|
||||
return
|
||||
self.open_settings_tab()
|
||||
self.show_status(status.user_message, level=self._subscription_level(status))
|
||||
|
||||
Reference in New Issue
Block a user