@@ -226,19 +226,13 @@ async def get_catalog_service(
226226 service_version : ServiceVersion ,
227227) -> ServiceGetV2 :
228228
229- access_rights = await repo .get_service_access_rights (
230- key = service_key ,
231- version = service_version ,
229+ access_rights = await check_catalog_service (
230+ repo = repo ,
232231 product_name = product_name ,
232+ user_id = user_id ,
233+ service_key = service_key ,
234+ service_version = service_version ,
233235 )
234- if not access_rights :
235- raise CatalogItemNotFoundError (
236- name = f"{ service_key } :{ service_version } " ,
237- service_key = service_key ,
238- service_version = service_version ,
239- user_id = user_id ,
240- product_name = product_name ,
241- )
242236
243237 service = await repo .get_service_with_history (
244238 product_name = product_name ,
@@ -292,32 +286,14 @@ async def update_catalog_service(
292286 product_name = product_name ,
293287 )
294288
295- access_rights = await repo .get_service_access_rights (
296- key = service_key , version = service_version , product_name = product_name
297- )
298-
299- if not access_rights :
300- raise CatalogItemNotFoundError (
301- name = f"{ service_key } :{ service_version } " ,
302- service_key = service_key ,
303- service_version = service_version ,
304- user_id = user_id ,
305- product_name = product_name ,
306- )
307-
308- if not await repo .can_update_service (
289+ # Check access rights first
290+ access_rights = await check_catalog_service (
291+ repo = repo ,
309292 product_name = product_name ,
310293 user_id = user_id ,
311- key = service_key ,
312- version = service_version ,
313- ):
314- raise CatalogForbiddenError (
315- name = f"{ service_key } :{ service_version } " ,
316- service_key = service_key ,
317- service_version = service_version ,
318- user_id = user_id ,
319- product_name = product_name ,
320- )
294+ service_key = service_key ,
295+ service_version = service_version ,
296+ )
321297
322298 # Updates service_meta_data
323299 await repo .update_service (
@@ -379,7 +355,7 @@ async def check_catalog_service(
379355 user_id : UserID ,
380356 service_key : ServiceKey ,
381357 service_version : ServiceVersion ,
382- ) -> None :
358+ ) -> list [ ServiceAccessRightsAtDB ] :
383359 """Raises if the service canot be read
384360
385361 Raises:
@@ -415,6 +391,8 @@ async def check_catalog_service(
415391 product_name = product_name ,
416392 )
417393
394+ return access_rights
395+
418396
419397async def batch_get_user_services (
420398 repo : ServicesRepository ,
@@ -569,34 +547,15 @@ async def get_user_services_ports(
569547 CatalogItemNotFoundError: When service is not found
570548 CatalogForbiddenError: When user doesn't have access rights
571549 """
572- # Check access rights first
573- access_rights = await repo .get_service_access_rights (
574- key = service_key ,
575- version = service_version ,
576- product_name = product_name ,
577- )
578- if not access_rights :
579- raise CatalogItemNotFoundError (
580- name = f"{ service_key } :{ service_version } " ,
581- service_key = service_key ,
582- service_version = service_version ,
583- user_id = user_id ,
584- product_name = product_name ,
585- )
586550
587- if not await repo .can_get_service (
551+ # Check access rights first
552+ await check_catalog_service (
553+ repo = repo ,
588554 product_name = product_name ,
589555 user_id = user_id ,
590- key = service_key ,
591- version = service_version ,
592- ):
593- raise CatalogForbiddenError (
594- name = f"{ service_key } :{ service_version } " ,
595- service_key = service_key ,
596- service_version = service_version ,
597- user_id = user_id ,
598- product_name = product_name ,
599- )
556+ service_key = service_key ,
557+ service_version = service_version ,
558+ )
600559
601560 # Get service ports from manifest
602561 return await manifest .get_service_ports (
0 commit comments