...
If you would like to override security use aipIndexService.queryDocsForObjectOverrideSecurity, if you want permission check with current user use aipIndexService.queryDocsForObject(queryIndexParam, user);.
Script
Code Block |
---|
import com.atlassian.jira.component.ComponentAccessor import com.onresolve.scriptrunner.runner.customisers.PluginModule import com.onresolve.scriptrunner.runner.customisers.WithPlugin import groovy.transform.Field import inventoryplugin.constant.StatusEnum import inventoryplugin.constant.SubstatusEnum import inventoryplugin.dto.portable.InventoryDto import inventoryplugin.dto.portable.InventoryItemDto import inventoryplugin.helper.JipUtilityHelper import inventoryplugin.service.index.AipIndexService import inventoryplugin.service.index.search.QueryIndexParam import inventoryplugin.service.index.search.QueryIndexResult import inventoryplugin.service.index.search.QueryIndexSearchParam import inventoryplugin.service.rest.dto.SystemFieldDto import org.apache.log4j.Level import org.apache.log4j.Logger @Field Logger logger = Logger.getLogger("snapbytes.inventoryplugin.groovy.script") logger.setLevel(Level.DEBUG) @WithPlugin("plugin.jip") @PluginModule AipIndexService aipIndexService try { QueryIndexParam queryIndexParam = new QueryIndexParam(); queryIndexParam.setQuerySource(QueryIndexParam.QuerySource.GENERIC_SEARCH); queryIndexParam.setSortField("asset.name"); queryIndexParam.setSortDirection("asc"); queryIndexParam.setSortType("STRING"); queryIndexParam.setSearchType("basic"); queryIndexParam.setPageNumber(1); queryIndexParam.setPageSize(1000); queryIndexParam.setQueryIndexSearchParams(new ArrayList<>()); // filter by asset type QueryIndexSearchParam query = new QueryIndexSearchParam(); query.setField("form.name"); query.setKeywords(new ArrayList<>()); query.getKeywords().add("all types"); query.setRange(true); queryIndexParam.getQueryIndexSearchParams().add(query); QueryIndexSearchParam query2 = new QueryIndexSearchParam(); query2.setField("asset.id"); query2.setMinNum(10494); query2.setMaxNum(10495); query2.setRange(true); queryIndexParam.getQueryIndexSearchParams().add(query2); def user = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser() //QueryIndexResult queryIndexResult = aipIndexService.queryDocsForObject(queryIndexParam, user); QueryIndexResult queryIndexResult = aipIndexService.queryDocsForObjectOverrideSecurity(queryIndexParam, user); def queryIndexResultAsTxt = JipUtilityHelper.convertObjectToJsonStringSafe(queryIndexResult); List<InventoryDto> assets = JipUtilityHelper.convertJsonStringToListSafe(queryIndexResult.getAssets(), InventoryDto.class); if (assets != null) { logger.debug(assets.size() + ' assets found') for (InventoryDto oneAsset : assets) { logger.debug('----------------------------------------------------') logger.debug('----------------------------------------------------') logger.debug('Asset id: ' + oneAsset.id) logger.debug('Asset name: ' + oneAsset.name) logger.debug('Asset type id: ' + oneAsset.formId) logger.debug('Asset type name: ' + oneAsset.formName) logger.debug('Asset type scheme id: ' + oneAsset.objectSchemaId) logger.debug('Asset type scheme name: ' + oneAsset.objectSchemaName) logger.debug('Attachments json string: ' + oneAsset.attachments) logger.debug('Updated by: ' + oneAsset.updatedBy) logger.debug('Updated at: ' + oneAsset.updated) logger.debug('Created by: ' + oneAsset.creator) logger.debug('Created at: ' + oneAsset.created) logger.debug('--- Attributes ----------------------') List<InventoryItemDto> inventoryItems = oneAsset.getInventoryItems(); for (InventoryItemDto assetAttr : inventoryItems) { if (assetAttr.multiListValues != null && assetAttr.multiListValues.size() > 0) { logger.debug(assetAttr.attributeName + ': '); for (def oneVal : assetAttr.multiListValues) { logger.debug(' - ' + oneVal); } } else if (assetAttr.attributeType == 'InventoryList' || assetAttr.attributeType == 'InventoryListByForm') { logger.debug(assetAttr.attributeName + ': '); for (def oneVal : assetAttr.inventoryRefs) { logger.debug(' - id:' + oneVal.id + ', name:' + oneVal.name); } } else if (assetAttr.attributeType == 'DatePicker' || assetAttr.attributeType == 'DatetimePicker') { logger.debug(assetAttr.attributeName + ': ' + assetAttr.isoDateValue); } else { logger.debug(assetAttr.attributeName + ': ' + assetAttr.value + " (Display value=" + assetAttr.displayValue + ")"); } } logger.debug('--- System Fields ----------------------') List<SystemFieldDto> systemFields = oneAsset.getSystemFields(); for (SystemFieldDto systemFieldDto : systemFields) { if (systemFieldDto.fieldName == "asset.status") { def status = StatusEnum.getByKey(systemFieldDto.value); String displayValue = status != null ? status.displayName : "" logger.debug(systemFieldDto.fieldName + ': ' + systemFieldDto.value + " (Display value: " + displayValue + ")"); } else if (systemFieldDto.fieldName == "asset.substatus") { def substatus = SubstatusEnum.getByKey(systemFieldDto.value); String displayValue = substatus != null ? substatus.displayName : "" logger.debug(systemFieldDto.fieldName + ': ' + systemFieldDto.value + " (Display value: " + displayValue + ")"); } else { logger.debug(systemFieldDto.fieldName + ': ' + systemFieldDto.value); } } } } return queryIndexResultAsTxt; } catch (Exception e) { logger.debug(e.getMessage()) return e.getMessage(); } |
...