@@ -243,8 +243,8 @@ def _get_role_url(self):
243
243
def get_roles (self , parameters = {}):
244
244
url = self ._get_role_url () + self ._get_parameter_string (parameters )
245
245
response = self .execute_get (url )
246
- return response .json ()
247
-
246
+ return response .json ()
247
+
248
248
def get_roles_url_from_user_or_group (self , user_or_group ):
249
249
# Given a user or user group object, return the 'roles' url
250
250
roles_url = None
@@ -382,8 +382,8 @@ def get_user_groups(self, parameters={}):
382
382
return response .json ()
383
383
384
384
def get_user_group_by_name (self , group_name ):
385
- groups = self .get_user_groups ()
386
- for group in groups ['items' ]:
385
+ group_list = self .get_user_groups ({ "q" : f"name: { group_name } " } )
386
+ for group in group_list ['items' ]:
387
387
if group ['name' ] == group_name :
388
388
return group
389
389
@@ -543,8 +543,8 @@ def find_component_info_for_protex_component(self, protex_component_id, protex_c
543
543
#
544
544
##
545
545
546
- valid_categories = ['VERSION' ,'CODE_LOCATIONS' ,'COMPONENTS' ,'SECURITY' ,'FILES' ]
547
- valid_report_formats = ["CSV" ]
546
+ valid_categories = ['VERSION' ,'CODE_LOCATIONS' ,'COMPONENTS' ,'SECURITY' ,'FILES' , 'ATTACHMENTS' , 'CRYPTO_ALGORITHMS' , 'PROJECT_VERSION_CUSTOM_FIELDS' , 'BOM_COMPONENT_CUSTOM_FIELDS' , 'LICENSE_TERM_FULFILLMENT' ]
547
+ valid_report_formats = ["CSV" , "JSON" ]
548
548
def create_version_reports (self , version , report_list , format = "CSV" ):
549
549
assert all (list (map (lambda k : k in HubInstance .valid_categories , report_list ))), "One or more selected report categories in {} are not valid ({})" .format (
550
550
report_list , HubInstance .valid_categories )
@@ -1036,7 +1036,7 @@ def assign_user_group_to_project(self, project_name, user_group_name, project_ro
1036
1036
project_url = project ['_meta' ]['href' ]
1037
1037
assignable_user_groups_link = self .get_link (project , 'assignable-usergroups' )
1038
1038
if assignable_user_groups_link :
1039
- assignable_user_groups_response = self .execute_get (assignable_user_groups_link )
1039
+ assignable_user_groups_response = self .execute_get (f" { assignable_user_groups_link } ?q=name: { user_group_name } " )
1040
1040
assignable_user_groups = assignable_user_groups_response .json ()
1041
1041
1042
1042
# TODO: What to do if the user group is already assigned to the project, and therefore
@@ -1080,6 +1080,20 @@ def assign_user_group_to_project(self, project_name, user_group_name, project_ro
1080
1080
else :
1081
1081
logger .warning ("Did not find a project by the name {}" .format (project_name ))
1082
1082
1083
+ def delete_user_group_from_project (self , project_name , user_group_name ):
1084
+ project = self .get_project_by_name (project_name )
1085
+
1086
+ if project :
1087
+ project_url = project ['_meta' ]['href' ]
1088
+
1089
+ user_group = self .get_user_group_by_name (user_group_name )
1090
+ if user_group :
1091
+ user_group_url = user_group ['_meta' ]['href' ]
1092
+ user_group_id = user_group_url .rsplit ('/' , 1 )[- 1 ]
1093
+
1094
+ project_user_group_url = f"{ project_url } /usergroups/{ user_group_id } "
1095
+ self .execute_delete (project_user_group_url )
1096
+
1083
1097
def assign_user_to_project (self , user_name , project_name , project_roles , limit = 1000 ):
1084
1098
# Assign users to projects
1085
1099
project = self .get_project_by_name (project_name )
0 commit comments