@@ -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
@@ -374,8 +374,8 @@ def get_user_groups(self, parameters={}):
374
374
return response .json ()
375
375
376
376
def get_user_group_by_name (self , group_name ):
377
- groups = self .get_user_groups ()
378
- for group in groups ['items' ]:
377
+ group_list = self .get_user_groups ({ "q" : f"name: { group_name } " } )
378
+ for group in group_list ['items' ]:
379
379
if group ['name' ] == group_name :
380
380
return group
381
381
@@ -535,8 +535,8 @@ def find_component_info_for_protex_component(self, protex_component_id, protex_c
535
535
#
536
536
##
537
537
538
- valid_categories = ['VERSION' ,'CODE_LOCATIONS' ,'COMPONENTS' ,'SECURITY' ,'FILES' ]
539
- valid_report_formats = ["CSV" ]
538
+ valid_categories = ['VERSION' ,'CODE_LOCATIONS' ,'COMPONENTS' ,'SECURITY' ,'FILES' , 'ATTACHMENTS' , 'CRYPTO_ALGORITHMS' , 'PROJECT_VERSION_CUSTOM_FIELDS' , 'BOM_COMPONENT_CUSTOM_FIELDS' , 'LICENSE_TERM_FULFILLMENT' ]
539
+ valid_report_formats = ["CSV" , "JSON" ]
540
540
def create_version_reports (self , version , report_list , format = "CSV" ):
541
541
assert all (list (map (lambda k : k in HubInstance .valid_categories , report_list ))), "One or more selected report categories in {} are not valid ({})" .format (
542
542
report_list , HubInstance .valid_categories )
@@ -1028,7 +1028,7 @@ def assign_user_group_to_project(self, project_name, user_group_name, project_ro
1028
1028
project_url = project ['_meta' ]['href' ]
1029
1029
assignable_user_groups_link = self .get_link (project , 'assignable-usergroups' )
1030
1030
if assignable_user_groups_link :
1031
- assignable_user_groups_response = self .execute_get (assignable_user_groups_link )
1031
+ assignable_user_groups_response = self .execute_get (f" { assignable_user_groups_link } ?q=name: { user_group_name } " )
1032
1032
assignable_user_groups = assignable_user_groups_response .json ()
1033
1033
1034
1034
# TODO: What to do if the user group is already assigned to the project, and therefore
@@ -1072,6 +1072,20 @@ def assign_user_group_to_project(self, project_name, user_group_name, project_ro
1072
1072
else :
1073
1073
logger .warning ("Did not find a project by the name {}" .format (project_name ))
1074
1074
1075
+ def delete_user_group_from_project (self , project_name , user_group_name ):
1076
+ project = self .get_project_by_name (project_name )
1077
+
1078
+ if project :
1079
+ project_url = project ['_meta' ]['href' ]
1080
+
1081
+ user_group = self .get_user_group_by_name (user_group_name )
1082
+ if user_group :
1083
+ user_group_url = user_group ['_meta' ]['href' ]
1084
+ user_group_id = user_group_url .rsplit ('/' , 1 )[- 1 ]
1085
+
1086
+ project_user_group_url = f"{ project_url } /usergroups/{ user_group_id } "
1087
+ self .execute_delete (project_user_group_url )
1088
+
1075
1089
def assign_user_to_project (self , user_name , project_name , project_roles , limit = 1000 ):
1076
1090
# Assign users to projects
1077
1091
project = self .get_project_by_name (project_name )
0 commit comments