获取工作空间ID列表
(instance, default_permission)
| 736 | |
| 737 | |
| 738 | def _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 | |
| 772 | def _set_root_permissions(user_id, workspace_ids): |
no test coverage detected