diff --git a/src/app/search/controllers/SearchController.php b/src/app/search/controllers/SearchController.php index 3b1d2d84bdc79d23edeaddf8dc28b5279886f9ed..36720efa2cab67cf6abc86fae734137ca75e094f 100644 --- a/src/app/search/controllers/SearchController.php +++ b/src/app/search/controllers/SearchController.php @@ -58,7 +58,9 @@ class SearchController { public function get(Request $request, Response $response) { - if (!PrivilegeController::hasPrivilege(['privilegeId' => 'adv_search_mlb', 'userId' => $GLOBALS['id']])) { + $body = $request->getParsedBody(); + + if (!PrivilegeController::hasPrivilege(['privilegeId' => 'adv_search_mlb', 'userId' => $GLOBALS['id']]) && !$body['linkedResource']) { return $response->withStatus(403)->withJson(['errors' => 'Service forbidden']); } else { $adminSearch = ConfigurationModel::getByPrivilege(['privilege' => 'admin_search', 'select' => ['value']]); @@ -69,7 +71,6 @@ class SearchController ini_set('memory_limit', -1); - $body = $request->getParsedBody(); $userdataClause = SearchController::getUserDataClause(['userId' => $GLOBALS['id'], 'login' => $GLOBALS['login']]); $searchWhere = $userdataClause['searchWhere']; diff --git a/src/frontend/app/linkedResource/linkResourceModal/link-resource-modal.component.html b/src/frontend/app/linkedResource/linkResourceModal/link-resource-modal.component.html index 2deff7ca2beba96d99972730f92ccbb9e719cf11..0ec3d7168c7b7ce7c649bffcd7449b4d2f8e06cf 100755 --- a/src/frontend/app/linkedResource/linkResourceModal/link-resource-modal.component.html +++ b/src/frontend/app/linkedResource/linkResourceModal/link-resource-modal.component.html @@ -12,7 +12,7 @@ [defaultCriteria]="['chrono', 'subject','recipients','senders']"></app-criteria-tool> <div id="toolTemplate" style="padding-top: 10px;"></div> </div> - <app-search-result-list #appSearchResultList [actionMode]="false" [hideFilter]="true" [appCriteriaTool]="appCriteriaTool" [standalone]="true"></app-search-result-list> + <app-search-result-list #appSearchResultList [actionMode]="false" [hideFilter]="true" [from]="'linkedResource'" [appCriteriaTool]="appCriteriaTool" [standalone]="true"></app-search-result-list> </mat-dialog-content> <span class="divider-modal"></span> <div mat-dialog-actions class="actions"> diff --git a/src/frontend/app/search/result-list/search-result-list.component.ts b/src/frontend/app/search/result-list/search-result-list.component.ts index 925297005ce886725c05edea77b3eedfdf2b8b9c..525a0bfe7d90b25e1e580b16211970db8d906487 100644 --- a/src/frontend/app/search/result-list/search-result-list.component.ts +++ b/src/frontend/app/search/result-list/search-result-list.component.ts @@ -43,6 +43,7 @@ export class SearchResultListComponent implements OnInit, OnDestroy { @Input() hideFilter: boolean = false; @Input() appCriteriaTool: CriteriaToolComponent; @Input() sidenavRight: MatSidenav; + @Input() from: string = ''; @Output() loadingResult = new EventEmitter<boolean>(); @@ -299,7 +300,7 @@ export class SearchResultListComponent implements OnInit, OnDestroy { this.isLoadingResults = true; this.loadingResult.emit(true); return this.resultListDatabase!.getRepoIssues( - this.sort.active, this.sort.direction, this.paginator.pageIndex, this.searchUrl, this.listProperties, this.paginator.pageSize, this.criteria, this.dataFilters); + this.sort.active, this.sort.direction, this.paginator.pageIndex, this.searchUrl, this.listProperties, this.paginator.pageSize, this.criteria, this.dataFilters, this.from); } else { /** * To resolve the error : @@ -772,13 +773,17 @@ export class ResultListHttpDao { constructor(private http: HttpClient, private criteriaSearchService: CriteriaSearchService) { } - getRepoIssues(sort: string, order: string, page: number, href: string, filters: any, pageSize: number, criteria: any, sideFilters: any): Observable<BasketList> { + getRepoIssues(sort: string, order: string, page: number, href: string, filters: any, pageSize: number, criteria: any, sideFilters: any, from: string = ''): Observable<BasketList> { this.criteriaSearchService.updateListsPropertiesPage(page); this.criteriaSearchService.updateListsPropertiesPageSize(pageSize); this.criteriaSearchService.updateListsPropertiesCriteria(criteria); const offset = page * pageSize; const requestUrl = `${href}?limit=${pageSize}&offset=${offset}&order=${filters.order}&orderDir=${filters.orderDir}`; - const dataToSend = Object.assign({}, this.criteriaSearchService.formatDatas(JSON.parse(JSON.stringify(criteria))), { filters: sideFilters }); + let dataToSend = Object.assign({}, this.criteriaSearchService.formatDatas(JSON.parse(JSON.stringify(criteria))), { filters: sideFilters }); + dataToSend = { + ... dataToSend, + linkedResource: from === 'linkedResource' ? true : false + }; return this.http.post<BasketList>(requestUrl, dataToSend); } }