Refactor our license code to be entitlement centric.
This commit is contained in:
parent
d90398e9ff
commit
9f1c12e413
4 changed files with 238 additions and 130 deletions
|
@ -19,7 +19,7 @@ from data.database import User
|
|||
from util.config.configutil import add_enterprise_config_defaults
|
||||
from util.config.database import sync_database_with_config
|
||||
from util.config.validator import validate_service_for_config, CONFIG_FILENAMES
|
||||
from util.license import decode_license, LicenseError
|
||||
from util.license import decode_license, LicenseDecodeError
|
||||
from data.runmigration import run_alembic_migration
|
||||
from data.users import get_federated_service_name, get_users_handler
|
||||
|
||||
|
@ -283,15 +283,17 @@ class SuperUserSetAndValidateLicense(ApiResource):
|
|||
license_contents = request.get_json()['license']
|
||||
try:
|
||||
decoded_license = decode_license(license_contents)
|
||||
except LicenseError as le:
|
||||
except LicenseDecodeError as le:
|
||||
raise InvalidRequest(le.message)
|
||||
|
||||
if decoded_license.is_expired:
|
||||
raise InvalidRequest('License has expired')
|
||||
statuses = decoded_license.validate({})
|
||||
all_met = all(status.is_met() for status in statuses)
|
||||
if not all_met:
|
||||
raise InvalidRequest('License is insufficient')
|
||||
|
||||
config_provider.save_license(license_contents)
|
||||
return {
|
||||
'decoded': decoded_license.subscription,
|
||||
'decoded': {},
|
||||
'success': True
|
||||
}
|
||||
|
||||
|
|
Reference in a new issue