|
@@ -1,4 +1,6 @@
|
|
|
# -*- coding:utf-8 -*-
|
|
|
+import os
|
|
|
+
|
|
|
from flask_restful import fields, marshal_with
|
|
|
from werkzeug.exceptions import Forbidden
|
|
|
|
|
@@ -6,6 +8,7 @@ from controllers.web import api
|
|
|
from controllers.web.wraps import WebApiResource
|
|
|
from extensions.ext_database import db
|
|
|
from models.model import Site
|
|
|
+from services.billing_service import BillingService
|
|
|
|
|
|
|
|
|
class AppSiteApi(WebApiResource):
|
|
@@ -39,6 +42,7 @@ class AppSiteApi(WebApiResource):
|
|
|
'site': fields.Nested(site_fields),
|
|
|
'model_config': fields.Nested(model_config_fields, allow_null=True),
|
|
|
'plan': fields.String,
|
|
|
+ 'can_replace_logo': fields.Boolean,
|
|
|
}
|
|
|
|
|
|
@marshal_with(app_fields)
|
|
@@ -50,7 +54,14 @@ class AppSiteApi(WebApiResource):
|
|
|
if not site:
|
|
|
raise Forbidden()
|
|
|
|
|
|
- return AppSiteInfo(app_model.tenant, app_model, site, end_user.id)
|
|
|
+ edition = os.environ.get('EDITION')
|
|
|
+ can_replace_logo = False
|
|
|
+
|
|
|
+ if edition == 'CLOUD':
|
|
|
+ info = BillingService.get_info(app_model.tenant_id)
|
|
|
+ can_replace_logo = info['can_replace_logo']
|
|
|
+
|
|
|
+ return AppSiteInfo(app_model.tenant, app_model, site, end_user.id, can_replace_logo)
|
|
|
|
|
|
|
|
|
api.add_resource(AppSiteApi, '/site')
|
|
@@ -59,7 +70,7 @@ api.add_resource(AppSiteApi, '/site')
|
|
|
class AppSiteInfo:
|
|
|
"""Class to store site information."""
|
|
|
|
|
|
- def __init__(self, tenant, app, site, end_user):
|
|
|
+ def __init__(self, tenant, app, site, end_user, can_replace_logo):
|
|
|
"""Initialize AppSiteInfo instance."""
|
|
|
self.app_id = app.id
|
|
|
self.end_user_id = end_user
|
|
@@ -67,6 +78,7 @@ class AppSiteInfo:
|
|
|
self.site = site
|
|
|
self.model_config = None
|
|
|
self.plan = tenant.plan
|
|
|
+ self.can_replace_logo = can_replace_logo
|
|
|
|
|
|
if app.enable_site and site.prompt_public:
|
|
|
app_model_config = app.app_model_config
|