Режим разработки: служебные разделы, робот НРД и имитации — только по признаку из ключа лицензии
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -24,7 +24,8 @@ type LicenseStatus struct {
|
||||
ContractUntil time.Time
|
||||
DaysLeft int
|
||||
AllowsUpdates bool
|
||||
Features []string // признаки (модули), разрешённые ключом
|
||||
Features []string // признаки (модули), разрешённые ключом
|
||||
DevUntil time.Time // режим разработки до (выдаёт сервер лицензий; нулевое — выключен)
|
||||
Message string
|
||||
}
|
||||
|
||||
@@ -71,6 +72,22 @@ func modulesAllowed(rc *RuntimeConfig) map[string]bool {
|
||||
return m
|
||||
}
|
||||
|
||||
// devModeForced — режим разработки в тестах пакета.
|
||||
var devModeForced bool
|
||||
|
||||
// devMode — режим разработки: сервер лицензий временно открыл разработчикам bj тестовые разделы и
|
||||
// служебные инструменты на этой установке. Без него у клиента их нет (адреса отвечают 404).
|
||||
func devMode(rc *RuntimeConfig) bool {
|
||||
if devModeForced {
|
||||
return true
|
||||
}
|
||||
if rc == nil {
|
||||
return false
|
||||
}
|
||||
st := licenseStatus(rc)
|
||||
return st.Valid && time.Now().Before(st.DevUntil)
|
||||
}
|
||||
|
||||
// moduleAllowed — разрешён ли модуль (лицензионный признак). План enterprise — все модули.
|
||||
func moduleAllowed(rc *RuntimeConfig, feature string) bool {
|
||||
st := licenseStatus(rc)
|
||||
@@ -127,6 +144,9 @@ func licenseStatus(rc *RuntimeConfig) LicenseStatus {
|
||||
st.DaysLeft = lic.DaysLeft(now)
|
||||
st.AllowsUpdates = lic.AllowsUpdates()
|
||||
st.Features = lic.Features
|
||||
if lic.DevUntil != nil {
|
||||
st.DevUntil = *lic.DevUntil
|
||||
}
|
||||
st.Online = lic.InstallID != ""
|
||||
if lic.Product != "" && lic.Product != "bj-server" {
|
||||
st.Message = "ключ выпущен для другого продукта (" + lic.Product + ")"
|
||||
|
||||
Reference in New Issue
Block a user