mirror of
https://github.com/1Panel-dev/MaxKB.git
synced 2025-12-26 01:33:05 +00:00
fix: update license validation logic in profile and user role update functions
This commit is contained in:
parent
c7a9a4d4bd
commit
778b706776
|
|
@ -13,6 +13,7 @@ from rest_framework import serializers
|
|||
from django.core.cache import cache
|
||||
|
||||
from common.constants.cache_version import Cache_Version
|
||||
from common.database_model_manage.database_model_manage import DatabaseModelManage
|
||||
from maxkb import settings
|
||||
|
||||
|
||||
|
|
@ -35,7 +36,6 @@ class SystemProfileSerializer(serializers.Serializer):
|
|||
@staticmethod
|
||||
def profile():
|
||||
version = os.environ.get('MAXKB_VERSION')
|
||||
license_is_valid = cache.get(Cache_Version.SYSTEM.get_key(key='license_is_valid'),
|
||||
version=Cache_Version.SYSTEM.get_version())
|
||||
license_is_valid = DatabaseModelManage.get_model('license_is_valid') or (lambda: False)
|
||||
return {'version': version, 'edition': settings.edition,
|
||||
'license_is_valid': license_is_valid if license_is_valid is not None else False}
|
||||
|
|
|
|||
|
|
@ -567,9 +567,21 @@ class UserManageSerializer(serializers.Serializer):
|
|||
def update_user_role(instance, user, user_id=None):
|
||||
workspace_user_role_mapping_model = DatabaseModelManage.get_model("workspace_user_role_mapping")
|
||||
if workspace_user_role_mapping_model:
|
||||
role_setting = instance.get('role_setting')
|
||||
license_is_valid = DatabaseModelManage.get_model('license_is_valid') or (lambda: False)
|
||||
license_is_valid = license_is_valid if license_is_valid is not None else False
|
||||
if not license_is_valid and isinstance(role_setting, list) and len(role_setting) == 0:
|
||||
workspace_user_role_mapping_model.objects.create(
|
||||
id=uuid.uuid7(),
|
||||
user_id=user.id,
|
||||
role_id=RoleConstants.USER.name,
|
||||
workspace_id='default'
|
||||
)
|
||||
return
|
||||
|
||||
is_admin = workspace_user_role_mapping_model.objects.filter(user_id=user_id,
|
||||
role_id=RoleConstants.ADMIN.name).exists()
|
||||
role_setting = instance.get('role_setting')
|
||||
|
||||
if not role_setting or (len(role_setting) == 1
|
||||
and role_setting[0].get('role_id') == ''
|
||||
and len(role_setting[0].get('workspace_ids', [])) == 0):
|
||||
|
|
|
|||
Loading…
Reference in New Issue