@@ -176,9 +176,18 @@ public List<MetadataStatusResponse> getRecordStatusHistory(
176176 @ Parameter (description = API_PARAM_RECORD_UUID , required = true ) @ PathVariable String metadataUuid ,
177177 @ RequestParam (required = false ) boolean details ,
178178 @ Parameter (description = "Sort direction" , required = false ) @ RequestParam (defaultValue = "DESC" ) Sort .Direction sortOrder ,
179+ @ Parameter (description = "Use approved version or not" , example = "true" )
180+ @ RequestParam (required = false , defaultValue = "true" ) Boolean approved ,
179181 HttpServletRequest request ) throws Exception {
180182 ServiceContext context = ApiUtils .createServiceContext (request );
181- AbstractMetadata metadata = ApiUtils .canViewRecord (metadataUuid , request );
183+
184+ AbstractMetadata metadata ;
185+ try {
186+ metadata = ApiUtils .canViewRecord (metadataUuid , approved , request );
187+ } catch (SecurityException e ) {
188+ Log .debug (API .LOG_MODULE_NAME , e .getMessage (), e );
189+ throw new NotAllowedException (ApiParams .API_RESPONSE_NOT_ALLOWED_CAN_VIEW );
190+ }
182191
183192 String sortField = SortUtils .createPath (MetadataStatus_ .changeDate );
184193
@@ -199,9 +208,17 @@ public List<MetadataStatusResponse> getRecordStatusHistoryByType(
199208 @ Parameter (description = "Type" , required = true ) @ PathVariable StatusValueType type ,
200209 @ RequestParam (required = false ) boolean details ,
201210 @ Parameter (description = "Sort direction" , required = false ) @ RequestParam (defaultValue = "DESC" ) Sort .Direction sortOrder ,
211+ @ Parameter (description = "Use approved version or not" , example = "true" )
212+ @ RequestParam (required = false , defaultValue = "true" ) Boolean approved ,
202213 HttpServletRequest request ) throws Exception {
203214 ServiceContext context = ApiUtils .createServiceContext (request );
204- AbstractMetadata metadata = ApiUtils .canViewRecord (metadataUuid , request );
215+ AbstractMetadata metadata ;
216+ try {
217+ metadata = ApiUtils .canViewRecord (metadataUuid , approved , request );
218+ } catch (SecurityException e ) {
219+ Log .debug (API .LOG_MODULE_NAME , e .getMessage (), e );
220+ throw new NotAllowedException (ApiParams .API_RESPONSE_NOT_ALLOWED_CAN_VIEW );
221+ }
205222
206223 String sortField = SortUtils .createPath (MetadataStatus_ .changeDate );
207224
@@ -223,8 +240,10 @@ public List<MetadataStatusResponse> getRecordStatusHistoryByType(
223240 @ ResponseBody
224241 public MetadataWorkflowStatusResponse getStatus (
225242 @ Parameter (description = API_PARAM_RECORD_UUID , required = true ) @ PathVariable String metadataUuid ,
243+ @ Parameter (description = "Use approved version or not" , example = "true" )
244+ @ RequestParam (required = false , defaultValue = "true" ) Boolean approved ,
226245 HttpServletRequest request ) throws Exception {
227- AbstractMetadata metadata = ApiUtils .canEditRecord (metadataUuid , request );
246+ AbstractMetadata metadata = ApiUtils .canEditRecord (metadataUuid , approved , request );
228247 Locale locale = languageUtils .parseAcceptLanguage (request .getLocales ());
229248 ResourceBundle messages = ApiUtils .getMessagesResourceBundle (request .getLocales ());
230249 ServiceContext context = ApiUtils .createServiceContext (request , locale .getISO3Language ());
0 commit comments