diff --git a/lib/content-services/src/lib/permission-manager/components/add-permission/search-config-permission.service.ts b/lib/content-services/src/lib/permission-manager/components/add-permission/search-config-permission.service.ts index 76454cc1b7..e3b75f69d2 100644 --- a/lib/content-services/src/lib/permission-manager/components/add-permission/search-config-permission.service.ts +++ b/lib/content-services/src/lib/permission-manager/components/add-permission/search-config-permission.service.ts @@ -17,15 +17,26 @@ import { QueryBody } from '@alfresco/js-api'; import { SearchConfigurationInterface } from '@alfresco/adf-core'; -import { Injectable } from '@angular/core'; +import { Injectable, Optional, Inject, InjectionToken } from '@angular/core'; + +export const SEARCH_QUERY_TOKEN = new InjectionToken('Alfresco Search Query Token'); +export interface QueryProvider { + query: string; +} @Injectable() export class SearchPermissionConfigurationService implements SearchConfigurationInterface { + constructor( + @Optional() + @Inject(SEARCH_QUERY_TOKEN) + private queryProvider: QueryProvider) { + } + public generateQueryBody(searchTerm: string, maxResults: number, skipCount: number): QueryBody { const defaultQueryBody: QueryBody = { query: { - query: searchTerm ? `authorityName:*${searchTerm}* OR userName:*${searchTerm}*` : searchTerm + query: this.getQuery(searchTerm) }, include: ['properties', 'aspectNames'], paging: { @@ -39,4 +50,15 @@ export class SearchPermissionConfigurationService implements SearchConfiguration return defaultQueryBody; } + + private getQuery(searchTerm: string) { + let query: string; + if (this.queryProvider && this.queryProvider.query) { + query = this.queryProvider.query.replace( + new RegExp(/\${([^}]+)}/g), searchTerm); + } else { + query = `authorityName:*${searchTerm}* OR userName:*${searchTerm}*`; + } + return query; + } } diff --git a/lib/content-services/src/lib/permission-manager/public-api.ts b/lib/content-services/src/lib/permission-manager/public-api.ts index d37ac758b8..58e93a8b98 100644 --- a/lib/content-services/src/lib/permission-manager/public-api.ts +++ b/lib/content-services/src/lib/permission-manager/public-api.ts @@ -25,5 +25,6 @@ export * from './components/add-permission/add-permission-dialog-data.interface' export * from './components/add-permission/add-permission-panel.component'; export * from './components/add-permission/add-permission.component'; export * from './components/add-permission/add-permission-dialog.component'; +export * from './components/add-permission/search-config-permission.service'; export * from './permission-manager.module';