MCPcopy Index your code
hub / github.com/1Panel-dev/MaxKB / _get_workspace_ids

Function _get_workspace_ids

apps/users/serializers/user.py:738–769  ·  view source on GitHub ↗

获取工作空间ID列表

(instance, default_permission)

Source from the content-addressed store, hash-verified

736
737
738def _get_workspace_ids(instance, default_permission):
739 """
740 获取工作空间ID列表
741 """
742 role_setting_model = DatabaseModelManage.get_model("role_model")
743
744 if not role_setting_model:
745 return ['default']
746
747 # 检查许可证有效性
748 license_is_valid = DatabaseModelManage.get_model('license_is_valid') or (lambda: False)
749 if default_permission == ResourceAuthType.ROLE and not license_is_valid():
750 return []
751
752 role_setting = instance.get('role_setting')
753 if not role_setting:
754 return ['default']
755
756 # 获取用户角色的工作空间ID
757 all_role_ids = [item['role_id'] for item in role_setting]
758 user_role_ids = set(role_setting_model.objects.filter(
759 id__in=all_role_ids,
760 type=RoleConstants.USER.name
761 ).values_list('id', flat=True))
762
763 workspace_ids = set()
764 for item in role_setting:
765 role_id = item['role_id']
766 if role_id in user_role_ids:
767 workspace_ids.update(item.get('workspace_ids', []))
768
769 return list(workspace_ids) if workspace_ids else []
770
771
772def _set_root_permissions(user_id, workspace_ids):

Callers 1

set_default_permissionFunction · 0.85

Calls 2

get_modelMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected